
用 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 6 小时 13 分钟前 github + docker 不是很好了吗?推送后就自动构建部署无感部署 |
2 rocmax 6 小时 8 分钟前 via Android |
4 NNNNzs 4 小时 40 分钟前 |
5 kulove 4 小时 28 分钟前 via Android 不太有 我现在 vercel 每月两百刀左右的费用 上个月找了两三种替代方案 比如 railway 都差点意思 有的测试没问题 但生产一切换就不行了 |
6 woodchen 4 小时 25 分钟前 我一般就是 github 打包 docker, nextjs 使用 standalone 模式, 稳定后还是比较方便的. 也可以集成 dokploy 自动构建部署. https://www.sunai.net/t/topic/352 https://github.com/woodchen-ink/ipinfo/blob/master/Dockerfile 供参考 |
7 doveyoung 4 小时 10 分钟前 最近才试过,standalone + docker ,Dockerfile 里要注意把静态文件也拷贝一份,用的 node:22-alpine 镜像,最终大小在 300M 。 在 vercel 部署的话,好像不遵循 standalone ,我单独做了个 build:vercel 的编译命令 |
8 334132462 2 小时 51 分钟前 如果能解决网络问题 dokku 是一个很不错的方案 |
9 56way 2 小时 44 分钟前 我都是免费蹭 cloudflare 的额度,比 vercel 方便多了。。 |
10 lscho 2 小时 34 分钟前 github + docker 就是最好的方式 |
11 cqx2005 2 小时 7 分钟前 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 1 小时 57 分钟前 给全栈项目写了个部署的命令行工具( github+docker ) https://nodebbs.com/topic/58 |
13 wuzhanggui 1 小时 50 分钟前 我是前后端一起的,github 上配个 ci ,配的时候是麻烦,但是一劳永逸,提交代码了就部署上去了 参考我的 https://github.com/wurencaideli/dumogu-admin |
14 bbbblue 49 分钟前 我几个全是官方 docker 模版部署的 但是自己部署就是坑。。 很多特性自部署是负优化 比如 static 生成(不是全部 static 导出) ppr 这类 缓存相关( vercel 会把他们部署到边缘节点去 自己 docker 部署就全在内存里了) 都会导致内存大量增加。。。一个总共加起来不到 100 个页面,十来个 route 的 nextjs 服务开着这些功能能吃掉上 G 内存。。。 |