# # WARNING: To install Immich, follow our guide: https://docs.immich.app/install/docker-compose # # Make sure to use the docker-compose.yml of the current release: # # https://github.com/immich-app/immich/releases/latest/download/docker-compose.yml # # The compose file on main may not be compatible with the latest release. # For development see: # - https://docs.immich.app/developer/setup # - https://docs.immich.app/developer/troubleshooting name: immich-dev services: immich-app-base: profiles: ['_base'] tmpfs: - /tmp volumes: - ..:/usr/src/app - pnpm_cache:/buildcache/pnpm_cache - server_node_modules:/usr/src/app/server/node_modules - web_node_modules:/usr/src/app/web/node_modules - github_node_modules:/usr/src/app/.github/node_modules - cli_node_modules:/usr/src/app/cli/node_modules - docs_node_modules:/usr/src/app/docs/node_modules - e2e_node_modules:/usr/src/app/e2e/node_modules - sdk_node_modules:/usr/src/app/open-api/typescript-sdk/node_modules - app_node_modules:/usr/src/app/node_modules - sveltekit:/usr/src/app/web/.svelte-kit - coverage:/usr/src/app/web/coverage immich-init: extends: service: immich-app-base profiles: !reset [] container_name: immich_init image: immich-server-dev:latest build: context: ../ dockerfile: server/Dockerfile.dev target: dev command: - | pnpm install touch /tmp/init-complete exec tail -f /dev/null volumes: - pnpm_store_server:/buildcache/pnpm-store restart: 'no' healthcheck: test: ['CMD', 'test', '-f', '/tmp/init-complete'] interval: 2s timeout: 3s retries: 300 start_period: 300s immich-server: extends: service: immich-app-base profiles: !reset [] container_name: immich_server command: ['immich-dev'] image: immich-server-dev:latest build: context: ../ dockerfile: server/Dockerfile.dev target: dev restart: unless-stopped volumes: - ${UPLOAD_LOCATION}/photos:/data - /etc/localtime:/etc/localtime:ro - pnpm_store_server:/buildcache/pnpm-store - ../plugins:/build/corePlugin env_file: - .env environment: IMMICH_REPOSITORY: immich-app/immich IMMICH_REPOSITORY_URL: https://github.com/immich-app/immich IMMICH_SOURCE_REF: local IMMICH_SOURCE_COMMIT: af2efbdbbddc27cd06142f22253ccbbbbeec1f55 IMMICH_SOURCE_URL: https://github.com/immich-app/immich/commit/af2efbdbbddc27cd06142f22253ccbbbbeec1f55 IMMICH_BUILD: '9654404849' IMMICH_BUILD_URL: https://github.com/immich-app/immich/actions/runs/9654404849 IMMICH_BUILD_IMAGE: development IMMICH_BUILD_IMAGE_URL: https://github.com/immich-app/immich/pkgs/container/immich-server IMMICH_THIRD_PARTY_SOURCE_URL: https://github.com/immich-app/immich/ IMMICH_THIRD_PARTY_BUG_FEATURE_URL: https://github.com/immich-app/immich/issues IMMICH_THIRD_PARTY_DOCUMENTATION_URL: https://docs.immich.app IMMICH_THIRD_PARTY_SUPPORT_URL: https://docs.immich.app/community-guides ports: - 9230:9230 - 9231:9231 - 2283:2283 depends_on: immich-init: condition: service_healthy redis: condition: service_started database: condition: service_started healthcheck: disable: false immich-web: extends: service: immich-app-base profiles: !reset [] container_name: immich_web image: immich-web-dev:latest build: context: ../ dockerfile: server/Dockerfile.dev target: dev command: ['immich-web'] env_file: - .env ports: - 3000:3000 - 24678:24678 volumes: - pnpm_store_web:/buildcache/pnpm-store restart: unless-stopped depends_on: immich-init: condition: service_healthy immich-server: condition: service_started immich-machine-learning: container_name: immich_machine_learning image: immich-machine-learning-dev:latest # extends: # file: hwaccel.ml.yml # service: cpu # set to one of [armnn, cuda, rocm, openvino, openvino-wsl, rknn] for accelerated inference build: context: ../machine-learning dockerfile: Dockerfile args: - DEVICE=cpu # set to one of [armnn, cuda, rocm, openvino, openvino-wsl, rknn] for accelerated inference ports: - 3003:3003 volumes: - ../machine-learning/immich_ml:/usr/src/immich_ml - model_cache:/cache env_file: - .env depends_on: - database restart: unless-stopped healthcheck: disable: false redis: container_name: immich_redis image: docker.io/valkey/valkey:9@sha256:930b41430fb727f533c5982fe509b6f04233e26d0f7354e04de4b0d5c706e44e healthcheck: test: redis-cli ping || exit 1 database: container_name: immich_postgres image: ghcr.io/immich-app/postgres:14-vectorchord0.4.3-pgvectors0.2.0@sha256:bcf63357191b76a916ae5eb93464d65c07511da41e3bf7a8416db519b40b1c23 env_file: - .env environment: POSTGRES_PASSWORD: ${DB_PASSWORD} POSTGRES_USER: ${DB_USERNAME} POSTGRES_DB: ${DB_DATABASE_NAME} POSTGRES_INITDB_ARGS: '--data-checksums' volumes: - ${UPLOAD_LOCATION}/postgres:/var/lib/postgresql/data ports: - 5432:5432 shm_size: 128mb healthcheck: disable: false # set IMMICH_TELEMETRY_INCLUDE=all in .env to enable metrics # immich-prometheus: # container_name: immich_prometheus # ports: # - 9090:9090 # image: prom/prometheus # volumes: # - ./prometheus.yml:/etc/prometheus/prometheus.yml # - prometheus_data:/prometheus # first login uses admin/admin # add data source for http://immich-prometheus:9090 to get started # immich-grafana: # container_name: immich_grafana # command: ['./run.sh', '-disable-reporting'] # ports: # - 3000:3000 # image: grafana/grafana:10.3.3-ubuntu # volumes: # - grafana_data:/var/lib/grafana volumes: model_cache: prometheus_data: grafana_data: pnpm_cache: pnpm_store_server: pnpm_store_web: server_node_modules: web_node_modules: github_node_modules: cli_node_modules: docs_node_modules: e2e_node_modules: sdk_node_modules: app_node_modules: sveltekit: coverage: