1.3 KiB
1.3 KiB
Docker — copy-only deploy (Dokploy)
Build artifacts are produced on the developer machine and committed to git.
Dokploy only builds thin images that copy those files (no pnpm install on the server).
One-time / before each deploy
pnpm install
pnpm build:release
git add apps/api/release apps/admin-panel/dist apps/user-app/dist
git commit -m "chore: refresh release artifacts"
git push
What this produces:
| App | Artifact | Image |
|---|---|---|
| API | apps/api/release/app.js (+ Prisma under release/vendor) |
docker.arvancloud.ir/node:20-bookworm |
| Admin | apps/admin-panel/dist/ |
docker.arvancloud.ir/nginx:latest |
| User | apps/user-app/dist/ |
docker.arvancloud.ir/nginx:latest |
Dokploy Environment
POSTGRES_USER=goldbank
POSTGRES_PASSWORD=...
POSTGRES_DB=goldbank
EXTERNAL_DB_PORT=5433
DATABASE_URL=postgresql://goldbank:...@db:5432/goldbank?schema=public
PORT=3000
Domains (container ports)
| Service | Domain | Port |
|---|---|---|
admin-panel |
admin.example.com | 80 |
user-app |
app.example.com | 80 |
api |
(optional) | 3000 |
Frontends call /api on their own domain; nginx proxies to api:3000.
Local compose smoke test
pnpm build:release
docker compose up --build -d