version: "3.8" services: immich-server: image: ghcr.io/immich-app/immich-server:release ports: - "127.0.0.1:2283:2283" volumes: - library:/usr/src/app/upload - ./config.yaml:/config.yaml env_file: - .env environment: - NODE_ENV=production depends_on: - redis - database restart: always immich-machine-learning: image: ghcr.io/immich-app/immich-machine-learning:release volumes: - library:/usr/src/app/upload env_file: - .env - secret.env environment: - NODE_ENV=production depends_on: - database restart: always redis: container_name: immich_redis image: redis:6.2 restart: always database: container_name: immich_postgres image: tensorchord/pgvecto-rs:pg14-v0.2.0 env_file: - .env - secret.env environment: POSTGRES_PASSWORD: ${DB_PASSWORD} POSTGRES_USER: ${DB_USERNAME} POSTGRES_DB: ${DB_DATABASE_NAME} PG_DATA: /var/lib/postgresql/data volumes: - pgdata:/var/lib/postgresql/data restart: always caddy: image: caddy:2-alpine restart: unless-stopped ports: - "80:80" - "443:443" - "443:443/udp" volumes: - ./caddy/Caddyfile:/etc/caddy/Caddyfile - ./caddy/data:/data # Optional - ./caddy/config:/config # Optional - ./caddy/logs:/logs # Optional volumes: pgdata: library: