diff --git a/projects/immich/docker-compose.yml b/projects/immich/docker-compose.yml new file mode 100644 index 0000000..cdd3119 --- /dev/null +++ b/projects/immich/docker-compose.yml @@ -0,0 +1,107 @@ +version: "3.9" + +services: + immich-server: + image: ghcr.io/immich-app/immich-server:v2.1.0 + + volumes: + - immich-library:/usr/src/app/upload + - /etc/localtime:/etc/localtime:ro + depends_on: + immich-redis: + condition: service_healthy + immich-database: + condition: service_healthy + environment: + PORT: 2283 + SERVER_URL: ${SERVER_URL} + FRONT_BASE_URL: ${FRONT_BASE_URL} + # Database Configuration + DB_HOSTNAME: ${DB_HOSTNAME} + DB_PORT: ${DB_PORT} + DB_USERNAME: ${DB_USERNAME} + DB_PASSWORD: ${DB_PASSWORD} + DB_DATABASE_NAME: ${DB_DATABASE_NAME} + # Redis Configuration + REDIS_HOSTNAME: ${REDIS_HOSTNAME} + REDIS_PORT: ${REDIS_PORT} + REDIS_DBINDEX: ${REDIS_DBINDEX} + # Server Configuration + TZ: ${TZ} + restart: always + healthcheck: + test: ["CMD", "curl", "-f", "http://localhost:2283/server-info/ping"] + interval: 30s + timeout: 10s + retries: 3 + + immich-machine-learning: + image: ghcr.io/immich-app/immich-machine-learning:v2.1.0 + + volumes: + - immich-model-cache:/cache + environment: + REDIS_HOSTNAME: ${REDIS_HOSTNAME} + REDIS_PORT: ${REDIS_PORT} + REDIS_DBINDEX: ${REDIS_DBINDEX} + restart: always + healthcheck: + test: ["CMD", "curl", "-f", "http://localhost:3003/ping"] + interval: 30s + timeout: 10s + retries: 3 + + immich-redis: + image: redis:6.2-alpine + + volumes: + - immich-redis-data:/data + healthcheck: + test: ["CMD", "redis-cli", "ping"] + interval: 10s + timeout: 5s + retries: 5 + restart: always + + immich-database: + image: tensorchord/pgvecto-rs:pg14-v0.3.0 + + volumes: + - immich-postgres:/var/lib/postgresql/data + environment: + POSTGRES_PASSWORD: ${DB_PASSWORD} + POSTGRES_USER: ${DB_USERNAME} + POSTGRES_DB: immich + POSTGRES_INITDB_ARGS: '--data-checksums' + healthcheck: + test: pg_isready -U ${DB_USERNAME} -d immich || exit 1 + interval: 10s + timeout: 5s + retries: 5 + 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 + +networks: + dokploy-network: + external: true + +volumes: + immich-model-cache: + immich-postgres: + immich-library: + immich-redis-data: