
Openship 自托管部署平台完全指南内置 CI/CD 的开源 PaaS 中文手册【免费下载链接】openshipSelf-hosted deployment platform项目地址: https://gitcode.com/GitHub_Trending/ope/openshipOpenship 是一个开源、可自托管的部署平台内置 CI/CD把「推送代码 → 构建 → 发布 → 域名/TLS 路由 → 邮件/备份」整条链路收敛进一个工具。本文以官方中文 READMEdocs/i18n/README.zh.md为骨架结合仓库源码CLI 实现、Compose 编排、环境变量参考逐项展开读完你将掌握 Openship 的安装方式、运行形态、功能边界、CLI 用法与关键配置参数能够独立完成从零部署到日常运维。Openship 控制台界面项目定位一个「指向仓库即可发布」的部署平台Openship 的核心使用方式极其简单把它指向一个代码仓库它会自动检测技术栈、构建、配置好一切并发布——不需要配置文件、不需要流水线、不需要 YAML。数据库、域名、SSL、CDN、邮件、备份全部在一处管理。它同时支持两种运行后端官方托管的Openship Cloud或你自己拥有的任意 Linux 服务器。独立开发者发布副业项目、团队运行生产环境使用的是同一个工具、同一套界面。从仓库结构可以印证这一设计控制平面API位于 apps/apiCLI 位于 apps/cliWeb 控制台位于 apps/dashboard路由/TLS 边缘OpenResty位于 apps/edge另有桌面应用 apps/desktop 与邮件引擎 apps/email。核心业务逻辑沉淀在 packages/core 与 packages/adapters 中。快速开始两条官方安装路径中文 README 给出的入门命令只有两行npm i -g openship openship initnpm i -g openship安装全局 CLI需要 Node 22openship init则把当前目录链接到一个 Openship 项目。从源码看init 命令会调用GET /api/projects拉取项目列表支持交互式选择或--project id直连并把projectId、name、slug、默认环境等写入当前目录的.openship/project.json供后续openship deploy等命令读取。如果你更偏好 Docker官方提供了第二种方式git clone https://github.com/oblien/openship.git cd openship cp .env.example .env docker compose up -d仓库根目录的 docker-compose.yml 是「SaaS / 从源码构建」形态的控制平面postgres存储、redis队列/缓存/限流、api:4000、dashboard:3001、web:3000落地页其中 postgres/redis 仅在集群内部可达API 启动时自动执行数据库迁移健康检查通过GET /api/health验证。注意根目录的docker-compose.yml与docker/docker-compose.yml是两个不同的栈。前者是控制平面从源码构建不含 edge 与 Docker socket后者是自托管拉取镜像栈含 OpenResty edge见下文「自托管服务器」一节。中文 README 中cp .env.example .env docker compose up -d对应的正是根目录控制平面。或者也可以从 openship.io 下载桌面应用直接使用。三种运行形态桌面应用、自托管服务器、Openship Cloud官方英文 READMEREADME.md给出了一个清晰的决策矩阵中文 README 的「部署到任何地方」与之呼应你的场景Openship 本身怎么跑你的应用跑在哪里单人、单机、不想折腾运维桌面应用通过 SSH 连接一台服务器或 Openship Cloud团队或想要 push-to-deploy / 在自己机器上托管应用自托管服务器openship up本机Compose 模式或推到另一台服务器 / Cloudbare 模式什么都不想跑Openship Cloud托管沙箱零配置单人场景桌面应用控制平面在本地运行通过 SSH 驱动远端服务器。无需登录、无需终端、没有对外暴露面。桌面应用本体不托管公开应用——它只是编排器。应用实际运行在你连接的服务器或 Openship Cloud 上。团队 / 常驻场景自托管服务器openship upCLI 自带了 API 与 Web 控制台。运行openship会进入交互式向导创建第一个管理员、绑定域名、把 Openship 安装为开机自启服务再次运行即可管理实例。面向 CI / 无头机器可以直接跳过向导openship up # 安装并以后台服务启动开机自启 崩溃自动重启 openship up --public-url https://openship.example.com # 同时在你的域名上提供控制台edge TLS 自动处理从 up 命令源码可以看到openship up会自动选择运行方式Linux Docker → Compose 模式默认拉起完整栈——Postgres、Redis、API、Dashboard以及容器化的OpenResty edge占用 :80/:443全部来自已发布镜像。这种形态能在同一台机器上托管你部署的应用并自动完成域名解析 Lets Encrypt TLS。可用--compose强制指定。其他环境 → bare 模式macOS、Windows、或无 Docker 的 Linux单个轻量进程 内嵌数据库PGlite作为常驻控制平面通过 SSH 把应用部署到远端服务器或 Cloud类似桌面应用但常驻且必须登录。可用--bare强制指定。自托管实例始终要求登录即向导中创建的管理员账号。日常管理命令openship open # 打开控制台 openship stop # 停止服务 openship update # 升级 openship up --foreground # 前台附着运行CLI 还支持 shell 补全bash/zsh/fish可写入静态补全文件或实时 source具体方式见 README.md 的 Shell completion 一节。部署一个项目cd your-project openship init # 把当前目录链接到一个项目 openship deploydeploy 命令会根据当前目录是否为 git 仓库自动分流git 仓库走POST /api/deployments按分支/commit 构建非 git 目录则走文件夹上传流程。常用参数包括--env production|preview、--branch、--commit、--force-all、--service-ids仅重建变更服务、--smart-route、--watch流式查看构建日志。原始 Docker Compose 自托管不用 CLI高级用户也可以直接使用 docker/docker-compose.yml 自托管栈它拉取GitHub Container Registry 上已发布的镜像ghcr.io/oblien/*无需任何构建工具链git clone https://github.com/oblien/openship.git cd openship cp .env.example .env # 然后编辑 docker compose --env-file .env -f docker/docker-compose.yml up -d该栈为postgres redis api dashboard edge其中 edge 是 host 网络模式的 OpenResty 容器:80/:443负责路由与 Lets Encrypt。仅限 Linux依赖 host 网络mac/win 请用openship upbare 模式。api容器挂载了宿主 Docker socket以便控制平面以宿主容器的方式构建并运行你的应用——因此它经由 socket 拥有宿主级权限只应运行在可信主机上。升级时在.env中固定OPENSHIP_VERSION以获得可复现的拉取然后docker compose … pull … up -d。若想从源码构建追加-f docker/docker-compose.build.yml … up -d --build。核心特性详解中文 README 的特性表是对平台能力的官方承诺结合仓库源码逐一展开内置 CI/CD推送即部署push-to-deploy、预览环境、staging/生产流程、回滚。GitHub webhook 在每次推送到被跟踪分支时重新执行流水线且 monorepo 场景下只重建被推送真正影响到的服务智能路由对应--smart-route/--service-ids。任意技术栈Node、Python、Go、Rust、PHP、Ruby、Java、.NET、Docker、Monorepo。从 packages/core/src/languages 的 11 个语言定义文件以及 fixtures/deploy 下的 dotnet/go/kotlin/laravel/node/python-fastapi/rust-axum/springboot 示例项目可以看到官方验证过的技术栈覆盖。README 强调系统会读取package.json、框架配置、锁文件以及任何docker-compose.yml/openship.json来推断技术栈、包管理器、构建/启动命令与端口——零配置文件即可工作需要精细控制时openship.json可覆盖自动推断。完整后端Postgres、MySQL、MongoDB、Redis、Worker、WebSocket、存储作为被托管应用的附属服务一并编排。域名与 SSL自动 Lets Encrypt、通配符证书、无限域名、自动续期。路由与 TLS 发生在应用启动之后即使 DNS 或证书出问题只会显示 action required绝不会导致部署失败或应用下线。证书相关高级配置ZeroSSL、私有 CA、ACME EAB见 docs/acme.md 与 .env.example 中的OPENSHIP_ACME_*系列变量。CDN边缘缓存、HTTP/3、Brotli 压缩、即时清除。邮件服务器内置 SMTP支持 DKIM/SPF/DMARC——无需 Mailgun 或 SES。邮件模块是一个完整子项目 apps/email内含基于 iRedMail 的引擎email/engine、Web 邮箱客户端与独立数据库 packages/db-email。备份定时备份、数据库 卷、一键恢复、随时导出。备份实现分布在 packages/adapters/src/backup33 个文件与 CLI 的openship backup命令中。实时监控实时构建日志、容器指标、资源使用情况实时推送到屏幕细节见 docs/monitoring.md。伸缩云端自动伸缩自托管支持多节点多节点集群、负载均衡 UI、私有网络列入「即将推出」路线图。可移植性标准 Docker 容器——可在服务商之间自由迁移。Docker Compose原样部署现有的 compose 文件。部署到任何地方Openship Cloud—— 托管、自动伸缩、零配置任意 VPS—— Hetzner、DigitalOcean、Linode、OVH 等独立服务器—— 裸机、托管机房、家庭实验室多服务器—— 将负载分散到多台机器无论部署在哪里界面都一样。三种界面 自动化接口桌面应用—— 完整 GUI、实时日志、一键操作适合单人。Web 控制台—— 浏览器中的同一套界面为团队打造。CLI—— 可脚本化、对 CI 友好同时也是安装和管理自托管实例的入口。REST API与MCPAI 智能体协议为自动化和工具集成收尾MCP 端点只暴露选择加入的路由作为工具每次调用都会重新校验权限凭据/令牌类路由永远不会成为工具。从仓库可看到 MCP 相关实现文件如 apps/api/src/lib/mcp-resource.ts、mcp-token.tsCLI 也支持--json输出模式便于脚本消费。关键配置参考.env.example 精读无论自托管还是 SaaS都由同一个 .env.example 驱动——通过CLOUD_MODE这一个开关切换形态。以下是最常用的配置分组模式开关CLOUD_MODEfalsefalse 自托管默认无计费true SaaS计费、计量、多租户。DEPLOY_MODEdockerdocker默认自托管| cloudSaaS。存储与队列DATABASE_URL指向 Postgres留空则使用 PGlite 内嵌数据库仅限开发。POSTGRES_USER/POSTGRES_PASSWORD/POSTGRES_DBCompose 据此拼出DATABASE_URL。REDIS_URL队列 缓存 限流共用。OPENSHIP_REQUIRE_REDIStrue可强制使用 Redis 后端并禁用静默的内存回退自托管多副本建议开启。认证安全上线前必改BETTER_AUTH_SECRET会话密钥用node -e console.log(require(crypto).randomBytes(32).toString(hex))生成。INTERNAL_TOKEN内部认证令牌任何非桌面部署都必填——API 没有它会拒绝启动。远程访问OPENSHIP_PUBLIC_URL默认只信任http://localhost:3001要从其他机器访问反向代理或局域网必须设置为浏览器实际使用的完整 origin否则登录会收到403 ORIGIN_REJECTED。TRUST_PROXYtrue反向代理后面启用代理必须设置X-Real-IP否则所有用户共享一个限流桶。OPENSHIP_BIND_ADDRCompose 发布端口的网卡默认 loopback生产建议0.0.0.0需谨慎。API_PORT/DASHBOARD_PORT端口覆盖默认 4000 / 3001。ACME / 证书OPENSHIP_ACME_EMAIL、OPENSHIP_ACME_DIRECTORY_URL默认 Lets Encrypt 生产、OPENSHIP_ACME_KEY_TYPEec256|ec384|rsa2048|rsa4096、OPENSHIP_ACME_EAB_KID/OPENSHIP_ACME_EAB_HMAC_KEYZeroSSL 等 EAB 必须成对设置等完整说明见 docs/acme.md。镜像源与版本钉住OPENSHIP_IMAGE_REGISTRY默认ghcr.io/oblien与OPENSHIP_VERSION建议钉到具体版本号如0.2.3以获得可复现升级latest跟随最新发布。Docker socket 与宿主机操作通道OPENSHIP_DOCKER_SOCKETAPI 通过宿主 Docker daemon 驱动 edge 与所有应用容器。rootless Docker 下 socket 位于用户 runtime 目录如/run/user/1000/docker.sock可用docker context inspect --format {{.Endpoints.docker.Host}}确认配置错误不会响亮失败而是表现为「容器操作全部失败且不报路径」对应上游 issue #482。OPENSHIP_HOST_SSH_*系列与OPENSHIP_HOST_KEY_PATH用于容器内无法完成的少量宿主 OS 操作释放 :80/:443 上的外部代理、宿主系统配置、邮件引擎等。留空不会降级为本地执行而是直接拒绝并指明此通道普通部署不受影响走 docker socket。OAuth 与 GitHub AppGITHUB_CLIENT_ID/SECRET、GOOGLE_CLIENT_ID/SECRET可选的第三方登录。GITHUB_AUTH_MODEautoGITHUB_APP_ID/SLUG/PRIVATE_KEY_BASE64/WEBHOOK_SECRET自托管 GitHub App无需 Openship Cloud 或 PATPEM 与 webhook secret 只存于服务端 env绝不落库。SaaS 专属CLOUD_MODEtrueOblien 三件套OBLIEN_CLIENT_ID/SECRET/WEBHOOK_SECRET、BILLING_ENABLED、STRIPE_SECRET_KEY、各套餐价格 IDSTRIPE_PRICE_*与优惠码STRIPE_COUPON_LAUNCH50等。价格目录定义在 packages/core/src/pricing/pricing.json每个计划通过stripePriceEnv字段声明自己需要的 env 变量名。项目状态、贡献与许可证状态核心已可用于生产持续积极开发中自托管免费无计费。即将推出多节点集群、负载均衡 UI、私有网络、高级监控以及可视化 CI/CD 流水线。贡献参见 CONTRIBUTING.md。官方提示文档仍在完善中若发现缺失或不清楚之处非常欢迎贡献。安全漏洞请遵循 SECURITY.md 私下披露。许可证Openship 依据 Apache License 2.0 授权。你可以使用、运行、修改、自托管和分发它——包括用于商业和闭源产品——只要遵守 Apache 2.0 的条款。【免费下载链接】openshipSelf-hosted deployment platform项目地址: https://gitcode.com/GitHub_Trending/ope/openship创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考