您的 Dokku 服务器上安装什么?
- Dokku v0.38.34,来自官方引导脚本,MIT 许可证
- 用 Docker 运行应用容器,用 Nginx 做路由
- dokku-letsencrypt 插件,为每个应用提供免费 HTTPS 证书
- 一个 sslip.io 全局域名,应用会在 appname.IP-with-dashes.sslip.io 打开
- 如果您下单时提供了 SSH 密钥,它已添加到 Dokku 中
- 2 GB 交换空间,防火墙开放 22、80 和 443 端口
Dokku 需要多大的配置?
Dokku 官方要求 1 GB 内存,内存更少时建议使用交换空间。本安装会添加 2 GB 交换空间。在我们 1 GB、1 核的真实服务器测试中,一个小型 Next.js 示例通过 git push 构建并上线,用了大约 7 分钟。构建在服务器上运行,所以 Node.js 项目会很快占满内存,经验上,构建较重的项目可以考虑 2 到 4 GB。每个应用和数据库都是各自的容器,请把它们的用量加起来。如果不够,可以在面板中分别提升 RAM、CPU 和磁盘。
| 用途 | 配置 | 价格 | 选择 |
|---|---|---|---|
| 新网站 | 1 GB RAM · 1 vCore · 25 GB NVMe | $2.58/月 | |
| 成长中的网站 | 2 GB RAM · 1 vCore · 40 GB NVMe | $4.01/月 | |
| 访问量大的网站 | 4 GB RAM · 2 vCore · 60 GB NVMe | $6.89/月 |
适合谁?
- 偏爱命令行、不需要网页面板的开发者
- 希望按固定月费运行的个人项目、API 和机器人
- 想在小型服务器上用 buildpack 或 Dockerfile 实现 git push 部署的人
- 熟悉 SSH、喜欢一切掌握在自己手里的人
下单之后会发生什么?
- 设置配置并完成付款。服务器启动后,Dokku 会自行安装。在我们的真实服务器测试中,这大约用了 10 分钟。
- 在面板的“我的服务器”中打开您的服务器,从“概览”标签页的“连接地址”一行复制 IP 地址。
- 如果下单时没有提供 SSH 密钥,请通过 SSH 连接并运行:echo 'ssh-ed25519 AAAA...' | dokku ssh-keys:add mine
- 在服务器上创建应用:dokku apps:create myapp
- 在您的项目文件夹中先运行 git remote add dokku dokku@IP:myapp,再运行 git push dokku main
- 若要为应用启用 HTTPS,请先在服务器上运行 dokku letsencrypt:set myapp email [email protected],然后再运行下一条命令 dokku letsencrypt:enable myapp
每台服务器都包含
- 价格含每日备份
- 不限流量
- 完整 root 权限
- 之后可升级或降配 RAM 和 CPU,并扩大磁盘
- 位置:Istanbul · IST-1。
须知
- Dokku 通过命令运行,没有网页界面。如果您更喜欢在浏览器里操作,可以看看安装了 Dokploy 的服务器。
- 证书续期任务在设置时已启用(dokku letsencrypt:cron-job --add)。如果您把它删掉,证书就不会再自动续期。
- 没有安装数据库插件。若要使用 PostgreSQL,请先运行 dokku plugin:install https://github.com/dokku/dokku-postgres.git
- 如果在较小的配置上构建时内存不足,请在面板中升级服务器。
- 更新 Dokku、它的插件和您的应用,是您自己的责任。
Dokku 常见问题
Dokku 需要多少 RAM?
Dokku 官方要求 1 GB 内存,对小型应用已经够用。构建在服务器上运行,所以经验上,Node.js 或 Next.js 项目可以考虑 2 到 4 GB。之后您可以在面板中升级配置。
如何用 Dokku 部署应用?
在服务器上用 dokku apps:create 创建应用,用 git remote add dokku dokku@IP:myapp 把服务器添加到您的项目,然后运行 git push dokku main。Dokku 会构建并启动应用,部署完成时输出它的地址。
Dokku 可以构建哪些类型的项目?
Dokku 会自动识别您的项目,用 buildpack 或您自己的 Dockerfile 构建。如果不想自动识别,可以用 builder:set 命令为每个应用单独指定构建器。
如何把自己的域名连接到 Dokku?
把域名的 A 记录指向服务器的 IP,然后在服务器上运行 dokku domains:set myapp example.com。之后运行 dokku letsencrypt:enable myapp,为新地址获取证书。
如何给 Dokku 添加数据库?
Dokku 通过插件提供数据库。安装官方 PostgreSQL 插件,运行 dokku postgres:create mydb 创建数据库,再用 dokku postgres:link mydb myapp 连接它。您的应用会以 DATABASE_URL 收到地址。
Dokku 有网页面板吗?
没有。Dokku 通过 SSH 用命令管理,root 权限归您。如果想在浏览器里部署,请选择安装了 Dokploy 的服务器。