您的 Next.js 服务器上安装什么?
- Coolify 4.6.0,一个开源面板,从您的 GitHub 仓库构建并部署结果
- 能识别 Next.js 的 Railpack 构建工具;Coolify 将它标记为 beta,同时也可以选择 Dockerfile
- Docker 和 Traefik 反向代理,负责获取并续期 HTTPS 证书
- 现成的管理员账户,已跳过欢迎向导并关闭了公开注册
- sslip.io 地址,所以在添加域名之前一切都能通过 HTTPS 打开
- 2 GB 交换空间,防火墙开放 22、80、443、6001、6002 和 8000 端口
Next.js 需要多大的配置?
Next.js 没有官方的 RAM 数值,对内存的要求更多取决于构建,而不是运行中的应用。在我们的真实服务器测试中,配置为 4 GB 和 2 核时,一个约有 85 个包的 AI 聊天应用大约用了 3.7 分钟完成构建,内存峰值达到 3.5 GB,用到了交换空间,并占用了 18 GB 磁盘。在 2 GB 时,这个应用在 TypeScript 检查阶段内存不足,不过一个小型示例通过了。请从 4 GB 开始,包很多的项目可以考虑 8 GB。RAM 和 CPU 之后可升可降,磁盘只能增大。
| 用途 | 配置 | 价格 | 选择 |
|---|---|---|---|
| 新网站 | 4 GB RAM · 2 vCore · 60 GB NVMe | $6.89/月 | |
| 成长中的网站 | 8 GB RAM · 4 vCore · 120 GB NVMe | $13.62/月 | |
| 访问量大的网站 | 16 GB RAM · 8 vCore · 200 GB NVMe | $25.15/月 |
适合谁?
- 发布 Next.js 应用的人,无论是手写的还是用 AI 编程工具做的
- 宁愿事先知道月费、也不想看着按量账单越涨越高的人
- 带有队列 worker、WebSocket 或长时间 AI 响应的应用
- 把数据库和应用放在同一台服务器上的项目
下单之后会发生什么?
- 设置好配置并完成付款。服务器启动后,Coolify 会自行安装。在我们的真实服务器测试中,这大约用了 12 分钟。
- 在面板的“我的服务器”中打开您的服务器。用“概览”标签页中的“面板地址”“邮箱”和“密码”三行登录 Coolify。
- 在 Projects 页面按 New resource。公开仓库请选择 Public Git Repository 并输入地址。
- 私有仓库请在 Private Keys 页面生成密钥,把公钥添加到 GitHub 的 Deploy keys,然后选择 Private Git Repository (with Deploy Key)。
- 在 Environment Variables 页面填入变量,然后按 Deploy。Domains 页面有一个 HTTPS 测试地址,您自己的域名也在这里添加。
- 把应用 Webhooks 页面中的地址和密钥,填入 GitHub 上仓库的 Webhooks 设置。此后每次 git push 都会上线。
每台服务器都包含
- 价格含每日备份
- 不限流量
- 完整 root 权限
- 之后可升级或降配 RAM 和 CPU,并扩大磁盘
- 位置:Istanbul · IST-1。
须知
- 以 NEXT_PUBLIC_ 开头的变量会在构建时写入浏览器代码。修改后请按 Redeploy,并且绝不要给模型密钥或支付密钥加这个前缀。
- 每次部署都会重建容器,所以写在容器内的 SQLite 文件会消失。请用 Persistent Storage 挂载它所在的文件夹,或在面板中创建 PostgreSQL 数据库。
- Coolify 用自己的密钥以 root 身份通过 SSH 连接服务器。如果您完全禁用 root 登录,或从 authorized_keys 中删除 coolify 那一行,部署就会停止工作。
- 面板通过 HTTPS 地址正常工作后,可以关闭 8000、6001 和 6002 端口。Docker 会绕过 ufw,所以要走 Coolify 的 Compose 方式,具体步骤见帮助文章。
- Coolify 的自动更新默认开启。让您应用的包保持最新是您的事。
- 服务器只在一个地方,伊斯坦布尔。距离较远的访客延迟会更高,如有需要,可以在前面加一层内容分发网络。
Next.js 常见问题
Next.js VPS 需要多少 RAM?
Next.js 没有官方的 RAM 数值,因为由构建决定。在我们的测试中,4 GB 的服务器构建了一个约有 85 个包的应用,而在 2 GB 时同一个应用内存不足,面板则保持运行。请从 4 GB 开始。如果构建时内存不足,请在面板中升级配置后重新部署。
Next.js 主机的固定月费是什么意思?
您为所选的 RAM、CPU 和磁盘付费,在您更改配置之前价格保持不变。请求、构建分钟数和团队席位都不计量,流量不限,每晚备份已包含在内。代价是服务器不会自行伸缩:是否扩容由您决定。
Next.js 的所有功能都能在自己的服务器上使用吗?
可以。Next.js 文档说,使用 Node.js 服务器或 Docker 时所有功能都可用,只有静态导出受限。在带持久磁盘的单台服务器上,缓存和 ISR 会自动工作。如果运行多个副本,就必须在它们之间共享缓存。
如何部署用 AI 编程工具做出的应用?
不管是哪个工具写的,结果通常是普通的 Next.js、Vite、Astro、Node 或 Python 项目。把代码放到 GitHub,把机密信息移到环境变量中,并确认 npm run build 能顺利完成。然后把仓库连接到 Coolify,按 Deploy。
也可以部署 Vite、Astro 或 Python 项目吗?
可以。我们在真实服务器上试过 Coolify 的示例项目:静态的 Vite 网站、Astro 服务器应用和 Flask 应用,都用 Railpack 构建成功并通过 HTTPS 打开。只需修改几个字段:Vite 选 Static site 和 /dist,Astro 用 4321 端口,Flask 用 5000 端口,并加上启动命令。
如何通过 git push 部署 Next.js 应用?
每次推送时,GitHub 会向面板发送一个带签名的请求。Coolify 验证后,为该分支重新构建应用。要进行设置,请把应用 Webhooks 页面中的地址和密钥填入 GitHub 上仓库的 Webhooks 设置。在一个小型示例项目上,借助构建缓存,一次新提交在 41 秒内就上线了。