services: web: image: ghcr.io/karr-mobi/karr-web:latest networks: - karr_network secrets: - db-password environment: - LOG_LEVEL=debug - DB_USER=karr - DB_HOST=db - DB_PASSWORD_FILE=/run/secrets/db-password volumes: - /srv/http/karr/karr.config.yaml:/app/config/karr.config.yaml depends_on: - db # Needs an image for the auth server # api: # image: ghcr.io/karr-mobi/karr-api:latest # networks: # - karr_network # volumes: # - /srv/http/karr/karr.config.yaml:/app/config/karr.config.yaml # - auth_data:/app/.data/ # depends_on: # - db db: image: postgres:17-alpine networks: - karr_network secrets: - db-password volumes: - postgres_data:/var/lib/postgresql/data environment: - POSTGRES_PASSWORD_FILE=/run/secrets/db-password - POSTGRES_USER=karr - POSTGRES_DB=karr healthcheck: test: ["CMD-SHELL", "pg_isready -U karr"] interval: 5s timeout: 5s retries: 5 caddy: image: ghcr.io/karr-mobi/karr-caddy:latest networks: - karr_network ports: - "3444:3444" environment: - SITE_ADDRESS=:3444 - API_PORT=1993 - WEB_PORT=3000 volumes: - caddy_data:/data - caddy_config:/config volumes: postgres_data: caddy_data: caddy_config: networks: karr_network: secrets: db-password: # needs a secret created with `printf "" | docker secret create db-password -` external: true