
Openship:开源、可自托管的部署平台,内置 CI/CD 功能
如何完成推送代码、部署容器、管理基础设施这些操作呢?可以通过桌面应用程序、Web 仪表盘或命令行界面(CLI)来完成。
快速开始
安装方面,有两种方式:一是使用 npm 全局安装:`npm i -g openship`;二是使用 curl 脚本安装:`curl -fsSL https://get.openship.io | sh`。启动服务使用 `openship up`(将 Openship 作为后台服务安装,开机自启且自动重启),打开仪表盘用 `openship open`,停止服务用 `openship stop`。若想进行一次性的前台运行,则使用 `openship up --foreground`。
部署项目
首先进入项目目录:`cd your-project`,接着初始化项目:`openship init`(将当前目录与项目关联),最后部署项目:`openship deploy`。
使用 Docker 部署
克隆仓库并使用 Docker Compose:
git clone https://github.com/oblien/openship.git && cd openship
cp .env.example .env
docker compose up -d
也可以下载桌面应用程序(使用 `openship install` 命令,或者从 openship.io 下载)。
功能特性
内置 CI/CD
支持代码推送即部署、预览环境、生产/预发布流程管理以及版本回滚。
支持多种技术栈
涵盖 Node、Python、Go、Rust、PHP、Ruby、Java、.NET、Docker 以及单体仓库(monorepos)等。
完整后端支持
支持 Postgres、MySQL、MongoDB、Redis 等数据库,同时支持工作进程、WebSocket 和存储服务。
域名与 SSL 管理
自动配置 Let's Encrypt 证书,支持通配符域名,可无限添加域名并自动续期。
CDN 服务
具备边缘缓存、HTTP/3 协议、Brotli 压缩以及即时清除缓存等功能。
邮件服务器
内置支持 DKIM/SPF/DMARC 的 SMTP 服务,无需使用 Mailgun 或 SES 等第三方服务。
备份功能
支持定期备份数据库和卷,可一键恢复,随时导出备份数据。
实时监控
实时展示构建日志、容器指标和资源使用情况。
扩展能力
支持在云端自动扩展,自托管环境下支持多节点部署。
可移植性
使用标准 Docker 容器,可在不同云服务提供商之间自由迁移。
Docker Compose 支持
可直接部署现有的 Docker Compose 文件。
多平台部署
有多种方式:一是 Openship Cloud,为托管式服务,自动扩展,无需设置;二是任意 VPS,如 Hetzner、DigitalOcean、Linode、OVH 等;三是专用服务器,包括裸金属服务器、托管服务器和家庭实验室服务器;四是多服务器集群,可在多台机器之间分配工作负载。无论选择哪种部署方式,都可以使用相同的界面进行操作。
三种操作界面
有哪三种操作界面呢?一是桌面应用程序,提供完整的图形用户界面(GUI),实时日志展示,一键完成各种操作;二是 Web 仪表盘,在浏览器中提供相同的用户界面,适合团队协作使用;三是命令行界面(CLI),支持脚本化操作,适合集成到 CI 流程中。此外,还提供 REST API 和 MCP(AI 代理协议),方便自动化和工具集成。完整的命令和 API 参考文档可在 openship.io/docs 查看。需要注意的是,文档仍在不断完善中,如果发现有缺失或不清晰的地方,欢迎贡献内容,这将帮助更快地完善文档。
项目状态
核心功能已可用于生产环境,目前仍在积极开发中。接下来的开发计划包括哪些呢?有:多节点集群支持、负载均衡用户界面、私有网络、高级监控以及可视化 CI/CD 管道。
贡献代码
请参考 CONTRIBUTING.md 文件了解贡献指南。
发布版本
使用版本脚本发布新版本,它会同步所有包的版本,提交版本变更,打标签并推送:
bun scripts/release.ts 0.2.0 # 显式指定版本
# 或者使用版本升级关键字:patch | minor | major | rc(例如从 0.1.x 升级到 0.2.0 可使用 minor)
推送标签后会触发 `.github/workflows/release.yml` 工作流,该工作流会做什么呢?一是构建 macOS、Windows 和 Linux 安装程序以及服务器压缩包(附带 SHA-256 校验文件);二是通过 npm OIDC 可信发布机制将 openship CLI 发布到 npm(无需令牌);三是创建 GitHub Release 并附上构建好的资产(发布说明来自标签信息)。如果想在应用内更新器中将某个版本标记为关键版本(或添加推荐/信息提示),请在打标签之前在 `release-advisories.json` 文件中添加相应条目,客户端会根据发布标签拉取该信息。高层次的版本说明记录在 `CHANGELOG.md` 文件中。
安全问题
如果发现了安全漏洞,该怎么做呢?请私下报告,切勿在公共 issue、PR 或讨论中公开披露。推荐通过以下方式报告:[报告安全漏洞](这是一个私有 GitHub 安全建议,只有你和维护者可以看到)。关于报告范围、报告内容以及响应/披露流程,请参考 SECURITY.md 文件。安全港政策允许善意的安全研究,并会对有效的首次报告给予认可。
许可证
Openship 是开源软件,采用 Apache License 2.0 许可协议。在 Apache 2.0 许可证的条款下,可以做什么呢?可以使用、运行、修改、自托管和分发该软件,包括用于商业和闭源产品。完整的许可证文本请参阅 LICENSE 文件。
731



被折叠的 条评论
为什么被折叠?



