# 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: