这个项目能做什么
Shelter 是一个开源部署基础设施工具,可将单台 VPS 转变为功能完整的部署平台。它面向希望获得托管平台便捷性,同时保留对基础设施、数据和凭据完全所有权的开发者和运维人员。
部署来源:Shelter 支持多种部署来源,包括 GitHub 仓库(通过最低权限范围的 GitHub App,可选推送部署)、公开 HTTPS Git URL、ZIP 文件上传和本地文件夹上传。源文件上传采用分块、校验和版本化管理。
构建与激活:平台从源码构建容器镜像,在项目隔离网络上执行候选健康检查,仅在验证通过后将生产流量切换至新版本。构建使用专用的 Docker BuildKit 构建器,可配置内存、交换分区、CPU、PID 和最大并行度等资源限制。
路由与网络:域名和管理面板通过托管的 Cloudflare Tunnel 发布,无需开放宿主机端口。Traefik 负责 HTTP 路由,通过每项目桥接网络确保项目隔离。TLS 在 Cloudflare Edge 终止。
Cloudflare 集成:与 Cloudflare 深度集成,支持 OAuth 认证、隧道管理、DNS、区域管理、主机名可用性检查,以及每个项目多域名支持。同时支持 API 令牌和 OAuth 流程。
操作员功能:仪表板包含部署日志、回滚、项目增删改查、加密环境变量、资源限制、实时运行日志和每项目可观测性。成功的网站部署会自动生成截图预览。
自动化:提供有范围限制且过期的个人访问令牌、带 OpenAPI 规范的文档化 HTTP API,以及可安装的 CLI 工具,实现程序化控制。
安全:架构将 API(无 Docker socket)与 worker(有 Docker socket 访问权限)分离,使用加密密钥、一次性健康检查容器(已删除能力),并承认其威胁模型是面向可信应用代码,而非恶意多租户场景。
安装:提供适用于 Ubuntu 24.04/26.04 LTS VPS 的引导脚本,自动安装依赖,支持非交互式配置,并提供 doctor 命令进行健康检查。面板保持绑定到 127.0.0.1,用于引导和通过 SSH 进行紧急访问。
该项目基于 AGPL-3.0-only 许可,目前处于 MVP 状态。它使用 TypeScript、Node.js 24+、Docker Compose v2 和 Cloudflare Tunnel 构建。
评论
0 评分人数达到10人后显示
登录后参与讨论。