services:
  immich-server:
    build:
      target: dev-container-server
    env_file: !reset []
    hostname: immich-dev
    environment:
      - IMMICH_SERVER_URL=http://127.0.0.1:2283/
    volumes: !override
      - ..:/workspaces/immich
      - ${UPLOAD_LOCATION:-upload-devcontainer-volume}${UPLOAD_LOCATION:+/photos}:/data
      - /etc/localtime:/etc/localtime:ro
      - pnpm-store:/usr/src/app/.pnpm-store
      - 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
      - ../plugins:/build/corePlugin
  immich-web:
    env_file: !reset []
  immich-machine-learning:
    env_file: !reset []
  database:
    env_file: !reset []
    environment: !override
      POSTGRES_PASSWORD: ${DB_PASSWORD-postgres}
      POSTGRES_USER: ${DB_USERNAME-postgres}
      POSTGRES_DB: ${DB_DATABASE_NAME-immich}
      POSTGRES_INITDB_ARGS: '--data-checksums'
      POSTGRES_HOST_AUTH_METHOD: md5
    volumes:
      - ${UPLOAD_LOCATION:-postgres-devcontainer-volume}${UPLOAD_LOCATION:+/postgres}:/var/lib/postgresql/data
  redis:
    env_file: !reset []
volumes:
  upload-devcontainer-volume:
  postgres-devcontainer-volume:
