1. Dokku: My favorite personal serverless platform (hamel.dev)
Dokku 是一个开源的平台即服务(PaaS),可将单台 VPS 服务器转变为类似 Heroku 的强大部署平台,兼具成本效益与易用性。其核心功能与使用方式如下:
核心特性
- 低成本替代方案:用户拥有完全控制权,避免了 Heroku 等商业服务的高昂费用。
- 自动化管理:通过 Let’s Encrypt 自动管理 SSL 证书,支持基本认证(Basic Auth)为网站添加密码保护。
- 灵活部署:支持多种语言(Node、Python 等)及自定义 Docker 容器部署,具备一键扩缩容能力。
- 插件生态:提供丰富的官方插件,扩展性强。
- 简化操作:支持通过 Git 命令直接部署。
主要使用场景示例
部署 Docker 容器应用
- 在项目根目录添加
Dockerfile定义应用环境。 - 在 Dokku 服务器创建应用,本地通过
git push dokku main部署。 - 使用
dokku ps:scale myapp web=2命令快速调整实例数量。
- 在项目根目录添加
部署静态网站(可带密码保护)
- 在服务器创建应用,设置
NGINX_ROOT环境变量指向静态文件目录(如_site)。 - 安装并配置
dokku-http-auth插件,通过dokku http-auth:enable命令启用基本认证。 - 支持通过 Cloudflare 代理管理 HTTPS,若已使用则无需启用内置 Let’s Encrypt 插件。
- 在服务器创建应用,设置
通过 GitHub Actions 自动化部署
- 配置 GitHub Action,在代码推送到主分支时自动触发部署。
- 流程包括:检出代码、安装 SSH 密钥、添加 Dokku 远程仓库并推送。
实用技巧
- 远程管理:直接通过
ssh dokku@<host> <command>在本地执行服务器命令(如列出应用、清除缓存、重建应用)。 - Docker 缓存管理:使用
repo:purge-cache命令可清除缓存实现全新构建。 - 无需推送即可重建:通过
ps:rebuild命令可触发应用重新构建。
总结
Dokku 提供了一种高效、经济的方式管理个人或小型项目的部署,整合了 Heroku 的便捷性与自托管服务器的灵活性,适合需要频繁部署多种类型应用(包括 LLM 工具)的用户。文中通过具体部署案例和技巧,展示了其核心工作流与实用功能。