diff --git a/immich/.env b/immich/.env index a0555b1..6dbe5ab 100644 --- a/immich/.env +++ b/immich/.env @@ -47,7 +47,7 @@ UPLOAD_LOCATION=/srv/immich/uploads ################################################################################### # Typesense ################################################################################### -TYPESENSE_API_KEY=a897scf-ac8c3aghjfghk-567cvhdf3odjkfg +TYPESENSE_API_KEY=a897scf-ac8c3aghjfghafwfgr44k-567cvhdf3odjkfg # TYPESENSE_ENABLED=false # TYPESENSE_URL uses base64 encoding for the nodes json. # Example JSON that was used: diff --git a/immich/docker-compose.yml b/immich/docker-compose.yml index 2b8144d..d8c17c4 100644 --- a/immich/docker-compose.yml +++ b/immich/docker-compose.yml @@ -1,119 +1,169 @@ 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-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 + immich: + image: ghcr.io/imagegenius/immich:latest + container_name: immich environment: - - TYPESENSE_API_KEY=${TYPESENSE_API_KEY} - - TYPESENSE_DATA_DIR=/data - logging: - driver: none + - PUID=1000 + - PGID=1000 + - TZ=Etc/UTC + - DB_HOSTNAME=postgres14 + - 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/tsdata:/data - restart: always + - /srv/immich/config:/config + - /srv/immich/uploads:/photos + # - path_to_libraries:/libraries #optional + ports: + - 8080: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: - 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 + image: redis + ports: + - 6379:6379 + container_name: redis +# PostgreSQL 14: + postgres14: + image: tensorchord/pgvecto-rs:pg14-v0.2.0 + ports: + - 5432:5432 + container_name: postgres14 environment: - POSTGRES_PASSWORD: ${DB_PASSWORD} - POSTGRES_USER: ${DB_USERNAME} - POSTGRES_DB: ${DB_DATABASE_NAME} - PG_DATA: /var/lib/postgresql/data + POSTGRES_USER: postgres + POSTGRES_PASSWORD: postgres + POSTGRES_DB: immich 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 # volumes: # pgdata: