Files
hedena_gold/DOCKER.md
T
s.esmaeili ea86636027 Initial commit: Hedena Gold monorepo.
First commit of the Hedena Gold product (separate from gold-bank): branding, package names, and deploy defaults aligned to the new brand; legacy Henza trees stay local-only via .gitignore.
2026-10-15 17:19:10 +03:30

58 lines
1.7 KiB
Markdown

# 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
```bash
pnpm install
pnpm build:release
git add -f 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
```env
POSTGRES_USER=hedenagold
POSTGRES_PASSWORD=...
POSTGRES_DB=hedenagold
EXTERNAL_DB_PORT=5433
DATABASE_URL=postgresql://hedenagold:...@db:5432/hedenagold?schema=public
PORT=3000
```
A second copy on the **same server** is a separate Dokploy application (its own
domains, passwords, and `JWT_SECRET`). Do not set `container_name` in this file:
those names are global in Docker, and a fixed `hedenagold_db` collides with the
first copy. Give the second app its own `EXTERNAL_DB_PORT` (for example `5434`
if `5433` is already taken). Volumes stay separate because Dokploy uses a
different Compose project name for each application.
## 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
```bash
pnpm build:release
docker compose up --build -d
```