使用 Coolify 部署 Next.js 项目
本文详细介绍如何使用 Coolify 部署 Next.js 项目,帮助你快速完成项目上线。
由于 Coolify 对 VPS 的性能要求比 Dokploy 高,所以如果你的 VPS 配置较低,请选择 Dokploy 并阅读 Dokploy 部署文档
前置准备
在开始部署之前,建议先在 next.config.mjs 中添加以下配置:
const nextConfig = {
output: "standalone", // 添加这行
// other code...
}由于 Coolify 基于 Docker 运行,使用 standalone 模式可以显著减小构建镜像的体积。
什么是 Coolify
Coolify 是一个开源的自托管 PaaS(Platform as a Service)平台,可作为 Vercel、Netlify、Railway、Zeabur 等服务的开源替代方案。

服务器准备与 Coolify 安装
购买服务器
使用 Coolify 需要自行购买服务器。如果你不确定选择哪家服务商,可以考虑 hostinger。对于项目初期,4核16G 的 VPS 就足够使用,月费仅需 $7.99。

配置服务器
完成付款后,按照页面提示完成 VPS 设置。配置完成后,控制台会显示 VPS 已启动。
接下来需要配置防火墙规则。Hostinger 默认没有防火墙规则,这意味着所有端口都处于开放状态,存在安全风险。我们需要创建防火墙规则,开放 22、80、443、8000 端口的访问权限。
8000 端口用于打开 Coolify 注册页面,一旦完成后面的 Coolify 自定义域名设置,就要关闭 8000 端口。


安装 Coolify
可以根据官方文档通过命令安装,也可以直接在 Hostinger 后台安装

安装完成后,打开 http://your_server_ip:8000 即可进入 Coolify 管理后台。


配置 Coolify
注册并登录后,首先为管理后台设置自定义域名:

然后在域名解析平台(以 CloudFlare 为例)添加该自定义域名的解析记录,选择 A 类型解析,IP 地址填写服务器地址。

解析生效后,就可以通过自定义域名访问 Coolify 管理后台了。
记得删掉防火墙 8000 端口,以后只用域名访问。
最后,绑定你的 Git 账号,如下图所示:




部署步骤
Coolify 提供了类似 Vercel 的可视化部署界面,你可以很方便地选择 GitHub 仓库进行自动部署。





配置自定义域名和重定向规则

创建完成后,需要在 Cloudflare 设置 DNS:

添加两条记录:
A 记录:
your-domain.com -> 你的服务器 IP
开启 Proxy
A 记录:
www.your-domain.com -> 你的服务器 IP
开启 Proxy然后打开 SSL/TLS 设置,选择 Full 或 Flexible:

配置环境变量


接着点击右上角的 Deploy 按钮就可以自动部署了。
查看构建进度

之后每次提交代码都会自动触发部署。
一些高级用法
日志
如果你在 Next.js 项目中使用 Pino 记录日志,那么通过 Coolify 的功能将日志目录挂载到宿主机。
- 点击左侧菜单的 "Persistent Storage"
- 点击 "+ Add" 添加新的存储挂载,填写以下内容:
- Source Path(宿主机路径):
/var/log/nexty-dev - Destination Path(容器内路径):
/app/logs
- Source Path(宿主机路径):


- 保存配置并点击 Redeploy

配置生效后,容器写入 /app/logs 的日志文件会实际保存到宿主机的 /var/log/nexty-dev 目录。
在 VPS 上面查看日志
# 查看日志文件列表
ls -la /var/log/nexty-dev/
# 实时查看日志
tail -f /var/log/nexty-dev/xxxxxxxx-*.log
# 搜索特定内容
grep "error" /var/log/nexty-dev/xxxxxxxx-*.log如果想在本地查看日志,可以用 scp 命令导出整个文件夹或者指定文件:
# 在本地电脑执行
scp -r root@ip:/var/log/nexty-dev/ ./nexty-logs/部署 Redis
创建 Redis 的步骤和创建普通项目类似,只是 Resource 要选择 Redis


创建完成后就能看到配置信息了

对于生产环境,如果部署在同一台服务器,可直接使用内部链接。
其他关键配置介绍:
- Ports Mappings(端口映射):是
宿主机端口:容器端口的映射,例如需要在本地临时调试,可设置为6380:6379,这样本地就能通过 IP 和 6380 端口访问到 Redis 了。 - SSL Configuration(SSL 配置):
- 连接 Redis 的流量会经过 TLS/SSL 加密。
- 建议开启,这样可以防止你的数据和密码在传输过程中被截获。
- 开启后,你的客户端连接字符串通常需要从
redis://改为rediss:// - 在本地电脑通过命令
echo | openssl s_client -connect 72.62.133.215:23771 2>/dev/null | openssl x509 > redis_server.crt可以下载 Coolify 生成的 CA 文件
- Proxy - Make it publicly available(代理 - 公开访问):
- 不勾选,只有同一个 Coolify 里的应用能访问这个 redis
- 勾选,必须设置了 Public Port 才允许勾选,勾选后会展示一个 Public URL。
- Public Port(公共端口):定义你通过服务器 IP 访问 Redis 时使用的端口号,如果需要开启,建议设置 5 位数的冷门端口,安全级别会比 6379 高很多。
如果你是本地临时调试,可以使用 Ports Mappings,用完立即关闭端口。如果需要保持互联网访问,那么建议设置 SSL、Proxy、Public Port。
无论是通过 Ports Mappings 还是通过 Proxy 连接,都需要在 vps 防火墙开启对应的端口。
Redis 开启 AOF
如果需要 Redis 的数据持久化,可以开启 AOF,只需在 Custom Redis Configuration 配置这两行:
appendonly yes
appendfsync everysec然后滚动到顶部,点击 Save、Restart。
如需验证是否正确开启 AOF,可以打开顶部的 Terminal,然后执行命令:
redis-cli
AUTH YOUR_PASSWORD
CONFIG GET appendonly