核心问题: 你的团队是否真的需要一个覆盖构建、部署、TLS、CDN、邮件和备份的自托管工具,并且能接受为安全补丁一直跟随最新版本?
RepoDaily 采用评分
RepoDaily 将该项目的采用分评为 91/100(强):分数来自文章来源、安装路径、生产风险、差异化、许可证清晰度以及 AI/Agent 适配度。
包含 6 个来源、覆盖 3 类来源;如有 RepoDaily 独有模块,会进一步提高证据分。
检测到 4 个工作流步骤、5 个下一步动作,以及 6 个命令/安装信号。
趋势热度为 +1,719 stars;如内容中有 release、issue 或维护信号,会提高维护可信度。
采纳风险标记为 medium,并包含 6 条安全说明与 3 条跳过条件。
3 个机会视角、4 个替代方案,以及 4 个类型化模块支撑差异化判断。
文章中包含许可证来源或许可证表述。
文章正文和元数据中检测到 3 个 AI/Agent 相关信号。
项目概览
Openship 是一个开源、可自托管的部署平台,主体用 TypeScript 编写。它会自动识别技术栈、构建项目、配置数据库/域名/SSL/邮件,再以标准 Docker 容器的方式发布——整个过程不需要配置文件、流水线或 YAML。README 直接给出承诺:“零配置文件、零流水线、零 YAML”。你只要把它指向一个仓库,它就能识别 Node、Python、Go、Rust、PHP、Ruby、Java、.NET、Docker 以及 monorepo 结构。
项目提供三种入口:桌面应用、Web 控制台和 CLI(`openship deploy`)。它可以搭配 Openship Cloud(托管版)使用,也可以部署到你自己拥有的任意 Linux 服务器。同一个二进制既能服务独立开发者的副业项目,也能支撑团队的生产环境,区别只在于是否设置了 `CLOUD_MODE=true`——该开关会决定是否挂载 billing 等云端专属模块。
2026 年 7 月 21 日,Openship 排在趋势榜第 2 位,周期内新增 1,719 颗 star。它的标签——agents、ai、deployments、self-hosted——透露了维护者的方向:一个以自托管为优先、并且越来越面向 Agent 的部署底座。0.2.0 的更新日志展示了在部署流程、应用目录、路由、服务器、任务和构建工具链上的具体硬化工作,这种广度说明它想做的不是单纯的 runner,而是控制面。
为什么现在变热
- 周期内获得 1,719 颗 star,2026-07-21 当日排名第 2,主要受 0.2.0 版本拉动——该版本重新设计了部署步骤、把一键应用目录扩充到 15 个,并修复了一个贯穿多个构建路径的 `pnpm: not found` 问题。
- 自带 CI/CD、TLS 和邮件服务的自托管部署平台是一个拥挤赛道,但 Openship“零 YAML + 标准 Docker 容器”的定位,正好击中了那些厌倦了把 Coolify、Dokku、Nginx 和独立邮件中继拼在一起的开发者。
- 一键应用目录现在覆盖 Convex、n8n、Ghost、Directus、NocoDB、Metabase、Grafana、Gitea、code-server、Uptime Kuma、Vaultwarden、FreshRSS、Stirling PDF、IT-Tools、Excalidraw 共 15 个生产可用模板——这块足够宽的面积同时吸引了自托管爱好者和 AI 工具运营者。
- Apache-2.0 许可证,加上 Bun + TypeScript 的 monorepo 结构(Hono API 跑在 4000 端口,Next.js 控制台跑在 3001 端口),降低了想阅读和扩展代码的贡献者门槛。
解决什么问题
- 配置一条部署流水线通常意味着要写 Dockerfile、compose 文件、CI YAML、Nginx 配置、邮件中继,还要写一套基于 cron 的备份脚本,然后在 staging 和 prod 之间反复维护。
- Vercel、Render 这类托管平台能消除这些摩擦,但会把运行时、定价和数据驻留锁死。Coolify 这类自托管方案确实存在,但 Openship 的差异点在于把带 DKIM/SPF/DMARC 的完整 SMTP 邮件服务,以及支持 HTTP/3 和 Brotli 的 CDN 也一起打包了进来。
- 在单个应用和基于 service 的项目之间保持 TLS 证书、域名和续期的一致性非常麻烦;Openship 把这两者都走同一条 verify → DNS-records → SSL 管道,并把 certbot 卡在验证通过之后,避免白白浪费 Let's Encrypt 的签发次数。
工作原理
- 用 `npm i -g openship`(或 `curl -fsSL https://get.openship.io | sh`)全局安装,然后运行 `openship up`,把 Openship 注册为开机自启、自动重启的后台服务。
- 运行 `openship open` 打开控制台,或在项目目录里运行 `openship init` 把该目录关联为一个项目,Openship 会识别技术栈并生成构建。
- 运行 `openship deploy`,构建标准 Docker 容器并发布到你关联的 Linux 服务器或 Openship Cloud。预览环境、staging/prod 流程和回滚都从同一个控制台发起。
- 偏好 Docker 的运维同学可以克隆仓库、把 `.env.example` 复制为 `.env`,再运行 `docker compose up -d`。Compose 会启动 PostgreSQL、Redis、API、控制台和 Web 应用,Web 应用暴露在 `http://localhost:3000`。
产品演示与界面预览

架构解读:Hono API、Next.js 控制台、Drizzle ORM 与基于 workspace 的 monorepo
Openship 是一个由 Bun 管理的 TypeScript monorepo。`apps/` 目录承载运行时入口:`apps/api/` 是跑在 4000 端口的 Hono API 引擎,`apps/dashboard/` 是跑在 3001 端口的 Next.js 部署控制台,`apps/desktop/` 是 Electron 桌面应用和本地服务启动器,`apps/cli/` 是 `openship deploy` 命令行工具,`apps/email/` 是带 Zero server/client orchestrator 的邮件引擎,`apps/web/` 是开发环境跑在 3009 端口的 Next.js 营销站。
`packages/` 目录承载共享基础设施:`packages/adapters/` 对接 Docker、裸机和云运行时;`packages/core/` 存放共享类型、常量、工具和错误;`packages/db/` 存放 Drizzle ORM 的 schema、client 和 repositories;`packages/db-email/` 存放邮件服务的 Drizzle schema;`packages/onboarding/` 存放共享的引导流程;`packages/ui/` 存放基于 Tailwind 的共享 React 组件。
每个 API 模块位于 `apps/api/src/modules/<name>/`,遵循四文件结构:`<name>.routes.ts` 定义 Hono 路由、`<name>.controller.ts` 处理请求、`<name>.service.ts` 承载业务逻辑、`<name>.schema.ts` 定义 TypeBox 校验 schema。auth、projects、deployments、domains、webhooks、health 等共享模块始终挂载;billing 模块为云端专属,仅在 `CLOUD_MODE=true` 时挂载。
命令面:你真正会用到的 CLI 与 Bun 脚本
- `npm i -g openship`——全局安装;也可用 `curl -fsSL https://get.openship.io | sh`。
- `openship up`——把 Openship 注册为后台服务(开机自启、自动重启);`openship up --foreground` 用于一次性前台运行。
- `openship open`——打开控制台;`openship stop`——停止服务;`openship install`——安装桌面应用。
- `openship init`——把当前目录关联为项目;`openship deploy`——构建并发布容器。
- `bun db:generate` / `bun db:push` / `bun db:migrate`——生成 Drizzle 迁移文件、把 schema 推到开发库、运行生产待执行迁移;`bun run --cwd packages/db db:studio` 打开 Drizzle Studio。
- `bun dev:local`——启动本地开发的 API 和控制台;`bun dev:api`、`bun dev:dashboard`、`bun dev:web`、`bun dev:desktop`、`bun dev:email`、`bun dev` 分别运行对应 workspace 的开发任务。
试用路径:从 `openship up` 到域名上线,约 30 分钟
最快路径:运行 `npm i -g openship`,再 `openship up`,安装程序会注册后台服务。运行 `openship open` 进入本地端口的控制台,再 `cd your-project && openship init && openship deploy` 发布第一个容器。
Docker 优先路径:`git clone https://github.com/oblien/openship.git && cd openship`,`cp .env.example .env`,`docker compose up -d`。Compose 会拉起 PostgreSQL、Redis、API、控制台和 Web 应用,Web 应用暴露在 `http://localhost:3000`。
开发贡献路径:克隆仓库,`bun install --frozen-lockfile`,把 `apps/api/.env.example` 复制为 `apps/api/.env`、`apps/dashboard/.env.example` 复制为 `apps/dashboard/.env`,再 `bun dev:local`。控制台跑在 `http://localhost:3001`,API 跑在 `http://localhost:4000`。前置依赖为 Bun 1.3.10(固定在 `.bun-version` 和 `package.json`)以及 Node.js 22 以上(见 `.nvmrc`)。
维护风险:1.0 之前、仅支持最新版、攻击面较宽
Openship 当前为 0.2.0——一次大幅的功能与硬化发布,但仍处于 1.0 之前。安全政策明确指出只有最新版本受支持,旧版本不再支持,运维者需要保持实例更新;预发布和 beta 版本的支持优先级更低。
项目捆绑了相当多的功能面:CI/CD、基于 OpenResty 的 CDN 边缘层、基于 certbot 的 TLS、带 DKIM/SPF/DMARC 的邮件服务、备份,以及 15 个应用目录。每一面都是攻击向量,也是维护负担。安全范围明确列出了托管版 Openship Cloud、自托管控制面(API、控制台、CLI)、桌面应用、GitHub 集成与 webhook、构建/部署流水线、备份与恢复、域名与 TLS、OpenResty 边缘层以及邮件。
缓解措施是实在的:维护者提供 GitHub 私密漏洞上报和安全港条款,承诺 5 个工作日内确认、10 个工作日内完成初判,应用内更新器会从 `release-advisories.json` 推送重要安全公告。但政策是承诺,不是历史成绩——请按此评估。
谁适合关注
适合关注
- 想在自己的 Linux 服务器上实现 push-to-deploy、又不想写 Dockerfile 或 YAML 的独立开发者和小团队。
- 需要一个带 DKIM/SPF/DMARC 的自托管邮件中继、并且不想为 Mailgun 或 SES 付费的运维者。
- 正在评估 Coolify 或 Dokku 替代方案、希望把 TLS、CDN、备份和一键应用目录整合在一起的团队。
可以先跳过
- 要求对旧版本提供长期支持(LTS)的组织——Openship 只修复最新版。
- 已经跑着成熟 Kubernetes + Argo CD + 服务网格的团队;Openship 的价值是整合简单,而不是编排深度。
- 需要稳定的 1.0 API 契约、才能基于控制面搭建内部工具的团队。
风险与注意事项
Apache-2.0、迭代活跃、架构整洁,但仍在 1.0 之前、安全上只支持最新版,并且捆绑了邮件、边缘、TLS、备份等较宽的功能面,每一块都带来额外的暴露。
- 只有最新版本会收到安全修复,旧版本明确标注为不支持。
- 0.2.0 仍处于 1.0 之前,API、模块结构和应用目录可能还会调整。
- 内置的 SMTP 服务、OpenResty 边缘和 certbot 集成把安全边界扩大到了普通部署工具之外。
- 云端专属模块(billing)用 `CLOUD_MODE=true` 做了门禁,这很干净,但自托管者需要确认云端配置不会泄漏到自己的实例。
- Apache-2.0 许可证——授予使用、复制和分发的版权与专利授权。
- 通过 GitHub Security Advisories 或邮件 security@oblien.com 进行私密漏洞上报,不鼓励在修复协调完成前公开披露。
- 安全港条款授权针对你自己账号、自托管实例或测试账号的善意研究。
- 响应目标:5 个工作日内确认、10 个工作日内初判,协调披露通常在 90 天内。
- 范围覆盖 Openship Cloud、自托管控制面、桌面应用、GitHub 集成与 webhook、构建/部署流水线、备份与恢复、域名与 TLS、OpenResty 边缘层以及邮件。
- 0.2.0 的路由改动把 certbot 卡在验证之后,避免白白浪费 Let's Encrypt 签发次数,并在 storage、routing 和 domain-service 之间共用同一个规范化的 hostname 处理逻辑——这是域名管线的一次具体硬化。
替代方案比较
| 方案 | 适用场景 | 代价 |
|---|---|---|
Coolify | 你想要一个更成熟、社区更大的自托管平台,并且同样喜欢 push-to-deploy 的体验。 | 自托管免费(开源);提供付费 Cloud 托管控制面。 |
Dokku | 你想要一个极简、类似 Heroku 的单服务器体验,历史更久、攻击面更小。 | 自托管免费(开源)。 |
CapRover | 你想要一键应用目录和集群模式,但不需要 Openship 的邮件服务和 CDN 层。 | 自托管免费(开源);Pro 版提供额外付费功能。 |
Vercel / Render | 你更偏向全托管平台,不需要在自己的硬件上自托管邮件、数据库或备份。 | 分档 SaaS 定价,含免费层;按用量扩缩。 |
这个趋势说明了什么
AI Agent 的部署底座
项目的 topics 列表包含 agents 和 ai,一键目录里也已经收录了 n8n、Convex 和 code-server。正在搭建内部 AI 工具的团队,可以把 Openship 当作在自有硬件上部署 Agent 运行时、向量存储和工作流引擎的部署层。
在一台带 GPU 的 Linux 服务器上启动 Openship,从 0.2.0 目录部署 n8n 和 Convex 模板,把部署时间和回滚延迟与你当前的手工 Docker 流程做对比。
自托管邮件整合
Openship 内置了带 DKIM/SPF/DMARC 的 SMTP 服务,并把它定位为 Mailgun/SES 的替代。在为交易邮件付费的团队看来,把部署 + 邮件整合到同一个自托管控制面可能同时降低成本和供应商数量。
把一个低量的交易邮件负载切到内置邮件服务,用 mail-tester.com 之类的工具校验 DKIM/SPF/DMARC 对齐,30 天内对比送达率和成本。
贡献者切入点
monorepo 使用 Bun 1.3.10、Node.js 22+、TypeScript 严格模式、Conventional Commits,以及清晰的四文件 API 模块结构(routes/controller/service/schema)。对想新增运行时适配器或目录应用的开发者来说,这是一份可读性很高的代码库。
克隆仓库,运行 `bun install --frozen-lockfile` 和 `bun dev:local`,按照现有目录结构新增一个一键应用模板,再按 CONTRIBUTING.md 提交一个 `feat:` 分支。
RepoDaily 判断
Openship 是一个有野心、架构干净的自托管部署平台,把 CI/CD、TLS、CDN、邮件和备份整合进同一个 TypeScript 控制面。0.2.0 版本展示了真实的硬化势头和一份可信的一键应用目录。主要顾虑是 1.0 之前的成熟度以及“只支持最新版”的安全策略——可以现在就把它用于副业项目、内部工具和 AI Agent 托管,但生产负载请务必跟随最新版本,并留出跟踪安全公告的时间。