From cb7f4397c4cb72541d1a56a362a89625d6973d11 Mon Sep 17 00:00:00 2001 From: Atridad Lahiji Date: Mon, 12 Aug 2024 15:24:25 -0600 Subject: [PATCH] Added Immich --- README.md | 3 ++- compose/immich.yml | 57 ++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 59 insertions(+), 1 deletion(-) create mode 100644 compose/immich.yml diff --git a/README.md b/README.md index 2f3257d..2f12054 100644 --- a/README.md +++ b/README.md @@ -4,4 +4,5 @@ A collection of scripts and docker-compose files for my homelab. ## Compose Files - media.yml - A full UseNet-based media stack using Plex, Sonarr, Radarr, and Sabnzbd - minecraft.yml - A Minecraft server container that can be configured to use different ports, seeds, and server types -- git.yml - A forgejo instance with a Forgejo runner hooked up \ No newline at end of file +- git.yml - A forgejo instance with a Forgejo runner hooked up +- immich.yml - An image server for image syncing and sharing, similar to google photos \ No newline at end of file diff --git a/compose/immich.yml b/compose/immich.yml new file mode 100644 index 0000000..8b0d0b3 --- /dev/null +++ b/compose/immich.yml @@ -0,0 +1,57 @@ +version: "3.7" + +name: immich + +services: + immich-server: + container_name: immich_server + image: ghcr.io/immich-app/immich-server:${IMMICH_VERSION:-release} + volumes: + - ${UPLOAD_LOCATION}:/usr/src/app/upload + - /etc/localtime:/etc/localtime:ro + env_file: + - stack.env + ports: + - 2283:3001 + depends_on: + - redis + - database + restart: always + + immich-machine-learning: + container_name: immich_machine_learning + + image: ghcr.io/immich-app/immich-machine-learning:${IMMICH_VERSION:-release} + volumes: + - model-cache:/cache + env_file: + - stack.env + restart: always + + redis: + container_name: immich_redis + image: docker.io/redis:6.2-alpine@sha256:e3b17ba9479deec4b7d1eeec1548a253acc5374d68d3b27937fcfe4df8d18c7e + healthcheck: + test: redis-cli ping || exit 1 + restart: always + + database: + container_name: immich_postgres + image: docker.io/tensorchord/pgvecto-rs:pg14-v0.2.0@sha256:90724186f0a3517cf6914295b5ab410db9ce23190a2d9d0b9dd6463e3fa298f0 + environment: + POSTGRES_PASSWORD: ${DB_PASSWORD} + POSTGRES_USER: ${DB_USERNAME} + POSTGRES_DB: ${DB_DATABASE_NAME} + POSTGRES_INITDB_ARGS: '--data-checksums' + volumes: + - ${DB_DATA_LOCATION}:/var/lib/postgresql/data + healthcheck: + test: pg_isready --dbname='${DB_DATABASE_NAME}' --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"] + restart: always + +volumes: + model-cache: