部署前须知
装之前先花三分钟看完这页,能省掉后面大半的返工。
环境要求
章节:环境要求Node ≥ 22、pnpm 10、Docker(跑 Postgres)。
只想看看产品长什么样、不打算装:直接开 5 分钟先试一下。
端口段 4800-4809
章节:端口段 4800-4809宿主机端口全部锁定在 OpSkool 专属的 4800-4809 段,不用各中间件的默认端口(3000 / 5432 / 9000…),避免与同机的其他项目撞车。
| 端口 | 服务 | 场景 |
|---|---|---|
| 4800 | web | pnpm dev / pnpm demo |
| 4802 | Postgres | docker-compose.dev.yml |
要换 web 端口,把 PORT export 到 shell 里(export PORT=4807),写进 .env 不生效——那份文件是应用启动之后才加载的,来不及影响 CLI 选端口。
几份 compose,各司其职
章节:几份 compose,各司其职前四份可以单独用,后两份是 override,要叠在 deploy/compose.yml 上:
| 文件 | 用途 | 服务 |
|---|---|---|
docker-compose.dev.yml | 本地开发的中间件 | Postgres(:4802) |
deploy/compose.demo.yml | 一键演示(自带迁移 + 种子) | postgres、migrate、web(:4800)、jobs |
deploy/compose.yml | 生产(本机从源码构建) | caddy、web、jobs、postgres、wal-g |
deploy/compose.public-demo.yml | 公开演示站,一份自包含文件跑完(用现成镜像 + 每天还原数据库) | postgres、migrate、web、jobs、demo-reset |
deploy/compose.image.yml | override:改用已构建好的镜像,补一个一次性 migrate | web/jobs 换镜像来源 + migrate |
deploy/compose.demo-site.yml | override:公开演示站,每天把数据库还原成种子状态 | demo-reset |
数据库要三个角色,不是一个
章节:数据库要三个角色,不是一个.env 里有三条连接串(DATABASE_URL / DATABASE_URL_MIGRATE / DATABASE_URL_AUTH),分别是应用、迁移 owner、身份模块专用。不要图省事全填同一个——合并任意两条都会让租户隔离静默失效,原因见多租户与行级安全。
下一步
章节:下一步装之前务必先读 首次初始化必读——那一步跳过会让你看到一个空产品。
本页是 CE README「快速开始」与「Docker 部署」两节的展开;两处不一致时,以 README 为准。
© 2026 OpSkool 办学帮 · 苏ICP备2025224982号-3