services: postgres: image: ghcr.io/lanedirt/aliasvault-postgres:latest volumes: - ./database/postgres:/var/lib/postgresql/data:rw env_file: - .env restart: always healthcheck: test: ["CMD-SHELL", "pg_isready -U aliasvault"] interval: 5s timeout: 5s retries: 5 start_period: 10s client: image: ghcr.io/lanedirt/aliasvault-client:latest volumes: - ./logs/msbuild:/src/msbuild-logs:rw expose: - "3000" restart: always env_file: - .env api: image: ghcr.io/lanedirt/aliasvault-api:latest expose: - "3001" volumes: - ./database:/database:rw - ./certificates/app:/certificates/app:rw - ./logs:/logs:rw restart: always env_file: - .env depends_on: postgres: condition: service_healthy environment: ConnectionStrings__AliasServerDbContext: "Host=postgres;Database=aliasvault;Username=aliasvault;Password=${POSTGRES_PASSWORD}" admin: image: ghcr.io/lanedirt/aliasvault-admin:latest expose: - "3002" volumes: - ./database:/database:rw - ./certificates/app:/certificates/app:rw - ./logs:/logs:rw restart: always env_file: - .env depends_on: postgres: condition: service_healthy environment: ConnectionStrings__AliasServerDbContext: "Host=postgres;Database=aliasvault;Username=aliasvault;Password=${POSTGRES_PASSWORD}" reverse-proxy: image: ghcr.io/lanedirt/aliasvault-reverse-proxy:latest ports: - "${HTTP_PORT:-80}:80" - "${HTTPS_PORT:-443}:443" volumes: - ./certificates/ssl:/etc/nginx/ssl:rw - ./certificates/letsencrypt:/etc/nginx/ssl-letsencrypt:rw - ./certificates/letsencrypt/www:/var/www/certbot:rw depends_on: - admin - client - api - smtp restart: always env_file: - .env smtp: image: ghcr.io/lanedirt/aliasvault-smtp:latest ports: - "${SMTP_PORT:-25}:25" - "${SMTP_TLS_PORT:-587}:587" volumes: - ./database:/database:rw - ./logs:/logs:rw restart: always env_file: - .env depends_on: postgres: condition: service_healthy environment: ConnectionStrings__AliasServerDbContext: "Host=postgres;Database=aliasvault;Username=aliasvault;Password=${POSTGRES_PASSWORD}" task-runner: image: ghcr.io/lanedirt/aliasvault-task-runner:latest volumes: - ./database:/database:rw - ./logs:/logs:rw restart: always env_file: - .env depends_on: postgres: condition: service_healthy environment: ConnectionStrings__AliasServerDbContext: "Host=postgres;Database=aliasvault;Username=aliasvault;Password=${POSTGRES_PASSWORD}"