Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

242 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Luna DevOps 标志

Luna DevOps

面向小型团队、企业与独立开发者的轻量级应用交付平台。

简体中文 · English

Luna DevOps 自动化交付流水线

文档站 · GitHub · Helm 部署 · Docker Compose 部署

Luna DevOps 是什么?

Luna DevOps 将代码仓库、镜像站、BuildKit、Kubernetes、访问入口、证书、发布和计费能力串联成一条完整的应用交付流程。

目标很简单:让产品团队专注于代码,只需轻松几步即可部署自己的项目,平台负责重复而繁琐的构建与交付工作。

代码仓库
  -> 构建镜像
  -> 推送镜像产物
  -> 部署到 Kubernetes / K3s
  -> 创建访问入口
  -> 跟踪状态、日志、发布历史与资源用量

主要功能

领域 已支持能力
工作空间 项目空间、应用、成员、角色和带审计记录的管理操作
代码仓库 GitHub 与 Gitea 账号接入、仓库绑定和 Webhook 入口
构建 Worker 管理的 Kubernetes Job、Rootless BuildKit、镜像标签、日志和构建记录
镜像站 Harbor、Gitea Registry、DockerHub 和通用 OCI 镜像站
部署 Kubernetes / K3s 工作负载、发布记录、状态同步和支持回滚的历史记录
访问入口 Gateway API / HTTPRoute、域名、访问入口和证书自动化
平台运营 事件、通知、应用市场、计费和站点设置
用户体验 React 控制台、国际化、浅色 / 深色 / 跟随系统主题和内嵌生产前端

技术栈

层级 技术栈
后端 Go、Gin、GORM、PostgreSQL、Redis、Asynq、client-go
AI Agent Node.js 24、TypeScript、Fastify、LangGraph.js、PostgreSQL Checkpoint
前端 Vite、React、TypeScript、Tailwind CSS、shadcn/ui、TanStack Query
表单与交互 React Hook Form、Zod、i18next、react-i18next、Sonner
交付 Docker Compose、Helm、Kubernetes Job、BuildKit、Gateway API
CLI TypeScript、Commander、Zod、i18next、npm / pnpm、Bun
工具链 pnpm、uv、golang-migrate、OpenAPI

快速开始

启动本地开发依赖:

docker compose -f docker-compose-dev.yaml up -d

创建本地配置:

cp .env.example .env

运行后端:

go run ./cmd/api
go run ./cmd/worker

运行前端:

cd web
pnpm install
pnpm dev

Vite 开发服务器会将 /api/v1 代理到 http://localhost:8080

Luna CLI

Luna CLI 可在终端中管理 Luna DevOps,支持人类可读输出和面向自动化的 JSON 输出:

npm install --global @liteyuki/luna-cli
luna login
luna project get-projects

部署

Luna DevOps 支持容器、Helm 和本地二进制部署。实际使用环境推荐采用容器化部署。

方式 适用场景 入口
Kubernetes / Helm 生产级 Kubernetes 或 K3s 集群 charts/luna-devops
Docker Compose 单机试用、小型实验室和发版验证 docker-compose.yaml
二进制 本地调试和源码开发 cmd/apicmd/worker

DockerHub 发布镜像统一为 liteyukistudio/luna-devopsliteyukistudio/luna-workerliteyukistudio/luna-agent

使用 Docker Compose 启动已发布的容器镜像:

cp .env.example .env
# 首次启动前请填写 SECRET_ENCRYPTION_KEY、BOOTSTRAP_TOKEN 和 REDIS_PASSWORD。
docker compose up -d

AI 助手默认关闭。为 API 与 Agent 配置同一个稳定的 AI_INTERNAL_SECRET 后,显式启用 AI profile:

AI_ASSISTANT_AVAILABLE=true docker compose --profile ai up -d

从当前源码构建并启动完整服务:

docker compose -f docker-compose-build.yaml up -d --build

使用 Helm 安装:

helm install luna-devops ./charts/luna-devops \
  --namespace luna-devops \
  --create-namespace

更多部署说明:

配置说明

  • APP_ENV=development 会启用本地开发便利功能。
  • APP_ENV=production 会关闭开发默认值,并要求初始化管理员。
  • 生产环境中的 SECRET_ENCRYPTION_KEY 必须保持稳定。它用于保护已保存的 Token、镜像站凭据、OAuth Secret 和其他敏感数据。
  • Luna DevOps 位于反向代理之后时,TRUSTED_PROXY_CIDRS 应包含可信反向代理或 CDN 的出口网段。
  • Worker 的构建网络可以单独配置。构建需要访问私有镜像站或镜像源时,建议使用受限出口并显式配置白名单。

完整的 API 与 Worker 配置请查看配置参考

仓库结构

cmd/api                 API 服务入口
cmd/worker              异步 Worker 入口
luna-agent/             独立 AI Agent、编排图、工具目录和持久运行时
internal/               后端业务域、Provider、Service 和数据模型
migrations/             PostgreSQL 数据库迁移
openapi/                OpenAPI 定义
web/                    Vite + React 控制台
web/public/             公共资源、标志、吉祥物和 favicon
docs/                   Rspress 文档站
notes/                  产品方案、工程笔记和 SOP
charts/luna-devops      Helm Chart

本地可选的 /cli/ 目录已被 Git 忽略,仅用于克隆独立 CLI 仓库进行联调。

开发

常用检查命令:

go test ./...
pnpm --dir web lint
pnpm --dir web build

项目约定:

  • 前端依赖统一使用 pnpm
  • web/docs/tests/luna-agent/ 分别维护自己的依赖清单与 lockfile,不使用跨目录的根 pnpm workspace;需要 pnpm 项目配置时也只放在对应工作目录。
  • Python 工具链统一使用 uv
  • 后端 Handler 保持精简,业务逻辑放入 Service,外部平台集成放入 Provider。
  • 新功能必须按 notes/14-可观测插桩与验收标准.md 补齐 Trace、关键结构化日志和低基数 Metrics,并保持跨服务 Context 连续。
  • 所有用户可见的前端文案都放入 i18n 文件。
  • 功能或行为变化时同步更新文档站。

品牌资源

文档

About

轻雪标准运维 Devops 平台

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages