部署指南
从零到上线:一键部署脚本、HTTPS、环境变量、常见部署问题(完整文档见 docs/deployment.md)。
单一事实来源
完整的部署文档维护在仓库 docs/deployment.md(含详细步骤、环境变量表与 FAQ)。本节仅作速览,避免两份内容重复维护。
服务组成
| 服务 | 作用 | 端口(容器内) |
|---|---|---|
| postgres | PostgreSQL 16 数据库 | 5432 |
| app | Next.js 主服务(页面 + REST API) | 3000 |
| im | Socket.IO 即时通讯 | 3002 |
| nginx / caddy | 反向代理(HTTP / 自动 HTTPS) | 80 / 443 |
一键部署
# 1. 获取代码
git clone https://github.com/hezongji/project-management-system.git
cd project-management-system
# 2. 一键部署(交互询问站点地址,自动生成 .env 与密钥)
./deploy/install.sh
# 3. HTTPS 模式(Caddy 自动签发证书)
./deploy/install.sh --https --domain pm.example.com关键环境变量
- DB_* / DATABASE_URL:数据库连接(必填)。
- JWT_SECRET:主服务与 IM 共用的 JWT 密钥,未配置将拒绝启动(必填)。
- NEXT_PUBLIC_WS_URL:IM WebSocket 地址,只能写 origin 根域名(不要带路径)。
- FILE_ROOT / FILE_MAX_SIZE / FILE_QUOTA_PER_PROJECT:网盘相关。
- WECOM_WEBHOOK_URL / DINGTALK_WEBHOOK_URL:企业微信 / 钉钉通知(可选)。
常见部署问题
- 内存不足 OOM:2 核 2G 起步,构建前先看 free -m 水位。
- 前端空白 / 接口 404:确认 NEXT_PUBLIC_API_URL / WS_URL 正确。
- 改代码后不生效:按端口 ss -tlnp 找 pid 强杀旧 next-server,再重启。
完整文档
详见仓库 docs/deployment.md(从零到上线步骤 + 真实环境变量表 + FAQ)。