hunk.code_window:   access_log off;
     client_max_body_size 50000M;
     # Compression
     gzip off;
     gzip_comp_level 2;
     gzip_min_length 1000;
     gzip_proxied any;
     gzip_vary on;
     gunzip on;
  
hunk.labels: keep keep keep keep replace keep keep keep keep keep
hunk.after_edit:   gzip on;
  
hunk.file_path: nginx/templates/default.conf.template
hunk.type: replace
file: 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:
  