gigafibre-infra/apps/docker-compose.yml

92 lines
2.9 KiB
YAML

services:
# ── Gitea ────────────────────────────────────────────────────
gitea:
image: gitea/gitea:latest
environment:
- GITEA__database__DB_TYPE=postgres
- GITEA__database__HOST=gitea-db:5432
- GITEA__database__NAME=gitea
- GITEA__database__USER=gitea
- GITEA__database__PASSWD=gitea
volumes:
- gitea-data:/data
networks:
- proxy
- internal
labels:
- "traefik.enable=true"
- "traefik.http.routers.git.rule=Host(`git.gigafibre.ca`)"
- "traefik.http.routers.git.entrypoints=websecure"
- "traefik.http.routers.git.tls.certresolver=letsencrypt"
- "traefik.http.services.git.loadbalancer.server.port=3000"
restart: unless-stopped
gitea-db:
image: postgres:14-alpine
environment:
- POSTGRES_DB=gitea
- POSTGRES_USER=gitea
- POSTGRES_PASSWORD=gitea
volumes:
- gitea-db-data:/var/lib/postgresql/data
networks:
- internal
restart: unless-stopped
# ── Targo Timesheet Frontend ─────────────────────────────────
targo-frontend:
image: nginx:alpine
volumes:
- targo-frontend-data:/usr/share/nginx/html
networks:
- proxy
labels:
- "traefik.enable=true"
- "traefik.http.routers.targo-app.rule=Host(`timesheet.gigafibre.ca`)"
- "traefik.http.routers.targo-app.entrypoints=websecure"
- "traefik.http.routers.targo-app.tls.certresolver=letsencrypt"
- "traefik.http.services.targo-app.loadbalancer.server.port=80"
restart: unless-stopped
# ── Dispatch App Frontend ────────────────────────────────────
dispatch-frontend:
image: nginx:alpine
volumes:
- dispatch-frontend-data:/usr/share/nginx/html
networks:
- proxy
labels:
- "traefik.enable=true"
- "traefik.http.routers.dispatch.rule=Host(`dispatch.gigafibre.ca`)"
- "traefik.http.routers.dispatch.entrypoints=websecure"
- "traefik.http.routers.dispatch.tls.certresolver=letsencrypt"
- "traefik.http.services.dispatch.loadbalancer.server.port=80"
restart: unless-stopped
# ── Targo Backend + DB ───────────────────────────────────────
targo-db:
image: postgres:14-alpine
environment:
- POSTGRES_DB=targo
- POSTGRES_USER=targo
- POSTGRES_PASSWORD=targo
volumes:
- targo-db-data:/var/lib/postgresql/data
networks:
- internal
restart: unless-stopped
networks:
proxy:
external: true
internal:
driver: bridge
volumes:
gitea-data:
gitea-db-data:
targo-frontend-data:
dispatch-frontend-data:
targo-db-data: