feat: rewrite portal — AI-first narrative, migration guide, roadmap
This commit is contained in:
795
index.html
795
index.html
@@ -3,7 +3,7 @@
|
|||||||
<head>
|
<head>
|
||||||
<meta charset="UTF-8">
|
<meta charset="UTF-8">
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
<title>Nexora — 智能研发平台</title>
|
<title>Nexora — AI 驱动的智能研发平台</title>
|
||||||
<script src="https://cdn.tailwindcss.com"></script>
|
<script src="https://cdn.tailwindcss.com"></script>
|
||||||
<script>
|
<script>
|
||||||
tailwind.config = {
|
tailwind.config = {
|
||||||
@@ -25,15 +25,22 @@
|
|||||||
.card-hover { transition: all 0.3s ease; }
|
.card-hover { transition: all 0.3s ease; }
|
||||||
.card-hover:hover { transform: translateY(-4px); box-shadow: 0 20px 40px rgba(0,0,0,0.3); }
|
.card-hover:hover { transform: translateY(-4px); box-shadow: 0 20px 40px rgba(0,0,0,0.3); }
|
||||||
.glow { box-shadow: 0 0 30px rgba(239, 68, 68, 0.15); }
|
.glow { box-shadow: 0 0 30px rgba(239, 68, 68, 0.15); }
|
||||||
.service-icon { font-size: 2.5rem; }
|
|
||||||
.nav-blur { backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); }
|
.nav-blur { backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); }
|
||||||
.hero-bg { background: radial-gradient(ellipse at 50% 0%, rgba(239,68,68,0.12) 0%, transparent 60%); }
|
.hero-bg { background: radial-gradient(ellipse at 50% 0%, rgba(239,68,68,0.12) 0%, transparent 60%); }
|
||||||
.section-divider { background: linear-gradient(90deg, transparent, rgba(239,68,68,0.3), transparent); height: 1px; }
|
.section-divider { background: linear-gradient(90deg, transparent, rgba(239,68,68,0.3), transparent); height: 1px; }
|
||||||
pre code { font-size: 0.85rem; }
|
|
||||||
.flow-arrow { color: #ef4444; font-size: 1.5rem; }
|
.flow-arrow { color: #ef4444; font-size: 1.5rem; }
|
||||||
|
.chat-bubble { position: relative; background: #2a2a3e; border-radius: 1rem; padding: 1rem 1.25rem; }
|
||||||
|
.chat-bubble-user { background: #1e3a5f; border-bottom-right-radius: 0.25rem; }
|
||||||
|
.chat-bubble-ai { background: #2a2a3e; border-bottom-left-radius: 0.25rem; }
|
||||||
|
.typing-dots span { animation: blink 1.4s infinite both; }
|
||||||
|
.typing-dots span:nth-child(2) { animation-delay: 0.2s; }
|
||||||
|
.typing-dots span:nth-child(3) { animation-delay: 0.4s; }
|
||||||
|
@keyframes blink { 0%,80%,100% { opacity: 0.3; } 40% { opacity: 1; } }
|
||||||
.env-dev { border-color: #22c55e; }
|
.env-dev { border-color: #22c55e; }
|
||||||
.env-staging { border-color: #eab308; }
|
.env-staging { border-color: #eab308; }
|
||||||
.env-prod { border-color: #ef4444; }
|
.env-prod { border-color: #ef4444; }
|
||||||
|
.roadmap-line { position: relative; }
|
||||||
|
.roadmap-line::before { content: ''; position: absolute; left: 1.25rem; top: 2.5rem; bottom: 0; width: 2px; background: linear-gradient(180deg, #ef4444, transparent); }
|
||||||
</style>
|
</style>
|
||||||
</head>
|
</head>
|
||||||
<body class="bg-dark-900 text-gray-200 antialiased">
|
<body class="bg-dark-900 text-gray-200 antialiased">
|
||||||
@@ -46,36 +53,36 @@
|
|||||||
<span class="text-xl font-bold text-white">Nexora</span>
|
<span class="text-xl font-bold text-white">Nexora</span>
|
||||||
</a>
|
</a>
|
||||||
<div class="hidden md:flex items-center gap-8 text-sm">
|
<div class="hidden md:flex items-center gap-8 text-sm">
|
||||||
|
<a href="#how" class="text-gray-400 hover:text-white transition">工作方式</a>
|
||||||
<a href="#services" class="text-gray-400 hover:text-white transition">服务</a>
|
<a href="#services" class="text-gray-400 hover:text-white transition">服务</a>
|
||||||
|
<a href="#migrate" class="text-gray-400 hover:text-white transition">迁移指南</a>
|
||||||
<a href="#docs" class="text-gray-400 hover:text-white transition">文档</a>
|
<a href="#docs" class="text-gray-400 hover:text-white transition">文档</a>
|
||||||
<a href="#quickstart" class="text-gray-400 hover:text-white transition">快速开始</a>
|
<a href="#roadmap" class="text-gray-400 hover:text-white transition">演进路线</a>
|
||||||
<a href="#devops" class="text-gray-400 hover:text-white transition">开发流程</a>
|
|
||||||
<a href="#team" class="text-gray-400 hover:text-white transition">团队</a>
|
|
||||||
<a href="#sso" class="text-gray-400 hover:text-white transition">SSO</a>
|
|
||||||
<a href="https://uptime.nexora.restry.cn" target="_blank" class="px-4 py-2 bg-nexora-600/20 text-nexora-500 rounded-lg hover:bg-nexora-600/30 transition text-sm">服务状态 ↗</a>
|
<a href="https://uptime.nexora.restry.cn" target="_blank" class="px-4 py-2 bg-nexora-600/20 text-nexora-500 rounded-lg hover:bg-nexora-600/30 transition text-sm">服务状态 ↗</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</nav>
|
</nav>
|
||||||
|
|
||||||
<!-- Hero -->
|
<!-- Hero -->
|
||||||
<section class="hero-bg pt-32 pb-20">
|
<section class="hero-bg pt-32 pb-24">
|
||||||
<div class="max-w-6xl mx-auto px-6 text-center">
|
<div class="max-w-6xl mx-auto px-6 text-center">
|
||||||
<div class="inline-flex items-center gap-2 px-4 py-2 rounded-full bg-dark-700/50 border border-gray-700/50 text-sm text-gray-400 mb-8">
|
<div class="inline-flex items-center gap-2 px-4 py-2 rounded-full bg-dark-700/50 border border-gray-700/50 text-sm text-gray-400 mb-8">
|
||||||
<span class="w-2 h-2 bg-green-500 rounded-full animate-pulse"></span>
|
<span class="w-2 h-2 bg-green-500 rounded-full animate-pulse"></span>
|
||||||
全部服务运行中
|
AI 管家在线 · 全部服务运行中
|
||||||
</div>
|
</div>
|
||||||
<h1 class="text-5xl md:text-7xl font-800 text-white mb-6 leading-tight">
|
<h1 class="text-5xl md:text-7xl font-800 text-white mb-6 leading-tight">
|
||||||
<span class="gradient-text">Nexora</span><br>智能研发平台
|
告诉 AI 你要什么<br><span class="gradient-text">剩下的交给 Nexora</span>
|
||||||
</h1>
|
</h1>
|
||||||
<p class="text-xl text-gray-400 max-w-2xl mx-auto mb-10 leading-relaxed">
|
<p class="text-xl text-gray-400 max-w-2xl mx-auto mb-10 leading-relaxed">
|
||||||
一站式自托管研发基础设施 — 代码管理、知识协作、服务监控、容器编排、团队沟通,统一认证,开箱即用。
|
不用写命令,不用记流程。对话即开发 — 你说需求,AI 来建仓库、写代码、跑测试、部署上线。<br>
|
||||||
|
<strong class="text-gray-300">Nexora 是一套 AI 驱动的自托管研发平台。</strong>
|
||||||
</p>
|
</p>
|
||||||
<div class="flex flex-wrap justify-center gap-4">
|
<div class="flex flex-wrap justify-center gap-4">
|
||||||
<a href="#quickstart" class="px-8 py-3 bg-nexora-600 text-white rounded-lg font-medium hover:bg-nexora-700 transition">
|
<a href="#how" class="px-8 py-3 bg-nexora-600 text-white rounded-lg font-medium hover:bg-nexora-700 transition">
|
||||||
快速开始 →
|
看看怎么用 →
|
||||||
</a>
|
</a>
|
||||||
<a href="#services" class="px-8 py-3 bg-dark-700 text-gray-300 rounded-lg font-medium hover:bg-dark-800 border border-gray-700 transition">
|
<a href="#migrate" class="px-8 py-3 bg-dark-700 text-gray-300 rounded-lg font-medium hover:bg-dark-800 border border-gray-700 transition">
|
||||||
查看服务
|
迁移现有资产
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -83,73 +90,172 @@
|
|||||||
|
|
||||||
<div class="section-divider max-w-4xl mx-auto"></div>
|
<div class="section-divider max-w-4xl mx-auto"></div>
|
||||||
|
|
||||||
|
<!-- How it works: AI-first -->
|
||||||
|
<section id="how" class="py-20">
|
||||||
|
<div class="max-w-5xl mx-auto px-6">
|
||||||
|
<div class="text-center mb-16">
|
||||||
|
<h2 class="text-3xl md:text-4xl font-bold text-white mb-4">对话即操作</h2>
|
||||||
|
<p class="text-gray-400 max-w-2xl mx-auto">传统开发:学工具 → 记命令 → 手动操作。Nexora:<strong class="text-white">说人话,AI 干活</strong>。</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Chat Demo 1: Create repo -->
|
||||||
|
<div class="grid md:grid-cols-2 gap-12 mb-20">
|
||||||
|
<div>
|
||||||
|
<h3 class="text-xl font-semibold text-white mb-2">🗃️ 创建项目</h3>
|
||||||
|
<p class="text-gray-400 text-sm mb-6">不用打开 Gitea,不用填表单。告诉 AI 你要什么项目,它替你搞定。</p>
|
||||||
|
<div class="space-y-3">
|
||||||
|
<div class="chat-bubble chat-bubble-user text-sm text-gray-200">
|
||||||
|
<p class="text-xs text-blue-400 mb-1">你</p>
|
||||||
|
帮我建一个前端项目,React + TypeScript,叫 nexora-dashboard
|
||||||
|
</div>
|
||||||
|
<div class="chat-bubble chat-bubble-ai text-sm text-gray-200">
|
||||||
|
<p class="text-xs text-nexora-500 mb-1">🦞 Nexora AI</p>
|
||||||
|
搞定 ✅ 已创建仓库 <code class="text-nexora-500">nexora-dashboard</code>,包含:<br>
|
||||||
|
• React 18 + TypeScript 模板<br>
|
||||||
|
• ESLint + Prettier 配置<br>
|
||||||
|
• CI/CD 流水线(.gitea/workflows/)<br>
|
||||||
|
• README 和基础目录结构<br>
|
||||||
|
<span class="text-gray-500 text-xs">→ gitea.nexora.restry.cn/admin/nexora-dashboard</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Chat Demo 2: Deploy -->
|
||||||
|
<div>
|
||||||
|
<h3 class="text-xl font-semibold text-white mb-2">🚀 部署上线</h3>
|
||||||
|
<p class="text-gray-400 text-sm mb-6">不用 SSH 登录服务器,不用写部署脚本。AI 管家帮你部署。</p>
|
||||||
|
<div class="space-y-3">
|
||||||
|
<div class="chat-bubble chat-bubble-user text-sm text-gray-200">
|
||||||
|
<p class="text-xs text-blue-400 mb-1">你</p>
|
||||||
|
把 dashboard 的 develop 分支部署到测试环境
|
||||||
|
</div>
|
||||||
|
<div class="chat-bubble chat-bubble-ai text-sm text-gray-200">
|
||||||
|
<p class="text-xs text-nexora-500 mb-1">🦞 Nexora AI</p>
|
||||||
|
正在部署...<br>
|
||||||
|
✅ 构建成功 (23s)<br>
|
||||||
|
✅ 测试通过 (8/8)<br>
|
||||||
|
✅ 已部署到 staging-dashboard.nexora.restry.cn<br>
|
||||||
|
<span class="text-gray-500 text-xs">需要推到生产环境吗?</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Chat Demo 3: Migrate -->
|
||||||
|
<div class="grid md:grid-cols-2 gap-12 mb-12">
|
||||||
|
<div>
|
||||||
|
<h3 class="text-xl font-semibold text-white mb-2">📦 迁移代码</h3>
|
||||||
|
<p class="text-gray-400 text-sm mb-6">把 GitHub 上的项目搬过来?一句话搞定,包括 Issues 和 CI 配置。</p>
|
||||||
|
<div class="space-y-3">
|
||||||
|
<div class="chat-bubble chat-bubble-user text-sm text-gray-200">
|
||||||
|
<p class="text-xs text-blue-400 mb-1">你</p>
|
||||||
|
把我们 GitHub 上 org/backend-api 这个仓库迁移过来
|
||||||
|
</div>
|
||||||
|
<div class="chat-bubble chat-bubble-ai text-sm text-gray-200">
|
||||||
|
<p class="text-xs text-nexora-500 mb-1">🦞 Nexora AI</p>
|
||||||
|
迁移完成 ✅<br>
|
||||||
|
• 代码:全部分支和标签已导入<br>
|
||||||
|
• Issues:42 个已迁移<br>
|
||||||
|
• CI:GitHub Actions → Gitea Actions 已适配<br>
|
||||||
|
<span class="text-gray-500 text-xs">还有其他仓库要迁吗?</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Chat Demo 4: Write docs -->
|
||||||
|
<div>
|
||||||
|
<h3 class="text-xl font-semibold text-white mb-2">📝 写文档</h3>
|
||||||
|
<p class="text-gray-400 text-sm mb-6">AI 读代码、生成文档、发布到知识库,一步到位。</p>
|
||||||
|
<div class="space-y-3">
|
||||||
|
<div class="chat-bubble chat-bubble-user text-sm text-gray-200">
|
||||||
|
<p class="text-xs text-blue-400 mb-1">你</p>
|
||||||
|
把 backend-api 的接口整理成 API 文档,发布到 Outline
|
||||||
|
</div>
|
||||||
|
<div class="chat-bubble chat-bubble-ai text-sm text-gray-200">
|
||||||
|
<p class="text-xs text-nexora-500 mb-1">🦞 Nexora AI</p>
|
||||||
|
已扫描 23 个 endpoint,文档已发布 ✅<br>
|
||||||
|
• 用户模块:5 个接口<br>
|
||||||
|
• 订单模块:12 个接口<br>
|
||||||
|
• 支付模块:6 个接口<br>
|
||||||
|
<span class="text-gray-500 text-xs">→ outline.nexora.restry.cn/doc/api-reference</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Key message -->
|
||||||
|
<div class="text-center bg-dark-800 rounded-2xl p-8 border border-gray-700/50 glow">
|
||||||
|
<p class="text-lg text-gray-300 leading-relaxed">
|
||||||
|
<strong class="text-white">你的团队不需要学 Git 命令、不需要记部署流程、不需要配 CI/CD。</strong><br>
|
||||||
|
打开 Mattermost,跟 Nexora AI 说你要什么 — 代码、测试、部署、文档、监控,全部通过对话完成。
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<div class="section-divider max-w-4xl mx-auto"></div>
|
||||||
|
|
||||||
<!-- Services -->
|
<!-- Services -->
|
||||||
<section id="services" class="py-20">
|
<section id="services" class="py-20">
|
||||||
<div class="max-w-6xl mx-auto px-6">
|
<div class="max-w-6xl mx-auto px-6">
|
||||||
<div class="text-center mb-16">
|
<div class="text-center mb-16">
|
||||||
<h2 class="text-3xl md:text-4xl font-bold text-white mb-4">平台服务</h2>
|
<h2 class="text-3xl md:text-4xl font-bold text-white mb-4">平台服务</h2>
|
||||||
<p class="text-gray-400 max-w-xl mx-auto">所有服务通过 Gitea 统一账号体系登录,一个账号访问全部平台。</p>
|
<p class="text-gray-400 max-w-xl mx-auto">AI 管家在背后操作这些服务,你也可以随时直接访问。统一账号,一次登录。</p>
|
||||||
</div>
|
</div>
|
||||||
<div class="grid md:grid-cols-2 lg:grid-cols-3 gap-6">
|
<div class="grid md:grid-cols-2 lg:grid-cols-3 gap-6">
|
||||||
|
|
||||||
<!-- Gitea -->
|
|
||||||
<a href="https://gitea.nexora.restry.cn" target="_blank" class="card-hover p-6 rounded-2xl bg-dark-800 border border-gray-700/50 glow block">
|
<a href="https://gitea.nexora.restry.cn" target="_blank" class="card-hover p-6 rounded-2xl bg-dark-800 border border-gray-700/50 glow block">
|
||||||
<div class="service-icon mb-4">🗃️</div>
|
<div class="text-4xl mb-4">🗃️</div>
|
||||||
<h3 class="text-xl font-semibold text-white mb-2">Gitea — 代码管理</h3>
|
<h3 class="text-xl font-semibold text-white mb-2">Gitea — 代码管理</h3>
|
||||||
<p class="text-gray-400 text-sm leading-relaxed mb-3">
|
<p class="text-gray-400 text-sm leading-relaxed mb-3">
|
||||||
轻量级 Git 托管平台,兼容 GitHub 生态。支持仓库管理、Pull Request、代码审查、Issue 跟踪、Gitea Actions CI/CD。
|
Git 仓库托管,支持 PR、代码审查、Issue 跟踪、CI/CD。AI 在这里创建仓库、提交代码、管理分支。
|
||||||
</p>
|
</p>
|
||||||
<div class="text-xs text-gray-500">gitea.nexora.restry.cn ↗</div>
|
<div class="text-xs text-gray-500">gitea.nexora.restry.cn ↗</div>
|
||||||
</a>
|
</a>
|
||||||
|
|
||||||
<!-- Outline -->
|
|
||||||
<a href="https://outline.nexora.restry.cn" target="_blank" class="card-hover p-6 rounded-2xl bg-dark-800 border border-gray-700/50 glow block">
|
<a href="https://outline.nexora.restry.cn" target="_blank" class="card-hover p-6 rounded-2xl bg-dark-800 border border-gray-700/50 glow block">
|
||||||
<div class="service-icon mb-4">📝</div>
|
<div class="text-4xl mb-4">📝</div>
|
||||||
<h3 class="text-xl font-semibold text-white mb-2">Outline — 知识库</h3>
|
<h3 class="text-xl font-semibold text-white mb-2">Outline — 知识库</h3>
|
||||||
<p class="text-gray-400 text-sm leading-relaxed mb-3">
|
<p class="text-gray-400 text-sm leading-relaxed mb-3">
|
||||||
团队文档协作平台,支持 Markdown 编辑、实时协作、结构化知识管理。项目文档、API 文档、会议记录、技术方案都在这里。
|
团队文档协作。AI 自动生成 API 文档、技术方案、会议记录,人只需审核和补充。
|
||||||
</p>
|
</p>
|
||||||
<div class="text-xs text-gray-500">outline.nexora.restry.cn ↗</div>
|
<div class="text-xs text-gray-500">outline.nexora.restry.cn ↗</div>
|
||||||
</a>
|
</a>
|
||||||
|
|
||||||
<!-- Uptime Kuma -->
|
|
||||||
<a href="https://uptime.nexora.restry.cn" target="_blank" class="card-hover p-6 rounded-2xl bg-dark-800 border border-gray-700/50 glow block">
|
<a href="https://uptime.nexora.restry.cn" target="_blank" class="card-hover p-6 rounded-2xl bg-dark-800 border border-gray-700/50 glow block">
|
||||||
<div class="service-icon mb-4">📊</div>
|
<div class="text-4xl mb-4">📊</div>
|
||||||
<h3 class="text-xl font-semibold text-white mb-2">Uptime Kuma — 监控</h3>
|
<h3 class="text-xl font-semibold text-white mb-2">Uptime Kuma — 监控</h3>
|
||||||
<p class="text-gray-400 text-sm leading-relaxed mb-3">
|
<p class="text-gray-400 text-sm leading-relaxed mb-3">
|
||||||
服务可用性监控,实时检测所有平台服务状态。支持 HTTP、TCP、Ping、DNS 多种检测方式,故障时自动告警到 Mattermost。
|
7×24 服务可用性监控。故障时 AI 管家第一时间告警,并尝试自动诊断和修复。
|
||||||
</p>
|
</p>
|
||||||
<div class="text-xs text-gray-500">uptime.nexora.restry.cn ↗</div>
|
<div class="text-xs text-gray-500">uptime.nexora.restry.cn ↗</div>
|
||||||
</a>
|
</a>
|
||||||
|
|
||||||
<!-- Portainer -->
|
|
||||||
<a href="https://portainer.nexora.restry.cn" target="_blank" class="card-hover p-6 rounded-2xl bg-dark-800 border border-gray-700/50 glow block">
|
<a href="https://portainer.nexora.restry.cn" target="_blank" class="card-hover p-6 rounded-2xl bg-dark-800 border border-gray-700/50 glow block">
|
||||||
<div class="service-icon mb-4">🐳</div>
|
<div class="text-4xl mb-4">🐳</div>
|
||||||
<h3 class="text-xl font-semibold text-white mb-2">Portainer — 容器管理</h3>
|
<h3 class="text-xl font-semibold text-white mb-2">Portainer — 容器管理</h3>
|
||||||
<p class="text-gray-400 text-sm leading-relaxed mb-3">
|
<p class="text-gray-400 text-sm leading-relaxed mb-3">
|
||||||
Docker 可视化管理面板。查看容器状态、日志、资源占用,管理镜像、网络、数据卷,无需命令行也能运维。
|
Docker 可视化管理。查看容器状态、日志、资源,或者直接让 AI 管家来操作。
|
||||||
</p>
|
</p>
|
||||||
<div class="text-xs text-gray-500">portainer.nexora.restry.cn ↗</div>
|
<div class="text-xs text-gray-500">portainer.nexora.restry.cn ↗</div>
|
||||||
</a>
|
</a>
|
||||||
|
|
||||||
<!-- Mattermost -->
|
|
||||||
<a href="https://mm.dora.restry.cn" target="_blank" class="card-hover p-6 rounded-2xl bg-dark-800 border border-gray-700/50 glow block">
|
<a href="https://mm.dora.restry.cn" target="_blank" class="card-hover p-6 rounded-2xl bg-dark-800 border border-gray-700/50 glow block">
|
||||||
<div class="service-icon mb-4">💬</div>
|
<div class="text-4xl mb-4">💬</div>
|
||||||
<h3 class="text-xl font-semibold text-white mb-2">Mattermost — 团队沟通</h3>
|
<h3 class="text-xl font-semibold text-white mb-2">Mattermost — 团队沟通</h3>
|
||||||
<p class="text-gray-400 text-sm leading-relaxed mb-3">
|
<p class="text-gray-400 text-sm leading-relaxed mb-3">
|
||||||
自托管即时通讯平台,替代 Slack。频道管理、文件分享、集成 Webhook,CI/CD 通知和监控告警都汇聚于此。
|
你与 AI 的主要交互界面。也是团队沟通、CI 通知、监控告警的汇聚地。
|
||||||
</p>
|
</p>
|
||||||
<div class="text-xs text-gray-500">mm.dora.restry.cn ↗</div>
|
<div class="text-xs text-gray-500">mm.dora.restry.cn ↗</div>
|
||||||
</a>
|
</a>
|
||||||
|
|
||||||
<!-- Nexora AI -->
|
|
||||||
<div class="card-hover p-6 rounded-2xl bg-dark-800 border border-gray-700/50 glow">
|
<div class="card-hover p-6 rounded-2xl bg-dark-800 border border-gray-700/50 glow">
|
||||||
<div class="service-icon mb-4">🤖</div>
|
<div class="text-4xl mb-4">🦞</div>
|
||||||
<h3 class="text-xl font-semibold text-white mb-2">Nexora AI — 运维管家</h3>
|
<h3 class="text-xl font-semibold text-white mb-2">Nexora AI — 运维管家</h3>
|
||||||
<p class="text-gray-400 text-sm leading-relaxed mb-3">
|
<p class="text-gray-400 text-sm leading-relaxed mb-3">
|
||||||
AI 驱动的 DevOps 助手,驻扎在 Mattermost。服务监控、代码管理、自动化运维、子代理编排,7×24 在线协助。
|
平台的大脑。代码管理、文档撰写、服务监控、自动化运维 — 你说,它做。7×24 在线。
|
||||||
</p>
|
</p>
|
||||||
<div class="text-xs text-gray-500">通过 Mattermost 交互 🦞</div>
|
<div class="text-xs text-gray-500">通过 Mattermost @nexora 交互</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
@@ -158,38 +264,230 @@
|
|||||||
|
|
||||||
<div class="section-divider max-w-4xl mx-auto"></div>
|
<div class="section-divider max-w-4xl mx-auto"></div>
|
||||||
|
|
||||||
|
<!-- Migration Guide -->
|
||||||
|
<section id="migrate" class="py-20">
|
||||||
|
<div class="max-w-5xl mx-auto px-6">
|
||||||
|
<h2 class="text-3xl md:text-4xl font-bold text-white mb-4 text-center">🚚 迁移指南</h2>
|
||||||
|
<p class="text-gray-400 text-center mb-16 max-w-2xl mx-auto">已有代码、文档、项目?告诉 AI 管家,它帮你搬。以下是典型的迁移路径:</p>
|
||||||
|
|
||||||
|
<div class="space-y-8">
|
||||||
|
<!-- Step 1 -->
|
||||||
|
<div class="flex gap-6">
|
||||||
|
<div class="flex-shrink-0 w-12 h-12 bg-nexora-600 rounded-xl flex items-center justify-center font-bold text-white text-lg">1</div>
|
||||||
|
<div>
|
||||||
|
<h3 class="text-xl font-semibold text-white mb-2">代码仓库迁移</h3>
|
||||||
|
<p class="text-gray-400 mb-3">告诉 AI 你的代码在哪里,它自动完成迁移:</p>
|
||||||
|
<div class="chat-bubble chat-bubble-user text-sm text-gray-200 max-w-lg">
|
||||||
|
<p class="text-xs text-blue-400 mb-1">你</p>
|
||||||
|
把我们 GitHub 组织 <code>acme-corp</code> 下面所有仓库都迁移过来
|
||||||
|
</div>
|
||||||
|
<p class="text-sm text-gray-500 mt-3">AI 会处理:代码(所有分支和标签)、Issues、PR 历史、CI 配置转换(GitHub Actions → Gitea Actions)</p>
|
||||||
|
<div class="mt-4 p-4 rounded-xl bg-dark-800 border border-gray-700/50">
|
||||||
|
<p class="text-sm text-gray-400"><strong class="text-white">支持的来源:</strong>GitHub、GitLab、Bitbucket、Gitea、Gogs、本地 Git 仓库</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Step 2 -->
|
||||||
|
<div class="flex gap-6">
|
||||||
|
<div class="flex-shrink-0 w-12 h-12 bg-nexora-600 rounded-xl flex items-center justify-center font-bold text-white text-lg">2</div>
|
||||||
|
<div>
|
||||||
|
<h3 class="text-xl font-semibold text-white mb-2">文档迁移</h3>
|
||||||
|
<p class="text-gray-400 mb-3">Confluence、Notion、Google Docs、Markdown 文件 — 都可以迁移到 Outline:</p>
|
||||||
|
<div class="chat-bubble chat-bubble-user text-sm text-gray-200 max-w-lg">
|
||||||
|
<p class="text-xs text-blue-400 mb-1">你</p>
|
||||||
|
这个目录下有我们所有的 Markdown 文档,帮我整理成 Outline 知识库
|
||||||
|
</div>
|
||||||
|
<p class="text-sm text-gray-500 mt-3">AI 会:分析文档结构 → 创建分类(集合)→ 导入并格式化 → 建立交叉链接</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Step 3 -->
|
||||||
|
<div class="flex gap-6">
|
||||||
|
<div class="flex-shrink-0 w-12 h-12 bg-nexora-600 rounded-xl flex items-center justify-center font-bold text-white text-lg">3</div>
|
||||||
|
<div>
|
||||||
|
<h3 class="text-xl font-semibold text-white mb-2">团队成员导入</h3>
|
||||||
|
<p class="text-gray-400 mb-3">批量创建团队账号,设置权限:</p>
|
||||||
|
<div class="chat-bubble chat-bubble-user text-sm text-gray-200 max-w-lg">
|
||||||
|
<p class="text-xs text-blue-400 mb-1">你</p>
|
||||||
|
创建 5 个开发账号、2 个测试账号、1 个产品经理账号
|
||||||
|
</div>
|
||||||
|
<p class="text-sm text-gray-500 mt-3">AI 会创建 Gitea 账号并设置角色权限,其他服务通过 SSO 自动关联。</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Step 4 -->
|
||||||
|
<div class="flex gap-6">
|
||||||
|
<div class="flex-shrink-0 w-12 h-12 bg-nexora-600 rounded-xl flex items-center justify-center font-bold text-white text-lg">4</div>
|
||||||
|
<div>
|
||||||
|
<h3 class="text-xl font-semibold text-white mb-2">CI/CD 流水线配置</h3>
|
||||||
|
<p class="text-gray-400 mb-3">AI 根据你的项目类型自动配置构建和部署流程:</p>
|
||||||
|
<div class="chat-bubble chat-bubble-user text-sm text-gray-200 max-w-lg">
|
||||||
|
<p class="text-xs text-blue-400 mb-1">你</p>
|
||||||
|
给 backend-api 配上 CI/CD,push 到 develop 自动部署测试环境,打 tag 部署生产
|
||||||
|
</div>
|
||||||
|
<p class="text-sm text-gray-500 mt-3">AI 会生成 Gitea Actions 配置、设置环境变量、配置部署目标。</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="mt-12 text-center bg-dark-800 rounded-2xl p-8 border border-gray-700/50">
|
||||||
|
<p class="text-lg text-gray-300">
|
||||||
|
<strong class="text-white">整个迁移过程只需要对话。</strong><br>
|
||||||
|
<span class="text-gray-400">告诉 AI 你现在用的工具和资产在哪里,它会给你一个迁移计划,你确认后开始执行。</span>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<div class="section-divider max-w-4xl mx-auto"></div>
|
||||||
|
|
||||||
|
<!-- How AI works with the platform -->
|
||||||
|
<section class="py-20">
|
||||||
|
<div class="max-w-5xl mx-auto px-6">
|
||||||
|
<h2 class="text-3xl md:text-4xl font-bold text-white mb-4 text-center">AI 在哪里?无处不在</h2>
|
||||||
|
<p class="text-gray-400 text-center mb-16 max-w-2xl mx-auto">Nexora AI 不只是一个聊天机器人,它是整个平台的操控者。</p>
|
||||||
|
|
||||||
|
<div class="grid md:grid-cols-2 gap-8">
|
||||||
|
<div class="p-6 rounded-2xl bg-dark-800 border border-gray-700/50">
|
||||||
|
<h3 class="text-lg font-semibold text-white mb-3">💻 代码层面</h3>
|
||||||
|
<ul class="text-sm text-gray-400 space-y-2">
|
||||||
|
<li>• 根据需求描述生成代码(可调用子代理专注前端/后端/数据库)</li>
|
||||||
|
<li>• 代码审查 — AI 自动 review PR,提出改进建议</li>
|
||||||
|
<li>• Bug 修复 — 描述问题,AI 定位并提交修复</li>
|
||||||
|
<li>• 重构优化 — "这个模块性能不好" → AI 分析并重构</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div class="p-6 rounded-2xl bg-dark-800 border border-gray-700/50">
|
||||||
|
<h3 class="text-lg font-semibold text-white mb-3">🔧 运维层面</h3>
|
||||||
|
<ul class="text-sm text-gray-400 space-y-2">
|
||||||
|
<li>• 服务监控 — 7×24 自动巡检,故障告警 + 自诊断</li>
|
||||||
|
<li>• 部署管理 — 对话式部署,支持三环境切换</li>
|
||||||
|
<li>• 容器管理 — 查看日志、重启服务、资源分析</li>
|
||||||
|
<li>• 安全审计 — 自动扫描漏洞、检查配置安全</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div class="p-6 rounded-2xl bg-dark-800 border border-gray-700/50">
|
||||||
|
<h3 class="text-lg font-semibold text-white mb-3">📝 文档层面</h3>
|
||||||
|
<ul class="text-sm text-gray-400 space-y-2">
|
||||||
|
<li>• 自动生成 API 文档、数据库文档</li>
|
||||||
|
<li>• 将技术讨论整理成文档发布到 Outline</li>
|
||||||
|
<li>• 维护更新日志(Changelog)</li>
|
||||||
|
<li>• 新人入职指南自动生成</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div class="p-6 rounded-2xl bg-dark-800 border border-gray-700/50">
|
||||||
|
<h3 class="text-lg font-semibold text-white mb-3">🤝 协作层面</h3>
|
||||||
|
<ul class="text-sm text-gray-400 space-y-2">
|
||||||
|
<li>• 多代理编排 — 前端、后端、DBA 子代理分工协作</li>
|
||||||
|
<li>• 自动同步信息 — 代码变更通知到 Mattermost 频道</li>
|
||||||
|
<li>• 项目状态汇总 — "这周做了什么?" → AI 总结</li>
|
||||||
|
<li>• 跨团队协调 — AI 帮你跟踪依赖和阻塞</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<div class="section-divider max-w-4xl mx-auto"></div>
|
||||||
|
|
||||||
|
<!-- Three Environments -->
|
||||||
|
<section class="py-20">
|
||||||
|
<div class="max-w-5xl mx-auto px-6">
|
||||||
|
<h2 class="text-3xl md:text-4xl font-bold text-white mb-4 text-center">🏗️ 三环境架构</h2>
|
||||||
|
<p class="text-gray-400 text-center mb-12">从开发到上线,AI 管理整个流程。你只需要说"可以上线了"。</p>
|
||||||
|
|
||||||
|
<div class="grid md:grid-cols-3 gap-6 mb-12">
|
||||||
|
<div class="p-6 rounded-2xl bg-dark-800 border-2 env-dev">
|
||||||
|
<div class="text-3xl mb-3">🟢</div>
|
||||||
|
<h4 class="text-lg font-bold text-green-400 mb-2">Development</h4>
|
||||||
|
<p class="text-sm text-gray-400 mb-3">AI 写代码、跑测试,你 review</p>
|
||||||
|
<ul class="text-xs text-gray-500 space-y-1">
|
||||||
|
<li>• AI 在 feature 分支上开发</li>
|
||||||
|
<li>• 每次提交自动跑单元测试</li>
|
||||||
|
<li>• 完成后自动创建 PR</li>
|
||||||
|
<li>• <code>dev-*.nexora.restry.cn</code></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div class="p-6 rounded-2xl bg-dark-800 border-2 env-staging">
|
||||||
|
<div class="text-3xl mb-3">🟡</div>
|
||||||
|
<h4 class="text-lg font-bold text-yellow-400 mb-2">Staging</h4>
|
||||||
|
<p class="text-sm text-gray-400 mb-3">集成测试,验证一切正常</p>
|
||||||
|
<ul class="text-xs text-gray-500 space-y-1">
|
||||||
|
<li>• PR 合并后自动部署</li>
|
||||||
|
<li>• AI 运行集成测试</li>
|
||||||
|
<li>• 模拟生产数据验证</li>
|
||||||
|
<li>• <code>staging-*.nexora.restry.cn</code></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div class="p-6 rounded-2xl bg-dark-800 border-2 env-prod">
|
||||||
|
<div class="text-3xl mb-3">🔴</div>
|
||||||
|
<h4 class="text-lg font-bold text-red-400 mb-2">Production</h4>
|
||||||
|
<p class="text-sm text-gray-400 mb-3">你说"上线",AI 帮你发</p>
|
||||||
|
<ul class="text-xs text-gray-500 space-y-1">
|
||||||
|
<li>• 打 tag 触发发版流程</li>
|
||||||
|
<li>• 人工确认后部署</li>
|
||||||
|
<li>• AI 监控运行状态</li>
|
||||||
|
<li>• <code>*.nexora.restry.cn</code></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="bg-dark-800 rounded-2xl p-6 border border-gray-700/50 text-center">
|
||||||
|
<p class="text-sm text-gray-400">
|
||||||
|
<strong class="text-white">典型流程:</strong>
|
||||||
|
<span class="inline-flex items-center gap-2 flex-wrap justify-center mt-2">
|
||||||
|
<span class="px-3 py-1 bg-blue-900/30 text-blue-400 rounded-lg text-xs">你说需求</span>
|
||||||
|
<span class="flow-arrow text-sm">→</span>
|
||||||
|
<span class="px-3 py-1 bg-green-900/30 text-green-400 rounded-lg text-xs">AI 开发</span>
|
||||||
|
<span class="flow-arrow text-sm">→</span>
|
||||||
|
<span class="px-3 py-1 bg-purple-900/30 text-purple-400 rounded-lg text-xs">你审核 PR</span>
|
||||||
|
<span class="flow-arrow text-sm">→</span>
|
||||||
|
<span class="px-3 py-1 bg-yellow-900/30 text-yellow-400 rounded-lg text-xs">自动测试</span>
|
||||||
|
<span class="flow-arrow text-sm">→</span>
|
||||||
|
<span class="px-3 py-1 bg-red-900/30 text-red-400 rounded-lg text-xs">你说上线</span>
|
||||||
|
<span class="flow-arrow text-sm">→</span>
|
||||||
|
<span class="px-3 py-1 bg-nexora-900/50 text-nexora-500 rounded-lg text-xs">AI 部署</span>
|
||||||
|
</span>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<div class="section-divider max-w-4xl mx-auto"></div>
|
||||||
|
|
||||||
<!-- Documentation -->
|
<!-- Documentation -->
|
||||||
<section id="docs" class="py-20">
|
<section id="docs" class="py-20">
|
||||||
<div class="max-w-6xl mx-auto px-6">
|
<div class="max-w-6xl mx-auto px-6">
|
||||||
<div class="text-center mb-16">
|
<div class="text-center mb-16">
|
||||||
<h2 class="text-3xl md:text-4xl font-bold text-white mb-4">📚 平台文档</h2>
|
<h2 class="text-3xl md:text-4xl font-bold text-white mb-4">📚 平台文档</h2>
|
||||||
<p class="text-gray-400 max-w-xl mx-auto">详细文档托管在 Outline 知识库,点击直接阅读。</p>
|
<p class="text-gray-400 max-w-xl mx-auto">详细文档在 Outline 知识库。当然,你也可以直接问 AI 管家。</p>
|
||||||
</div>
|
</div>
|
||||||
<div class="grid md:grid-cols-2 lg:grid-cols-3 gap-6">
|
<div class="grid md:grid-cols-2 lg:grid-cols-3 gap-6">
|
||||||
<a href="https://outline.nexora.restry.cn/doc/5bmz5yw5qac6kei-5exmIeWrQg" target="_blank" class="card-hover p-6 rounded-2xl bg-dark-800 border border-gray-700/50 block">
|
<a href="https://outline.nexora.restry.cn/doc/5bmz5yw5qac6kei-5exmIeWrQg" target="_blank" class="card-hover p-6 rounded-2xl bg-dark-800 border border-gray-700/50 block">
|
||||||
<div class="text-2xl mb-3">🌐</div>
|
<div class="text-2xl mb-3">🌐</div>
|
||||||
<h3 class="text-lg font-semibold text-white mb-2">平台概览</h3>
|
<h3 class="text-lg font-semibold text-white mb-2">平台概览</h3>
|
||||||
<p class="text-sm text-gray-400">Nexora 是什么、核心服务一览、基础架构说明。</p>
|
<p class="text-sm text-gray-400">Nexora 是什么、核心服务、基础架构。</p>
|
||||||
</a>
|
</a>
|
||||||
<a href="https://outline.nexora.restry.cn/doc/5br6ycf5bya5ael-FSeBsQafAJ" target="_blank" class="card-hover p-6 rounded-2xl bg-dark-800 border border-gray-700/50 block">
|
<a href="https://outline.nexora.restry.cn/doc/5br6ycf5bya5ael-FSeBsQafAJ" target="_blank" class="card-hover p-6 rounded-2xl bg-dark-800 border border-gray-700/50 block">
|
||||||
<div class="text-2xl mb-3">🚀</div>
|
<div class="text-2xl mb-3">🚀</div>
|
||||||
<h3 class="text-lg font-semibold text-white mb-2">快速开始</h3>
|
<h3 class="text-lg font-semibold text-white mb-2">快速开始</h3>
|
||||||
<p class="text-sm text-gray-400">从获取账号到推送第一行代码,5 分钟上手指南。</p>
|
<p class="text-sm text-gray-400">从获取账号到第一个项目,5 分钟上手。</p>
|
||||||
</a>
|
</a>
|
||||||
<a href="https://outline.nexora.restry.cn/doc/5bya5yr5rwb56il-pvdrsXPpje" target="_blank" class="card-hover p-6 rounded-2xl bg-dark-800 border border-gray-700/50 block">
|
<a href="https://outline.nexora.restry.cn/doc/5bya5yr5rwb56il-pvdrsXPpje" target="_blank" class="card-hover p-6 rounded-2xl bg-dark-800 border border-gray-700/50 block">
|
||||||
<div class="text-2xl mb-3">🔄</div>
|
<div class="text-2xl mb-3">🔄</div>
|
||||||
<h3 class="text-lg font-semibold text-white mb-2">开发流程</h3>
|
<h3 class="text-lg font-semibold text-white mb-2">开发流程</h3>
|
||||||
<p class="text-sm text-gray-400">三环境架构、Git Flow 分支策略、CI/CD 配置。</p>
|
<p class="text-sm text-gray-400">三环境、Git Flow、CI/CD 配置。</p>
|
||||||
</a>
|
</a>
|
||||||
<a href="https://outline.nexora.restry.cn/doc/5pyn5yqh5l255so5oyh5y2x-5JAPWGUvee" target="_blank" class="card-hover p-6 rounded-2xl bg-dark-800 border border-gray-700/50 block">
|
<a href="https://outline.nexora.restry.cn/doc/5pyn5yqh5l255so5oyh5y2x-5JAPWGUvee" target="_blank" class="card-hover p-6 rounded-2xl bg-dark-800 border border-gray-700/50 block">
|
||||||
<div class="text-2xl mb-3">📖</div>
|
<div class="text-2xl mb-3">📖</div>
|
||||||
<h3 class="text-lg font-semibold text-white mb-2">服务使用指南</h3>
|
<h3 class="text-lg font-semibold text-white mb-2">服务使用指南</h3>
|
||||||
<p class="text-sm text-gray-400">每个服务的详细用法、功能介绍和最佳实践。</p>
|
<p class="text-sm text-gray-400">每个服务的功能和使用方法。</p>
|
||||||
</a>
|
</a>
|
||||||
<a href="https://outline.nexora.restry.cn/doc/sso-5oknaH4XNt" target="_blank" class="card-hover p-6 rounded-2xl bg-dark-800 border border-gray-700/50 block">
|
<a href="https://outline.nexora.restry.cn/doc/sso-5oknaH4XNt" target="_blank" class="card-hover p-6 rounded-2xl bg-dark-800 border border-gray-700/50 block">
|
||||||
<div class="text-2xl mb-3">🔑</div>
|
<div class="text-2xl mb-3">🔑</div>
|
||||||
<h3 class="text-lg font-semibold text-white mb-2">统一认证 (SSO)</h3>
|
<h3 class="text-lg font-semibold text-white mb-2">统一认证 (SSO)</h3>
|
||||||
<p class="text-sm text-gray-400">Gitea OAuth/OIDC 配置说明,如何接入新服务。</p>
|
<p class="text-sm text-gray-400">Gitea OAuth 统一登录配置。</p>
|
||||||
</a>
|
</a>
|
||||||
<a href="https://outline.nexora.restry.cn/collection/nexora-platform" target="_blank" class="card-hover p-6 rounded-2xl bg-dark-800 border border-dashed border-gray-600 flex flex-col items-center justify-center block">
|
<a href="https://outline.nexora.restry.cn/collection/nexora-platform" target="_blank" class="card-hover p-6 rounded-2xl bg-dark-800 border border-dashed border-gray-600 flex flex-col items-center justify-center block">
|
||||||
<div class="text-2xl mb-3">📝</div>
|
<div class="text-2xl mb-3">📝</div>
|
||||||
@@ -202,238 +500,95 @@
|
|||||||
|
|
||||||
<div class="section-divider max-w-4xl mx-auto"></div>
|
<div class="section-divider max-w-4xl mx-auto"></div>
|
||||||
|
|
||||||
<!-- Quick Start -->
|
<!-- Roadmap -->
|
||||||
<section id="quickstart" class="py-20">
|
<section id="roadmap" class="py-20">
|
||||||
<div class="max-w-4xl mx-auto px-6">
|
<div class="max-w-4xl mx-auto px-6">
|
||||||
<h2 class="text-3xl md:text-4xl font-bold text-white mb-4 text-center">快速开始</h2>
|
<h2 class="text-3xl md:text-4xl font-bold text-white mb-4 text-center">🗺️ 演进路线</h2>
|
||||||
<p class="text-gray-400 text-center mb-16">从零开始,5 分钟上手 Nexora 平台。</p>
|
<p class="text-gray-400 text-center mb-16 max-w-2xl mx-auto">Nexora 还在快速进化。以下是已规划的能力升级方向 — 如果你有想法,随时跟 AI 管家或团队沟通。</p>
|
||||||
|
|
||||||
<!-- Step 1: Login -->
|
<div class="space-y-8">
|
||||||
<div class="mb-12">
|
<!-- Now -->
|
||||||
<div class="flex items-center gap-3 mb-4">
|
<div class="flex gap-5">
|
||||||
<span class="w-8 h-8 bg-nexora-600 text-white rounded-lg flex items-center justify-center font-bold text-sm">1</span>
|
<div class="flex-shrink-0">
|
||||||
<h3 class="text-xl font-semibold text-white">登录账号</h3>
|
<div class="w-10 h-10 bg-green-600 rounded-full flex items-center justify-center text-white text-sm font-bold">✓</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="pl-11">
|
<div>
|
||||||
<p class="text-gray-400 mb-3">
|
<div class="flex items-center gap-3 mb-2">
|
||||||
所有平台服务使用 <strong class="text-white">Gitea 统一账号</strong>登录。首次使用请联系管理员创建账号,然后访问 Gitea 修改初始密码。
|
<h3 class="text-lg font-semibold text-white">现有能力</h3>
|
||||||
|
<span class="px-2 py-0.5 text-xs bg-green-900/50 text-green-400 rounded-full">已上线</span>
|
||||||
|
</div>
|
||||||
|
<p class="text-sm text-gray-400">代码托管 (Gitea) · 知识库 (Outline) · 服务监控 (Uptime Kuma) · 容器管理 (Portainer) · 团队沟通 (Mattermost) · AI 运维管家 · SSO 统一登录 · FRP 内网穿透 · 自动 TLS</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Short term -->
|
||||||
|
<div class="flex gap-5">
|
||||||
|
<div class="flex-shrink-0">
|
||||||
|
<div class="w-10 h-10 bg-yellow-600 rounded-full flex items-center justify-center text-white text-sm font-bold">→</div>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<div class="flex items-center gap-3 mb-2">
|
||||||
|
<h3 class="text-lg font-semibold text-white">近期计划</h3>
|
||||||
|
<span class="px-2 py-0.5 text-xs bg-yellow-900/50 text-yellow-400 rounded-full">开发中</span>
|
||||||
|
</div>
|
||||||
|
<ul class="text-sm text-gray-400 space-y-1">
|
||||||
|
<li>🔧 <strong class="text-gray-300">Gitea Actions Runner</strong> — 配置 CI/CD runner,实现自动构建和部署</li>
|
||||||
|
<li>🤖 <strong class="text-gray-300">多代理编排</strong> — 前端、后端、DBA 专属子代理,分工协作</li>
|
||||||
|
<li>📊 <strong class="text-gray-300">Grafana + Prometheus</strong> — 系统级监控(CPU、内存、磁盘、网络)</li>
|
||||||
|
<li>🔐 <strong class="text-gray-300">Vault / 密钥管理</strong> — 安全存储 API Key、数据库密码等敏感信息</li>
|
||||||
|
<li>📦 <strong class="text-gray-300">Docker Registry</strong> — 私有镜像仓库,CI 构建的镜像直接推送</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Mid term -->
|
||||||
|
<div class="flex gap-5">
|
||||||
|
<div class="flex-shrink-0">
|
||||||
|
<div class="w-10 h-10 bg-blue-600 rounded-full flex items-center justify-center text-white text-sm font-bold">◎</div>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<div class="flex items-center gap-3 mb-2">
|
||||||
|
<h3 class="text-lg font-semibold text-white">中期目标</h3>
|
||||||
|
<span class="px-2 py-0.5 text-xs bg-blue-900/50 text-blue-400 rounded-full">规划中</span>
|
||||||
|
</div>
|
||||||
|
<ul class="text-sm text-gray-400 space-y-1">
|
||||||
|
<li>☸️ <strong class="text-gray-300">Kubernetes</strong> — 容器编排升级,支持自动扩缩容</li>
|
||||||
|
<li>🌐 <strong class="text-gray-300">多节点部署</strong> — 开发/测试/生产环境隔离到不同服务器</li>
|
||||||
|
<li>📧 <strong class="text-gray-300">邮件服务</strong> — 自建邮件 + 通知集成</li>
|
||||||
|
<li>🎯 <strong class="text-gray-300">项目管理</strong> — AI 驱动的任务看板(或集成 Plane/Taiga)</li>
|
||||||
|
<li>📱 <strong class="text-gray-300">移动端接入</strong> — 手机上也能跟 AI 管家对话操作</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Long term -->
|
||||||
|
<div class="flex gap-5">
|
||||||
|
<div class="flex-shrink-0">
|
||||||
|
<div class="w-10 h-10 bg-purple-600 rounded-full flex items-center justify-center text-white text-sm font-bold">★</div>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<div class="flex items-center gap-3 mb-2">
|
||||||
|
<h3 class="text-lg font-semibold text-white">远期愿景</h3>
|
||||||
|
<span class="px-2 py-0.5 text-xs bg-purple-900/50 text-purple-400 rounded-full">探索中</span>
|
||||||
|
</div>
|
||||||
|
<ul class="text-sm text-gray-400 space-y-1">
|
||||||
|
<li>🧠 <strong class="text-gray-300">全自主开发</strong> — AI 从需求文档直接生成可部署的应用</li>
|
||||||
|
<li>🔄 <strong class="text-gray-300">自愈系统</strong> — 故障自动检测、诊断、修复,零人工干预</li>
|
||||||
|
<li>📈 <strong class="text-gray-300">智能分析</strong> — 代码质量趋势、团队效率报告、技术债务预警</li>
|
||||||
|
<li>🌍 <strong class="text-gray-300">多团队/多租户</strong> — 支持多个团队独立运营</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="mt-12 text-center bg-dark-800 rounded-2xl p-8 border border-gray-700/50">
|
||||||
|
<p class="text-lg text-gray-300 mb-3">
|
||||||
|
<strong class="text-white">这份路线图是活的。</strong>
|
||||||
|
</p>
|
||||||
|
<p class="text-gray-400">
|
||||||
|
有什么想加的功能?觉得哪个优先级该调?直接在 Mattermost 里跟 @nexora 或团队聊。<br>
|
||||||
|
好的平台是用出来的,不是规划出来的。
|
||||||
</p>
|
</p>
|
||||||
<div class="bg-dark-800 rounded-xl p-4 border border-gray-700/50">
|
|
||||||
<p class="text-sm text-gray-400 mb-2">📌 登录地址</p>
|
|
||||||
<code class="text-nexora-500">https://gitea.nexora.restry.cn</code>
|
|
||||||
<p class="text-sm text-gray-500 mt-2">其他服务(Outline、Portainer 等)点击 "通过 Nexora Git 登录" 即可 SSO 跳转。</p>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<!-- Step 2: SSH Key -->
|
|
||||||
<div class="mb-12">
|
|
||||||
<div class="flex items-center gap-3 mb-4">
|
|
||||||
<span class="w-8 h-8 bg-nexora-600 text-white rounded-lg flex items-center justify-center font-bold text-sm">2</span>
|
|
||||||
<h3 class="text-xl font-semibold text-white">配置 SSH Key</h3>
|
|
||||||
</div>
|
|
||||||
<div class="pl-11">
|
|
||||||
<p class="text-gray-400 mb-3">推送代码需要 SSH 密钥认证:</p>
|
|
||||||
<div class="bg-dark-800 rounded-xl p-4 border border-gray-700/50 overflow-x-auto">
|
|
||||||
<pre class="text-sm text-gray-300"><code># 生成 SSH Key(如果还没有)
|
|
||||||
ssh-keygen -t ed25519 -C "your-email@nexora.dev"
|
|
||||||
|
|
||||||
# 复制公钥
|
|
||||||
cat ~/.ssh/id_ed25519.pub
|
|
||||||
|
|
||||||
# 粘贴到 Gitea → 设置 → SSH/GPG Keys → 添加密钥</code></pre>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<!-- Step 3: Import Repo -->
|
|
||||||
<div class="mb-12">
|
|
||||||
<div class="flex items-center gap-3 mb-4">
|
|
||||||
<span class="w-8 h-8 bg-nexora-600 text-white rounded-lg flex items-center justify-center font-bold text-sm">3</span>
|
|
||||||
<h3 class="text-xl font-semibold text-white">导入已有代码</h3>
|
|
||||||
</div>
|
|
||||||
<div class="pl-11">
|
|
||||||
<p class="text-gray-400 mb-3">从 GitHub/GitLab 等平台迁移仓库:</p>
|
|
||||||
<div class="bg-dark-800 rounded-xl p-4 border border-gray-700/50">
|
|
||||||
<ol class="text-sm text-gray-300 space-y-2 list-decimal list-inside">
|
|
||||||
<li>登录 Gitea → 右上角 <strong class="text-white">+</strong> → <strong class="text-white">迁移外部仓库</strong></li>
|
|
||||||
<li>选择来源平台(GitHub、GitLab、Gitea 等)</li>
|
|
||||||
<li>填入仓库 URL(支持 HTTPS 和 SSH)</li>
|
|
||||||
<li>如果是私有仓库,填入访问令牌</li>
|
|
||||||
<li>选择是否迁移 Issues、PR、Labels 等</li>
|
|
||||||
<li>点击 <strong class="text-white">迁移仓库</strong>,等待完成</li>
|
|
||||||
</ol>
|
|
||||||
</div>
|
|
||||||
<p class="text-sm text-gray-500 mt-3">💡 也可以命令行迁移:</p>
|
|
||||||
<div class="bg-dark-800 rounded-xl p-4 border border-gray-700/50 overflow-x-auto mt-2">
|
|
||||||
<pre class="text-sm text-gray-300"><code># 克隆原仓库(含所有分支和标签)
|
|
||||||
git clone --mirror https://github.com/org/repo.git
|
|
||||||
|
|
||||||
# 推送到 Nexora Gitea
|
|
||||||
cd repo.git
|
|
||||||
git remote set-url origin ssh://git@gitea.nexora.restry.cn:2222/your-username/repo.git
|
|
||||||
git push --mirror</code></pre>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<!-- Step 4: New Repo -->
|
|
||||||
<div class="mb-12">
|
|
||||||
<div class="flex items-center gap-3 mb-4">
|
|
||||||
<span class="w-8 h-8 bg-nexora-600 text-white rounded-lg flex items-center justify-center font-bold text-sm">4</span>
|
|
||||||
<h3 class="text-xl font-semibold text-white">新建代码仓库</h3>
|
|
||||||
</div>
|
|
||||||
<div class="pl-11">
|
|
||||||
<div class="bg-dark-800 rounded-xl p-4 border border-gray-700/50 overflow-x-auto">
|
|
||||||
<pre class="text-sm text-gray-300"><code># 方式一:网页创建
|
|
||||||
# Gitea → + → 创建仓库 → 填写名称/描述 → 创建
|
|
||||||
|
|
||||||
# 方式二:命令行推送新项目
|
|
||||||
mkdir my-project && cd my-project
|
|
||||||
git init && git checkout -b main
|
|
||||||
echo "# My Project" > README.md
|
|
||||||
git add . && git commit -m "init: project scaffold"
|
|
||||||
git remote add origin ssh://git@gitea.nexora.restry.cn:2222/your-username/my-project.git
|
|
||||||
git push -u origin main</code></pre>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</section>
|
|
||||||
|
|
||||||
<div class="section-divider max-w-4xl mx-auto"></div>
|
|
||||||
|
|
||||||
<!-- DevOps -->
|
|
||||||
<section id="devops" class="py-20">
|
|
||||||
<div class="max-w-5xl mx-auto px-6">
|
|
||||||
<h2 class="text-3xl md:text-4xl font-bold text-white mb-4 text-center">开发流程</h2>
|
|
||||||
<p class="text-gray-400 text-center mb-16">规范化的三环境 + Git Flow 工作流,保障代码质量与部署安全。</p>
|
|
||||||
|
|
||||||
<!-- 3 Environments -->
|
|
||||||
<h3 class="text-2xl font-semibold text-white mb-8">🏗️ 三环境架构</h3>
|
|
||||||
<div class="grid md:grid-cols-3 gap-6 mb-16">
|
|
||||||
<div class="p-6 rounded-2xl bg-dark-800 border-2 env-dev">
|
|
||||||
<div class="text-3xl mb-3">🟢</div>
|
|
||||||
<h4 class="text-lg font-bold text-green-400 mb-2">Development</h4>
|
|
||||||
<p class="text-sm text-gray-400 mb-3">开发环境 — 自由实验,快速迭代</p>
|
|
||||||
<ul class="text-xs text-gray-500 space-y-1">
|
|
||||||
<li>• 分支:<code class="text-green-400">feature/*</code></li>
|
|
||||||
<li>• 部署:本地 / Docker Compose</li>
|
|
||||||
<li>• 数据库:独立开发库</li>
|
|
||||||
<li>• 域名:<code>dev-*.nexora.restry.cn</code></li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
<div class="p-6 rounded-2xl bg-dark-800 border-2 env-staging">
|
|
||||||
<div class="text-3xl mb-3">🟡</div>
|
|
||||||
<h4 class="text-lg font-bold text-yellow-400 mb-2">Staging</h4>
|
|
||||||
<p class="text-sm text-gray-400 mb-3">测试环境 — 集成测试,验收确认</p>
|
|
||||||
<ul class="text-xs text-gray-500 space-y-1">
|
|
||||||
<li>• 分支:<code class="text-yellow-400">develop</code></li>
|
|
||||||
<li>• 部署:PR 合并后自动部署</li>
|
|
||||||
<li>• 数据库:测试数据(可重置)</li>
|
|
||||||
<li>• 域名:<code>staging-*.nexora.restry.cn</code></li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
<div class="p-6 rounded-2xl bg-dark-800 border-2 env-prod">
|
|
||||||
<div class="text-3xl mb-3">🔴</div>
|
|
||||||
<h4 class="text-lg font-bold text-red-400 mb-2">Production</h4>
|
|
||||||
<p class="text-sm text-gray-400 mb-3">生产环境 — 稳定可靠,审批发布</p>
|
|
||||||
<ul class="text-xs text-gray-500 space-y-1">
|
|
||||||
<li>• 分支:<code class="text-red-400">main</code>(打 tag)</li>
|
|
||||||
<li>• 部署:审批后触发</li>
|
|
||||||
<li>• 数据库:生产数据(定时备份)</li>
|
|
||||||
<li>• 域名:<code>*.nexora.restry.cn</code></li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<!-- Git Flow -->
|
|
||||||
<h3 class="text-2xl font-semibold text-white mb-8">🌿 Git 分支策略</h3>
|
|
||||||
<div class="bg-dark-800 rounded-2xl p-8 border border-gray-700/50 mb-16">
|
|
||||||
<div class="overflow-x-auto">
|
|
||||||
<pre class="text-sm text-gray-300 leading-relaxed"><code>main (生产) ─────●──────────────────●─────── 稳定发布
|
|
||||||
↑ ↑
|
|
||||||
release/* ────●── 测试修复 ──● │ 发版准备
|
|
||||||
↑ ↓ ↑
|
|
||||||
develop (集成) ──●──●──●──●──●──●──●──●──●──── 日常集成
|
|
||||||
↑ ↑ ↑
|
|
||||||
feature/login ──●──● │ 功能分支
|
|
||||||
feature/api ───────●──● 功能分支
|
|
||||||
hotfix/* ──●──── 紧急修复 → main + develop</code></pre>
|
|
||||||
</div>
|
|
||||||
<div class="mt-6 grid md:grid-cols-2 gap-4 text-sm">
|
|
||||||
<div class="text-gray-400"><code class="text-white">main</code> — 生产代码,只接受 release 和 hotfix 合并</div>
|
|
||||||
<div class="text-gray-400"><code class="text-white">develop</code> — 集成分支,feature 完成后合并到此</div>
|
|
||||||
<div class="text-gray-400"><code class="text-white">feature/*</code> — 功能开发,从 develop 拉出</div>
|
|
||||||
<div class="text-gray-400"><code class="text-white">release/*</code> — 发版准备,冻结功能只修 bug</div>
|
|
||||||
<div class="text-gray-400"><code class="text-white">hotfix/*</code> — 紧急修复,从 main 拉出</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<!-- Workflow -->
|
|
||||||
<h3 class="text-2xl font-semibold text-white mb-8">🔄 日常开发流程</h3>
|
|
||||||
<div class="bg-dark-800 rounded-2xl p-8 border border-gray-700/50 mb-16 overflow-x-auto">
|
|
||||||
<pre class="text-sm text-gray-300"><code># 1. 从 develop 拉功能分支
|
|
||||||
git checkout develop && git pull
|
|
||||||
git checkout -b feature/user-auth
|
|
||||||
|
|
||||||
# 2. 开发 & 提交
|
|
||||||
git add . && git commit -m "feat: add JWT authentication"
|
|
||||||
|
|
||||||
# 3. 推送并创建 Pull Request
|
|
||||||
git push -u origin feature/user-auth
|
|
||||||
# → 在 Gitea 上创建 PR → develop
|
|
||||||
|
|
||||||
# 4. 代码审查 + CI 通过 → 合并
|
|
||||||
# → Staging 自动部署,QA 验证
|
|
||||||
|
|
||||||
# 5. 发版
|
|
||||||
git checkout -b release/v1.0.0 develop
|
|
||||||
# 测试修复后 → 合并到 main + develop
|
|
||||||
git tag v1.0.0
|
|
||||||
git push --tags
|
|
||||||
# → Production 部署</code></pre>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<!-- CI/CD -->
|
|
||||||
<h3 class="text-2xl font-semibold text-white mb-8">⚡ CI/CD 自动化</h3>
|
|
||||||
<div class="bg-dark-800 rounded-2xl p-8 border border-gray-700/50">
|
|
||||||
<p class="text-gray-400 mb-4">使用 <strong class="text-white">Gitea Actions</strong>(兼容 GitHub Actions 语法):</p>
|
|
||||||
<div class="flex flex-wrap items-center gap-3 mb-6 text-sm">
|
|
||||||
<span class="px-3 py-1 bg-blue-900/30 text-blue-400 rounded-lg">git push</span>
|
|
||||||
<span class="flow-arrow">→</span>
|
|
||||||
<span class="px-3 py-1 bg-purple-900/30 text-purple-400 rounded-lg">Build</span>
|
|
||||||
<span class="flow-arrow">→</span>
|
|
||||||
<span class="px-3 py-1 bg-yellow-900/30 text-yellow-400 rounded-lg">Test</span>
|
|
||||||
<span class="flow-arrow">→</span>
|
|
||||||
<span class="px-3 py-1 bg-green-900/30 text-green-400 rounded-lg">Deploy</span>
|
|
||||||
<span class="flow-arrow">→</span>
|
|
||||||
<span class="px-3 py-1 bg-red-900/30 text-red-400 rounded-lg">Notify</span>
|
|
||||||
</div>
|
|
||||||
<pre class="text-sm text-gray-300 overflow-x-auto"><code># .gitea/workflows/ci.yml
|
|
||||||
name: CI Pipeline
|
|
||||||
on:
|
|
||||||
push:
|
|
||||||
branches: [develop, main]
|
|
||||||
pull_request:
|
|
||||||
branches: [develop]
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
build-and-test:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v4
|
|
||||||
- name: Build
|
|
||||||
run: npm ci && npm run build
|
|
||||||
- name: Test
|
|
||||||
run: npm test
|
|
||||||
- name: Deploy to Staging
|
|
||||||
if: github.ref == 'refs/heads/develop'
|
|
||||||
run: echo "Deploy to staging..."
|
|
||||||
- name: Deploy to Production
|
|
||||||
if: startsWith(github.ref, 'refs/tags/v')
|
|
||||||
run: echo "Deploy to production..."</code></pre>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
@@ -443,8 +598,8 @@ jobs:
|
|||||||
<!-- Team -->
|
<!-- Team -->
|
||||||
<section id="team" class="py-20">
|
<section id="team" class="py-20">
|
||||||
<div class="max-w-4xl mx-auto px-6">
|
<div class="max-w-4xl mx-auto px-6">
|
||||||
<h2 class="text-3xl md:text-4xl font-bold text-white mb-4 text-center">团队成员</h2>
|
<h2 class="text-3xl md:text-4xl font-bold text-white mb-4 text-center">团队</h2>
|
||||||
<p class="text-gray-400 text-center mb-12">平台账号统一由 Gitea 管理,以下为当前团队成员。</p>
|
<p class="text-gray-400 text-center mb-12">统一账号由 Gitea 管理,SSO 登录全平台。</p>
|
||||||
<div class="grid md:grid-cols-2 lg:grid-cols-4 gap-6">
|
<div class="grid md:grid-cols-2 lg:grid-cols-4 gap-6">
|
||||||
<div class="text-center p-6 rounded-2xl bg-dark-800 border border-gray-700/50">
|
<div class="text-center p-6 rounded-2xl bg-dark-800 border border-gray-700/50">
|
||||||
<div class="text-4xl mb-3">👨💼</div>
|
<div class="text-4xl mb-3">👨💼</div>
|
||||||
@@ -471,8 +626,8 @@ jobs:
|
|||||||
<p class="text-xs text-gray-500 mt-1">charlie@nexora.dev</p>
|
<p class="text-xs text-gray-500 mt-1">charlie@nexora.dev</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="mt-8 text-center text-sm text-gray-500">
|
<div class="mt-6 text-center text-sm text-gray-500">
|
||||||
需要新建账号?联系管理员或在 Mattermost 找 🦞 Nexora AI 协助。
|
需要新建账号?告诉 🦞 AI 管家,一句话搞定。
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
@@ -482,71 +637,65 @@ jobs:
|
|||||||
<!-- SSO -->
|
<!-- SSO -->
|
||||||
<section id="sso" class="py-20">
|
<section id="sso" class="py-20">
|
||||||
<div class="max-w-4xl mx-auto px-6">
|
<div class="max-w-4xl mx-auto px-6">
|
||||||
<h2 class="text-3xl md:text-4xl font-bold text-white mb-4 text-center">统一认证 (SSO)</h2>
|
<h2 class="text-3xl md:text-4xl font-bold text-white mb-4 text-center">🔑 统一认证</h2>
|
||||||
<p class="text-gray-400 text-center mb-12">Gitea 作为 OAuth2/OIDC Provider,一个账号登录所有服务。</p>
|
<p class="text-gray-400 text-center mb-12">一个 Gitea 账号,登录所有服务。接入新服务?告诉 AI 就行。</p>
|
||||||
<div class="bg-dark-800 rounded-2xl p-8 border border-gray-700/50">
|
<div class="bg-dark-800 rounded-2xl p-8 border border-gray-700/50">
|
||||||
<div class="flex flex-wrap items-center justify-center gap-4 mb-8 text-sm">
|
<div class="flex flex-wrap items-center justify-center gap-4 mb-8 text-sm">
|
||||||
<span class="px-4 py-2 bg-gray-700 rounded-lg text-white">Outline</span>
|
<span class="px-4 py-2 bg-gray-700 rounded-lg text-white">Outline</span>
|
||||||
<span class="px-4 py-2 bg-gray-700 rounded-lg text-white">Portainer</span>
|
<span class="px-4 py-2 bg-gray-700 rounded-lg text-white">Portainer</span>
|
||||||
<span class="px-4 py-2 bg-gray-700 rounded-lg text-white">新服务...</span>
|
<span class="px-4 py-2 bg-gray-700 rounded-lg text-white">你的新服务</span>
|
||||||
<span class="flow-arrow">→</span>
|
<span class="flow-arrow">→</span>
|
||||||
<span class="px-4 py-2 bg-nexora-600 rounded-lg text-white font-semibold">🗃️ Gitea OAuth</span>
|
<span class="px-4 py-2 bg-nexora-600 rounded-lg text-white font-semibold">🗃️ Gitea SSO</span>
|
||||||
<span class="flow-arrow">→</span>
|
<span class="flow-arrow">→</span>
|
||||||
<span class="px-4 py-2 bg-green-800 rounded-lg text-white">✅ 登录成功</span>
|
<span class="px-4 py-2 bg-green-800 rounded-lg text-white">✅ 一键登录</span>
|
||||||
</div>
|
</div>
|
||||||
<h4 class="text-lg font-semibold text-white mb-4">接入新服务到 Gitea SSO</h4>
|
<div class="chat-bubble chat-bubble-user text-sm text-gray-200 max-w-lg mx-auto">
|
||||||
<ol class="text-sm text-gray-400 space-y-3 list-decimal list-inside">
|
<p class="text-xs text-blue-400 mb-1">你</p>
|
||||||
<li>登录 Gitea → <strong class="text-white">站点管理</strong> → <strong class="text-white">应用</strong> → <strong class="text-white">创建 OAuth2 应用</strong></li>
|
我要上一个新的内部工具 Metabase,帮我接入 SSO
|
||||||
<li>填写应用名称和回调 URL(如 <code class="text-nexora-500">https://new-service.nexora.restry.cn/callback</code>)</li>
|
</div>
|
||||||
<li>获取 <code class="text-white">Client ID</code> 和 <code class="text-white">Client Secret</code></li>
|
<div class="chat-bubble chat-bubble-ai text-sm text-gray-200 max-w-lg mx-auto mt-3">
|
||||||
<li>在新服务中配置 OIDC:
|
<p class="text-xs text-nexora-500 mb-1">🦞 Nexora AI</p>
|
||||||
<div class="bg-dark-700 rounded-lg p-3 mt-2 overflow-x-auto">
|
已完成 ✅<br>
|
||||||
<pre class="text-xs text-gray-300"><code>Authorization URL: https://gitea.nexora.restry.cn/login/oauth/authorize
|
• Gitea OAuth 应用已创建<br>
|
||||||
Token URL: https://gitea.nexora.restry.cn/login/oauth/access_token
|
• Metabase OIDC 配置已写入<br>
|
||||||
Userinfo URL: https://gitea.nexora.restry.cn/login/oauth/userinfo</code></pre>
|
• 团队成员可以用 "通过 Nexora Git 登录" 了
|
||||||
</div>
|
</div>
|
||||||
</li>
|
|
||||||
<li>用户点击 "通过 Nexora Git 登录" 即可 SSO 跳转 ✅</li>
|
|
||||||
</ol>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
<div class="section-divider max-w-4xl mx-auto"></div>
|
<!-- Architecture (collapsed) -->
|
||||||
|
|
||||||
<!-- Architecture -->
|
|
||||||
<section class="py-20">
|
<section class="py-20">
|
||||||
<div class="max-w-4xl mx-auto px-6">
|
<div class="max-w-4xl mx-auto px-6">
|
||||||
<h2 class="text-3xl md:text-4xl font-bold text-white mb-4 text-center">基础架构</h2>
|
<h2 class="text-3xl md:text-4xl font-bold text-white mb-4 text-center">⚙️ 技术架构</h2>
|
||||||
<p class="text-gray-400 text-center mb-12">全容器化部署,FRP 内网穿透,Caddy 自动 TLS。</p>
|
<p class="text-gray-400 text-center mb-12">全容器化 · FRP 内网穿透 · Caddy 自动 TLS · AI 全栈管控</p>
|
||||||
<div class="bg-dark-800 rounded-2xl p-8 border border-gray-700/50 overflow-x-auto">
|
<div class="bg-dark-800 rounded-2xl p-8 border border-gray-700/50 overflow-x-auto">
|
||||||
<pre class="text-sm text-gray-300 leading-relaxed"><code>
|
<pre class="text-xs md:text-sm text-gray-300 leading-relaxed"><code>
|
||||||
┌─────────────────────────────────────────────────────────────┐
|
┌───────────────────────────────────────────────────────────────┐
|
||||||
│ 外网用户 (HTTPS) │
|
│ 外网用户 (HTTPS) │
|
||||||
└─────────────────────┬───────────────────────────────────────┘
|
└──────────────────────────┬────────────────────────────────────┘
|
||||||
↓
|
↓
|
||||||
┌─────────────────────────────────────────────────────────────┐
|
┌───────────────────────────────────────────────────────────────┐
|
||||||
│ fw-n2 (40.162.94.187) — FRP Server │
|
│ FRP Server (公网) — *.nexora.restry.cn 流量入口 │
|
||||||
│ *.nexora.restry.cn → FRP 隧道 │
|
└──────────────────────────┬────────────────────────────────────┘
|
||||||
└─────────────────────┬───────────────────────────────────────┘
|
↓ 隧道
|
||||||
↓ HTTP/HTTPS 隧道
|
┌───────────────────────────────────────────────────────────────┐
|
||||||
┌─────────────────────────────────────────────────────────────┐
|
│ claw-bot (内网服务器) │
|
||||||
│ claw-bot (192.168.31.141) — FRP Client │
|
│ ┌─────────────────────────────────────────────────────────┐ │
|
||||||
│ ┌────────────────────────────────────────────────────────┐ │
|
│ │ Caddy (自动 TLS + 反向代理) │ │
|
||||||
│ │ Caddy (TLS 终结 + 反向代理) │ │
|
│ │ ├── www. → 门户网站 (本站) │ │
|
||||||
│ │ ├── gitea.nexora.restry.cn → Gitea:3000 │ │
|
│ │ ├── gitea. → Gitea (代码) │ │
|
||||||
│ │ ├── outline.nexora.restry.cn → Outline:3000 │ │
|
│ │ ├── outline. → Outline (文档) │ │
|
||||||
│ │ ├── uptime.nexora.restry.cn → Uptime Kuma:3001 │ │
|
│ │ ├── uptime. → Uptime Kuma (监控) │ │
|
||||||
│ │ ├── portainer.nexora.restry.cn→ Portainer:9000 │ │
|
│ │ └── portainer. → Portainer (容器) │ │
|
||||||
│ │ └── www.nexora.restry.cn → 静态文件 (本站) │ │
|
│ └─────────────────────────────────────────────────────────┘ │
|
||||||
│ └────────────────────────────────────────────────────────┘ │
|
│ ┌────────┐ ┌────────┐ ┌──────────┐ ┌────────┐ ┌─────────┐ │
|
||||||
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌───────────────┐ │
|
│ │ Gitea │ │Outline │ │ Postgres │ │ Redis │ │Portainer│ │
|
||||||
│ │ Gitea │ │ Outline │ │ Postgres │ │ Uptime Kuma │ │
|
│ └────────┘ └────────┘ └──────────┘ └────────┘ └─────────┘ │
|
||||||
│ └──────────┘ └──────────┘ └──────────┘ └───────────────┘ │
|
│ ┌──────────────────────────────────────────────────────────┐ │
|
||||||
│ ┌──────────┐ ┌──────────┐ ┌──────────────────────────────┐ │
|
│ │ 🦞 Nexora AI (OpenClaw) — 操控以上所有服务的 AI 管家 │ │
|
||||||
│ │Portainer │ │ Redis │ │ 🦞 Nexora AI (OpenClaw) │ │
|
│ └──────────────────────────────────────────────────────────┘ │
|
||||||
│ └──────────┘ └──────────┘ └──────────────────────────────┘ │
|
└───────────────────────────────────────────────────────────────┘
|
||||||
└─────────────────────────────────────────────────────────────┘
|
|
||||||
</code></pre>
|
</code></pre>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -559,7 +708,7 @@ Userinfo URL: https://gitea.nexora.restry.cn/login/oauth/userinfo</code></p
|
|||||||
<span class="text-2xl">🦞</span>
|
<span class="text-2xl">🦞</span>
|
||||||
<span class="text-lg font-semibold text-white">Nexora</span>
|
<span class="text-lg font-semibold text-white">Nexora</span>
|
||||||
</div>
|
</div>
|
||||||
<p class="text-sm text-gray-500 mb-4">智能研发平台 — 自托管、安全、高效</p>
|
<p class="text-sm text-gray-500 mb-4">AI 驱动的智能研发平台 — 对话即开发</p>
|
||||||
<div class="flex flex-wrap justify-center gap-6 text-sm text-gray-500 mb-6">
|
<div class="flex flex-wrap justify-center gap-6 text-sm text-gray-500 mb-6">
|
||||||
<a href="https://gitea.nexora.restry.cn" class="hover:text-white transition">Gitea</a>
|
<a href="https://gitea.nexora.restry.cn" class="hover:text-white transition">Gitea</a>
|
||||||
<a href="https://outline.nexora.restry.cn" class="hover:text-white transition">Outline</a>
|
<a href="https://outline.nexora.restry.cn" class="hover:text-white transition">Outline</a>
|
||||||
@@ -567,7 +716,7 @@ Userinfo URL: https://gitea.nexora.restry.cn/login/oauth/userinfo</code></p
|
|||||||
<a href="https://portainer.nexora.restry.cn" class="hover:text-white transition">Portainer</a>
|
<a href="https://portainer.nexora.restry.cn" class="hover:text-white transition">Portainer</a>
|
||||||
<a href="https://mm.dora.restry.cn" class="hover:text-white transition">Mattermost</a>
|
<a href="https://mm.dora.restry.cn" class="hover:text-white transition">Mattermost</a>
|
||||||
</div>
|
</div>
|
||||||
<p class="text-xs text-gray-600">© 2026 Nexora. All rights reserved.</p>
|
<p class="text-xs text-gray-600">© 2026 Nexora. Built by humans and AI, together.</p>
|
||||||
</div>
|
</div>
|
||||||
</footer>
|
</footer>
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user