From 11e90b78e899f4fa7dce09bdebf469575cdb704a Mon Sep 17 00:00:00 2001 From: dado Date: Sun, 25 May 2025 08:32:15 +0200 Subject: [PATCH] update docker compose and added config backup .json --- immich/docker-compose.yml | 49 ++++----- immich/immich-config.json | 210 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 230 insertions(+), 29 deletions(-) create mode 100644 immich/immich-config.json diff --git a/immich/docker-compose.yml b/immich/docker-compose.yml index d45788a..031c13f 100644 --- a/immich/docker-compose.yml +++ b/immich/docker-compose.yml @@ -24,23 +24,23 @@ services: healthcheck: disable: false -# immich-machine-learning: -# container_name: immich_machine_learning -# # For hardware acceleration, add one of -[armnn, cuda, rocm, openvino, rknn] to the image tag. -# # Example tag: ${IMMICH_VERSION:-release}-cuda -# image: 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: cpu # set to one of [armnn, cuda, rocm, openvino, openvino-wsl, rknn] for accelerated inference - use the `-wsl` version for WSL2 where applicable -# mem_limit: 2g -# cpus: 0.1 # al max 40% cpu -# volumes: -# - model-cache:/cache -# env_file: -# - .env -# restart: always -# healthcheck: -# disable: false + immich-machine-learning: + container_name: immich_machine_learning + # For hardware acceleration, add one of -[armnn, cuda, rocm, openvino, rknn] to the image tag. + # Example tag: ${IMMICH_VERSION:-release}-cuda + image: 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: cpu # set to one of [armnn, cuda, rocm, openvino, openvino-wsl, rknn] for accelerated inference - use the `-wsl` version for WSL2 where applicable + mem_limit: 1.5g + cpus: 0.2 # al max 20% cpu + volumes: + - model-cache:/cache + env_file: + - .env + restart: always + healthcheck: + disable: false redis: container_name: immich_redis @@ -52,8 +52,8 @@ services: database: container_name: immich_postgres - image: docker.io/tensorchord/pgvecto-rs:pg14-v0.2.0@sha256:739cdd626151ff1f796dc95a6591b55a714f341c737e27f045019ceabf8e8c52 - mem_limit: 256m + image: ghcr.io/immich-app/postgres:14-vectorchord0.3.0-pgvectors0.2.0 + mem_limit: 512m environment: POSTGRES_PASSWORD: ${DB_PASSWORD} POSTGRES_USER: ${DB_USERNAME} @@ -62,15 +62,6 @@ services: 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 - healthcheck: - test: >- - pg_isready --dbname="$${POSTGRES_DB}" --username="$${POSTGRES_USER}" || exit 1; Chksum="$$(psql --dbname="$${POSTGRES_DB}" --username="$${POSTGRES_USER}" --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 - restart: always volumes: - model-cache: + model-cache: \ No newline at end of file diff --git a/immich/immich-config.json b/immich/immich-config.json new file mode 100644 index 0000000..52fa45e --- /dev/null +++ b/immich/immich-config.json @@ -0,0 +1,210 @@ +{ + "backup": { + "database": { + "cronExpression": "35 02 * * *", + "enabled": true, + "keepLastAmount": 14 + } + }, + "ffmpeg": { + "accel": "disabled", + "accelDecode": false, + "acceptedAudioCodecs": [ + "aac", + "mp3", + "libopus", + "pcm_s16le" + ], + "acceptedContainers": [ + "mov", + "ogg", + "webm" + ], + "acceptedVideoCodecs": [ + "h264" + ], + "bframes": -1, + "cqMode": "auto", + "crf": 23, + "gopSize": 0, + "maxBitrate": "0", + "preferredHwDevice": "auto", + "preset": "ultrafast", + "refs": 0, + "targetAudioCodec": "aac", + "targetResolution": "720", + "targetVideoCodec": "h264", + "temporalAQ": false, + "threads": 0, + "tonemap": "hable", + "transcode": "required", + "twoPass": false + }, + "image": { + "colorspace": "p3", + "extractEmbedded": false, + "fullsize": { + "enabled": false, + "format": "jpeg", + "quality": 80 + }, + "preview": { + "format": "jpeg", + "quality": 80, + "size": 1440 + }, + "thumbnail": { + "format": "webp", + "quality": 80, + "size": 250 + } + }, + "job": { + "backgroundTask": { + "concurrency": 5 + }, + "faceDetection": { + "concurrency": 2 + }, + "library": { + "concurrency": 5 + }, + "metadataExtraction": { + "concurrency": 5 + }, + "migration": { + "concurrency": 5 + }, + "notifications": { + "concurrency": 5 + }, + "search": { + "concurrency": 5 + }, + "sidecar": { + "concurrency": 5 + }, + "smartSearch": { + "concurrency": 2 + }, + "thumbnailGeneration": { + "concurrency": 3 + }, + "videoConversion": { + "concurrency": 1 + } + }, + "library": { + "scan": { + "cronExpression": "0 0 * * *", + "enabled": true + }, + "watch": { + "enabled": false + } + }, + "logging": { + "enabled": true, + "level": "log" + }, + "machineLearning": { + "clip": { + "enabled": true, + "modelName": "ViT-B-32__openai" + }, + "duplicateDetection": { + "enabled": true, + "maxDistance": 0.01 + }, + "enabled": false, + "facialRecognition": { + "enabled": true, + "maxDistance": 0.5, + "minFaces": 3, + "minScore": 0.7, + "modelName": "buffalo_l" + }, + "urls": [ + "http://immich-machine-learning:3003" + ] + }, + "map": { + "darkStyle": "https://tiles.immich.cloud/v1/style/dark.json", + "enabled": false, + "lightStyle": "https://tiles.immich.cloud/v1/style/light.json" + }, + "metadata": { + "faces": { + "import": true + } + }, + "newVersionCheck": { + "enabled": true + }, + "notifications": { + "smtp": { + "enabled": true, + "from": "novemila@ik.me", + "replyTo": "", + "transport": { + "host": "mail.infomaniak.com", + "ignoreCert": false, + "password": "F76X1p8QX2u08J1b8mcSkvxntrZFr0G4UB", + "port": 465, + "username": "novemila@ik.me" + } + } + }, + "oauth": { + "autoLaunch": false, + "autoRegister": true, + "buttonText": "Login with OAuth", + "clientId": "", + "clientSecret": "", + "defaultStorageQuota": 0, + "enabled": false, + "issuerUrl": "", + "mobileOverrideEnabled": false, + "mobileRedirectUri": "", + "profileSigningAlgorithm": "none", + "scope": "openid email profile", + "signingAlgorithm": "RS256", + "storageLabelClaim": "preferred_username", + "storageQuotaClaim": "immich_quota", + "timeout": 30000, + "tokenEndpointAuthMethod": "client_secret_post" + }, + "passwordLogin": { + "enabled": true + }, + "reverseGeocoding": { + "enabled": true + }, + "server": { + "externalDomain": "", + "loginPageMessage": "", + "publicUsers": true + }, + "storageTemplate": { + "enabled": true, + "hashVerificationEnabled": true, + "template": "{{y}}/{{y}}-{{MM}}-{{dd}}/{{filename}}" + }, + "templates": { + "email": { + "albumInviteTemplate": "", + "albumUpdateTemplate": "", + "welcomeTemplate": "" + } + }, + "theme": { + "customCss": "" + }, + "trash": { + "days": 15, + "enabled": true + }, + "user": { + "deleteDelay": 7 + } +} \ No newline at end of file