version: "3.8" # services: # immich-server: # networks: # - traefik # container_name: immich_server # image: ghcr.io/immich-app/immich-server:latest # entrypoint: ["/bin/sh", "./start-server.sh"] # volumes: # - ${UPLOAD_LOCATION}:/usr/src/app/upload # env_file: # - .env # depends_on: # - redis # - database # - typesense # restart: always # immich-microservices: # networks: # - traefik # container_name: immich_microservices # image: ghcr.io/immich-app/immich-server:latest # entrypoint: ["/bin/sh", "./start-microservices.sh"] # volumes: # - ${UPLOAD_LOCATION}:/usr/src/app/upload # env_file: # - .env # depends_on: # - redis # - database # - typesense # restart: always # immich-machine-learning: # networks: # - traefik # container_name: immich_machine_learning # image: ghcr.io/immich-app/immich-machine-learning:latest # volumes: # - ${UPLOAD_LOCATION}:/usr/src/app/upload # - /srv/immich/model-cache:/cache # env_file: # - .env # restart: always # immich-web: # networks: # - traefik # container_name: immich_web # image: ghcr.io/immich-app/immich-web:latest # entrypoint: ["/bin/sh", "./entrypoint.sh"] # env_file: # - .env # restart: always # labels: # - traefik.enable=true # - "traefik.http.routers.imm.entrypoints=websecure" # - "traefik.http.routers.imm.rule=Host(`imm.$DOMAIN_NAME`)" # - "traefik.http.routers.imm.tls.certresolver=letsencr" # # - "traefik.http.services.imm.loadbalancer.server.port=32400" # typesense: # networks: # - traefik # 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: # - /srv/immich/tsdata:/data # restart: always # redis: # container_name: immich_redis # image: redis:6.2 # networks: # - traefik # restart: always # database: # networks: # - traefik # 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: # - /srv/immich/pgdata:/var/lib/postgresql/data # restart: always # immich-proxy: # networks: # - traefik # container_name: immich_proxy # image: ghcr.io/immich-app/immich-proxy:release # environment: # # Make sure these values get passed through from the env file # - IMMICH_SERVER_URL # - IMMICH_WEB_URL # ports: # - 2283:8080 # logging: # driver: none # depends_on: # - immich-server # restart: always services: immich: image: ghcr.io/imagegenius/immich:latest container_name: immich networks: - traefik labels: - traefik.enable=true - "traefik.http.routers.imm.entrypoints=websecure" - "traefik.http.routers.imm.rule=Host(`imm.$DOMAIN_NAME`)" - "traefik.http.routers.imm.tls.certresolver=letsencr" - "traefik.http.services.imm.loadbalancer.server.port=7878" environment: - PUID=1000 - PGID=1000 - TZ=Etc/UTC - DB_HOSTNAME=database - DB_USERNAME=postgres - DB_PASSWORD=a897scf-ac8c3aghjfghafwfgr44k-567cvhdf3odjkfg - DB_DATABASE_NAME=immich - REDIS_HOSTNAME=redis # - DB_PORT=5432 #optional # - REDIS_PORT=6379 #optional # - REDIS_PASSWORD= #optional # - MACHINE_LEARNING_HOST=0.0.0.0 #optional # - MACHINE_LEARNING_PORT=3003 #optional # - MACHINE_LEARNING_WORKERS=1 #optional # - MACHINE_LEARNING_WORKER_TIMEOUT=120 #optional volumes: - /srv/immich/config:/config - /srv/immich/uploads:/photos # - path_to_libraries:/libraries #optional ports: - 7878:8080 restart: unless-stopped # This container requires an external application to be run separately. # By default, ports for the databases are opened, be careful when deploying it # Redis: redis: networks: - traefik image: redis ports: - 6379:6379 container_name: redis # PostgreSQL 14: database: image: tensorchord/pgvecto-rs:pg14-v0.2.0 ports: - 5432:5432 container_name: database networks: - traefik environment: POSTGRES_USER: postgres POSTGRES_PASSWORD: a897scf-ac8c3aghjfghafwfgr44k-567cvhdf3odjkfg POSTGRES_DB: immich volumes: - /srv/immich/pgdata:/var/lib/postgresql/data # volumes: # pgdata: # model-cache: # tsdata: networks: traefik: external: true