diff --git a/immich/docker-compose.yml b/immich/docker-compose.yml index 4d241c8..b6b5717 100644 --- a/immich/docker-compose.yml +++ b/immich/docker-compose.yml @@ -1,106 +1,84 @@ -# -# WARNING: Make sure to use the docker-compose.yml of the current release: -# -# https://github.com/immich-app/immich/releases/latest/download/docker-compose.yml -# -# The compose file on main may not be compatible with the latest release. -# - name: immich - services: - immich-server: - container_name: immich_server - image: ${DOCKER_REGISTRY:-}ghcr.io/immich-app/immich-server:${IMMICH_VERSION:-release} - extends: - file: hwaccel.transcoding.yml - #service: vaapi # set to one of [nvenc, quicksync, rkmpp, vaapi, vaapi-wsl] for accelerated transcoding - service: ${HW_MODE1:-cpu} - volumes: - # Do not edit the next line. If you want to change the media storage location on your system, edit the value of UPLOAD_LOCATION in the .env file - - /share/docker_data/immich/library:/usr/src/app/upload - - /media/nas/nas-photo:/mnt/photos2 - - /etc/localtime:/etc/localtime:ro - env_file: - - stack.env - ports: - - '2283:2283' - depends_on: - - redis - - database - restart: ${RESTART:-unless-stopped} - healthcheck: - disable: false - labels: - - homepage.group=Media - - homepage.name=Immich - - homepage.icon=${APPNAME}.png - - homepage.href=https://${APPNAME}.sectorq.eu - - homepage.description=Photo server - - homepage.server=my-docker - - homepage.container=immich_server - - homepage.widget.type=${APPNAME} - - homepage.widget.url=https://${APPNAME}.sectorq.eu - - homepage.widget.key=wVxjlztA8MpeuzKkNGCSUPK2WjAY55qq4cfs9Zr5opU - - homepage.widget.version=2 - # - homepage.widget.fields=["field1","field2"] # optional - - immich-machine-learning: - container_name: immich_machine_learning - # For hardware acceleration, add one of -[armnn, cuda, openvino] to the image tag. - # Example tag: ${IMMICH_VERSION:-release}-cuda - image: ${DOCKER_REGISTRY:-}ghcr.io/immich-app/immich-machine-learning:${IMMICH_VERSION:-release} - extends: # uncomment this section for hardware acceleration - see https://immich.app/docs/features/ml-hardware-acceleration - file: hwaccel.ml.yml - #service: openvino # set to one of [armnn, cuda, openvino, openvino-wsl] for accelerated inference - use the `-wsl` version for WSL2 where applicable - service: ${HW_MODE2:-cpu} - volumes: - - model-cache:/cache - env_file: - - stack.env - - restart: ${RESTART:-unless-stopped} - healthcheck: - disable: false - - redis: - container_name: immich_redis - image: ${DOCKER_REGISTRY:-}docker.io/redis:6.2-alpine - healthcheck: - test: redis-cli ping || exit 1 - restart: ${RESTART:-unless-stopped} - database: + command: postgres -c shared_preload_libraries=vectors.so -c 'search_path="$$user", + public, vectors' -c logging_collector=on -c max_wal_size=2GB -c shared_buffers=512MB + -c wal_compression=on container_name: immich_postgres - image: ${DOCKER_REGISTRY:-}docker.io/tensorchord/pgvecto-rs:pg14-v0.2.0 env_file: - - stack.env + - stack.env environment: - - POSTGRES_INITDB_ARGS: '--data-checksums' - volumes: - # Do not edit the next line. If you want to change the database storage location on your system, edit the value of DB_DATA_LOCATION in the .env file - #- ${DB_DATA_LOCATION}:/var/lib/postgresql/data - - /share/docker_data/immich/db:/var/lib/postgresql/data + POSTGRES_INITDB_ARGS: --data-checksums healthcheck: - test: >- - pg_isready --dbname="$${DB_PASSWORD}" --username="$${DB_USERNAME}" || exit 1; - Chksum="$$(psql --dbname="$${DB_DATABASE_NAME}" --username="$${DB_USERNAME}" --tuples-only --no-align - --command='SELECT COALESCE(SUM(checksum_failures), 0) FROM pg_stat_database')"; - echo "checksum failure count is $$Chksum"; - [ "$$Chksum" = '0' ] || exit 1 interval: 5m start_interval: 30s start_period: 5m - command: >- - postgres - -c shared_preload_libraries=vectors.so - -c 'search_path="$$user", public, vectors' - -c logging_collector=on - -c max_wal_size=2GB - -c shared_buffers=512MB - -c wal_compression=on + test: pg_isready --dbname="$${DB_PASSWORD}" --username="$${DB_USERNAME}" || + exit 1; Chksum="$$(psql --dbname="$${DB_DATABASE_NAME}" --username="$${DB_USERNAME}" + --tuples-only --no-align --command='SELECT COALESCE(SUM(checksum_failures), + 0) FROM pg_stat_database')"; echo "checksum failure count is $$Chksum"; [ + "$$Chksum" = '0' ] || exit 1 + image: ${DOCKER_REGISTRY:-}docker.io/tensorchord/pgvecto-rs:pg14-v0.2.0 + labels: + wud.watch.digest: true + restart: ${RESTART:-unless-stopped} + volumes: + - /share/docker_data/immich/db:/var/lib/postgresql/data + immich-machine-learning: + container_name: immich_machine_learning + env_file: + - stack.env + extends: + file: hwaccel.ml.yml + service: ${HW_MODE2:-cpu} + healthcheck: + disable: false + image: ${DOCKER_REGISTRY:-}ghcr.io/immich-app/immich-machine-learning:${IMMICH_VERSION:-release} + labels: + wud.watch.digest: true + restart: ${RESTART:-unless-stopped} + volumes: + - model-cache:/cache + immich-server: + container_name: immich_server + depends_on: + - redis + - database + env_file: + - stack.env + extends: + file: hwaccel.transcoding.yml + service: ${HW_MODE1:-cpu} + healthcheck: + disable: false + image: ${DOCKER_REGISTRY:-}ghcr.io/immich-app/immich-server:${IMMICH_VERSION:-release} + labels: + homepage.container: immich_server + homepage.description: Photo server + homepage.group: Media + homepage.href: https://${APPNAME}.sectorq.eu + homepage.icon: ${APPNAME}.png + homepage.name: Immich + homepage.server: my-docker + homepage.widget.key: wVxjlztA8MpeuzKkNGCSUPK2WjAY55qq4cfs9Zr5opU + homepage.widget.type: ${APPNAME} + homepage.widget.url: https://${APPNAME}.sectorq.eu + homepage.widget.version: '2' + wud.watch.digest: true + ports: + - 2283:2283 + restart: ${RESTART:-unless-stopped} + volumes: + - /share/docker_data/immich/library:/usr/src/app/upload + - /media/nas/nas-photo:/mnt/photos2 + - /etc/localtime:/etc/localtime:ro + redis: + container_name: immich_redis + healthcheck: + test: redis-cli ping || exit 1 + image: ${DOCKER_REGISTRY:-}docker.io/redis:6.2-alpine + labels: + wud.watch.digest: true restart: ${RESTART:-unless-stopped} - volumes: - model-cache: + model-cache: null