63 lines
2 KiB
YAML
63 lines
2 KiB
YAML
# atlas.pogoo.app — full product stack, self-contained repo for Portainer-git auto-deploy.
|
|
# Fully ISOLATED: own frontend + own API + own DB. Nothing shared with other products.
|
|
name: pogoo-atlas
|
|
|
|
services:
|
|
web:
|
|
build:
|
|
context: ./site
|
|
image: pogoo/atlas-web:latest
|
|
restart: unless-stopped
|
|
networks: [edge]
|
|
labels:
|
|
- "traefik.enable=true"
|
|
- "traefik.http.routers.atlas.rule=Host(`atlas.pogoo.app`)"
|
|
- "traefik.http.routers.atlas.entrypoints=websecure"
|
|
- "traefik.http.routers.atlas.tls.certresolver=le"
|
|
- "traefik.http.routers.atlas.middlewares=security-headers@file"
|
|
- "traefik.http.services.atlas.loadbalancer.server.port=80"
|
|
|
|
api:
|
|
# Placeholder — swap traefik/whoami for the real Atlas backend image.
|
|
image: traefik/whoami:latest
|
|
restart: unless-stopped
|
|
environment:
|
|
- DATABASE_URL=postgres://atlas:${DB_PASSWORD}@db:5432/atlas
|
|
networks: [edge, atlas_net]
|
|
depends_on:
|
|
db:
|
|
condition: service_healthy
|
|
labels:
|
|
- "traefik.enable=true"
|
|
- "traefik.http.routers.atlas-api.rule=Host(`atlas.pogoo.app`) && PathPrefix(`/api`)"
|
|
- "traefik.http.routers.atlas-api.entrypoints=websecure"
|
|
- "traefik.http.routers.atlas-api.tls.certresolver=le"
|
|
- "traefik.http.routers.atlas-api.priority=100"
|
|
- "traefik.http.routers.atlas-api.middlewares=atlas-strip@docker,ratelimit-std@file"
|
|
- "traefik.http.middlewares.atlas-strip.stripprefix.prefixes=/api"
|
|
- "traefik.http.services.atlas-api.loadbalancer.server.port=80"
|
|
|
|
db:
|
|
image: postgres:16-alpine
|
|
restart: unless-stopped
|
|
environment:
|
|
- POSTGRES_USER=atlas
|
|
- POSTGRES_PASSWORD=${DB_PASSWORD}
|
|
- POSTGRES_DB=atlas
|
|
volumes:
|
|
- atlas_pgdata:/var/lib/postgresql/data
|
|
networks: [atlas_net] # private — never on edge
|
|
healthcheck:
|
|
test: ["CMD-SHELL", "pg_isready -U atlas"]
|
|
interval: 10s
|
|
timeout: 5s
|
|
retries: 5
|
|
|
|
networks:
|
|
edge:
|
|
external: true
|
|
atlas_net:
|
|
driver: bridge
|
|
|
|
volumes:
|
|
atlas_pgdata:
|