
用 nextjs 部署到自己服务器有点麻烦的,必须部署到 vercel 这种 serverless 才方便。
我使用过笨办法,在服务器上克隆整个项目,服务器执行 build ,然后 start ( tmux/screen/systemctl )。
或者麻烦一点用 docker 打包一个镜像,配置 github action 的 ci ,某个打包分支有提交会自动打包镜像,服务器再 pull 镜像就比较方便了。但还是要折腾一下 ci 和 docker 。
或者自己本地打包后 rsync 到服务器,但要踩一下 standalone 之类的坑( node runtime 依赖 node_modules )。
难道就没优雅一点的么?
web 页面和 server api 都在一块确实好用,对前端入门后端来讲也算个不错的选择。
1 GzhiYi 19 小时 19 分钟前 github + docker 不是很好了吗?推送后就自动构建部署无感部署 |
2 rocmax 19 小时 14 分钟前 via Android |
4 NNNNzs 17 小时 46 分钟前 |
5 kulove 17 小时 34 分钟前 via Android 不太有 我现在 vercel 每月两百刀左右的费用 上个月找了两三种替代方案 比如 railway 都差点意思 有的测试没问题 但生产一切换就不行了 |
6 woodchen 17 小时 31 分钟前 我一般就是 github 打包 docker, nextjs 使用 standalone 模式, 稳定后还是比较方便的. 也可以集成 dokploy 自动构建部署. https://www.sunai.net/t/topic/352 https://github.com/woodchen-ink/ipinfo/blob/master/Dockerfile 供参考 |
7 doveyoung 17 小时 16 分钟前 最近才试过,standalone + docker ,Dockerfile 里要注意把静态文件也拷贝一份,用的 node:22-alpine 镜像,最终大小在 300M 。 在 vercel 部署的话,好像不遵循 standalone ,我单独做了个 build:vercel 的编译命令 |
8 334132462 15 小时 57 分钟前 如果能解决网络问题 dokku 是一个很不错的方案 |
9 56way 15 小时 51 分钟前 我都是免费蹭 cloudflare 的额度,比 vercel 方便多了。。 |
10 lscho 15 小时 40 分钟前 github + docker 就是最好的方式 |
11 cqx2005 15 小时 13 分钟前 frontend: container_name: frontend command: /bin/bash -c "cd /app && ./node_modules/.bin/next start" restart: always image: node:20.18.0 environment: TZ: Asia/Shanghai NODE_ENV: production logging: options: max-size: "10m" max-file: "10" ports: - "3000:3000" volumes: - "./frontend:/app" |
12 C64NRD 15 小时 3 分钟前 给全栈项目写了个部署的命令行工具( github+docker ) https://nodebbs.com/topic/58 |
13 wuzhanggui 14 小时 56 分钟前 我是前后端一起的,github 上配个 ci ,配的时候是麻烦,但是一劳永逸,提交代码了就部署上去了 参考我的 https://github.com/wurencaideli/dumogu-admin |
14 bbbblue 13 小时 55 分钟前 我几个全是官方 docker 模版部署的 但是自己部署就是坑。。 很多特性自部署是负优化 比如 static 生成(不是全部 static 导出) ppr 这类 缓存相关( vercel 会把他们部署到边缘节点去 自己 docker 部署就全在内存里了) 都会导致内存大量增加。。。一个总共加起来不到 100 个页面,十来个 route 的 nextjs 服务开着这些功能能吃掉上 G 内存。。。 |
15 rocmax 12 小时 17 分钟前 via Android @ethusdt 我司从 nextjs13 开始就使用 standalone 模式部署在 eks ,你说的 volume 权限是什么场景? 如果愿意折腾的话有开源的部署方案 https://opennext.js.org/ 但我觉得这么搞不如给 vercel 交钱。 |
16 ethusdt OP @rocmax #15 依稀记得之前踩过的坑是这样的:docker build 时候用的 root 权限,但是最终 dockercompose 运行时候镜像内部用户降权无法访问一些资源。并且 volumn 卷权限问题表现不一致,服务器经常用 root 来跑,而本地 mac 环境又不是 root 运行 docker 。可能是 Dockerfile 内部这个 nextjs user 权限导致的,即使配置了 gid/uid 也是有点问题。忘记当时是怎么解决了,可能 AI 给解决了,当时没查下到底是啥问题。 |
17 minmaxflow 10 小时 32 分钟前 我最近也碰到一样的问题,我是因为用户在国内,项目部署在阿里云上,使用 ansible(rsync) 配合 standalone 模式, 使用 nginx+pm2, 是比较繁琐。 |
18 frayesshi1 PRO 直接 tmux+npm run |
19 keithwhisper 4 小时 52 分钟前 我推荐用 Coolify 部署 https://coolify.io/ |