services: immich-server: container_name: immich_server image: ghcr.io/immich-app/immich-server:release volumes: - ${UPLOAD_LOCATION}:/usr/src/app/upload - /etc/localtime:/etc/localtime:ro env_file: - .env ports: - 2283:2283 depends_on: redis: condition: service_started database: condition: service_healthy restart: always immich-machine-learning: container_name: immich_machine_learning image: ghcr.io/immich-app/immich-machine-learning:release volumes: - model-cache:/cache - /etc/localtime:/etc/localtime:ro env_file: - .env restart: always redis: container_name: immich_redis image: redis:alpine healthcheck: test: redis-cli ping || exit 1 restart: always database: container_name: immich_postgres image: tensorchord/pgvecto-rs:pg14-v0.3.0 command: postgres -c shared_preload_libraries=vectors env_file: - .env environment: POSTGRES_PASSWORD: ${DB_PASSWORD} POSTGRES_USER: ${DB_USERNAME} POSTGRES_DB: ${DB_DATABASE_NAME} POSTGRES_INITDB_ARGS: '--data-checksums' volumes: - pgdata:/var/lib/postgresql/data healthcheck: test: ["CMD-SHELL", "pg_isready -U ${DB_USERNAME} -d ${DB_DATABASE_NAME}"] interval: 10s timeout: 5s retries: 5 restart: always volumes: pgdata: model-cache: