version: "3.8" services: immich-server: container_name: immich_server image: immich-server-dev:latest build: context: ../server dockerfile: Dockerfile target: builder command: npm run start:debug immich volumes: - ../server:/usr/src/app - ${UPLOAD_LOCATION}:/usr/src/app/upload - /usr/src/app/node_modules ports: - 3001:3001 - 9230:9230 env_file: - .env environment: - NODE_ENV=development depends_on: - redis - database - typesense immich-machine-learning: container_name: immich_machine_learning image: immich-machine-learning-dev:latest build: context: ../machine-learning dockerfile: Dockerfile command: python main.py ports: - 3003:3003 volumes: - ../machine-learning/src:/usr/src/app - ${UPLOAD_LOCATION}:/usr/src/app/upload - model-cache:/cache env_file: - .env environment: - NODE_ENV=development depends_on: - database restart: always immich-microservices: container_name: immich_microservices image: immich-microservices:latest build: context: ../server dockerfile: Dockerfile target: builder command: npm run start:debug microservices volumes: - ../server:/usr/src/app - ${UPLOAD_LOCATION}:/usr/src/app/upload - /usr/src/app/node_modules env_file: - .env ports: - 9231:9230 environment: - NODE_ENV=development depends_on: - database - immich-server - typesense immich-web: container_name: immich_web image: immich-web-dev:1.9.0 build: context: ../web dockerfile: Dockerfile target: dev command: npm run dev --host env_file: - .env environment: # Rename these values for svelte public interface - PUBLIC_IMMICH_SERVER_URL=${IMMICH_SERVER_URL} - PUBLIC_IMMICH_API_URL_EXTERNAL=${IMMICH_API_URL_EXTERNAL} ports: - 3000:3000 - 24678:24678 volumes: - ../web:/usr/src/app - /usr/src/app/node_modules restart: always depends_on: - immich-server typesense: container_name: immich_typesense image: typesense/typesense:0.24.0 environment: - TYPESENSE_API_KEY=${TYPESENSE_API_KEY} - TYPESENSE_DATA_DIR=/data logging: driver: none volumes: - tsdata:/data redis: container_name: immich_redis image: redis:6.2 database: container_name: immich_postgres image: postgres:14 env_file: - .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 ports: - 5432:5432 immich-proxy: container_name: immich_proxy image: immich-proxy-dev:latest environment: # Make sure these values get passed through from the env file - IMMICH_SERVER_URL - IMMICH_WEB_URL build: context: ../nginx dockerfile: Dockerfile ports: - 2283:8080 logging: driver: none depends_on: - immich-server restart: always volumes: pgdata: model-cache: tsdata: