| 
									
										
										
										
											2024-02-23 06:57:10 +00:00
										 |  |  | version: "3.7"
 | 
					
						
							| 
									
										
										
										
											2022-09-11 10:52:06 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | services:
 | 
					
						
							| 
									
										
										
										
											2022-10-13 21:06:59 +00:00
										 |  |  |   immich:
 | 
					
						
							|  |  |  |     container_name: immich
 | 
					
						
							| 
									
										
										
										
											2024-06-13 16:02:25 +00:00
										 |  |  |     image: ghcr.io/immich-app/immich-server:v1.106.4
 | 
					
						
							| 
									
										
										
										
											2023-11-21 21:05:18 +00:00
										 |  |  |     volumes:
 | 
					
						
							|  |  |  |       - ${ROOT_FOLDER_HOST}/media/data/images/immich:/usr/src/app/upload
 | 
					
						
							|  |  |  |     environment:
 | 
					
						
							|  |  |  |       - NODE_ENV=production
 | 
					
						
							|  |  |  |       - DB_HOSTNAME=immich-db
 | 
					
						
							|  |  |  |       - DB_USERNAME=tipi
 | 
					
						
							|  |  |  |       - DB_PASSWORD=${DB_PASSWORD}
 | 
					
						
							|  |  |  |       - ENABLE_MAPBOX=false
 | 
					
						
							|  |  |  |       - DB_DATABASE_NAME=immich
 | 
					
						
							|  |  |  |       - REDIS_HOSTNAME=immich-redis
 | 
					
						
							|  |  |  |       - JWT_SECRET=${JWT_SECRET}
 | 
					
						
							| 
									
										
										
										
											2022-10-13 21:06:59 +00:00
										 |  |  |     depends_on:
 | 
					
						
							| 
									
										
										
										
											2023-11-21 21:05:18 +00:00
										 |  |  |       - immich-redis
 | 
					
						
							|  |  |  |       - immich-db
 | 
					
						
							|  |  |  |     ports:
 | 
					
						
							|  |  |  |       - ${APP_PORT}:3001
 | 
					
						
							| 
									
										
										
										
											2022-10-13 21:06:59 +00:00
										 |  |  |     restart: unless-stopped
 | 
					
						
							|  |  |  |     networks:
 | 
					
						
							|  |  |  |       - tipi_main_network
 | 
					
						
							|  |  |  |     labels:
 | 
					
						
							| 
									
										
										
										
											2023-06-10 15:29:03 +00:00
										 |  |  |       # Main
 | 
					
						
							|  |  |  |       traefik.enable: true
 | 
					
						
							|  |  |  |       traefik.http.middlewares.immich-web-redirect.redirectscheme.scheme: https
 | 
					
						
							| 
									
										
										
										
											2023-11-21 21:05:18 +00:00
										 |  |  |       traefik.http.services.immich.loadbalancer.server.port: 3001
 | 
					
						
							| 
									
										
										
										
											2023-06-10 15:29:03 +00:00
										 |  |  |       # Web
 | 
					
						
							|  |  |  |       traefik.http.routers.immich-insecure.rule: Host(`${APP_DOMAIN}`)
 | 
					
						
							|  |  |  |       traefik.http.routers.immich-insecure.entrypoints: web
 | 
					
						
							|  |  |  |       traefik.http.routers.immich-insecure.service: immich
 | 
					
						
							|  |  |  |       traefik.http.routers.immich-insecure.middlewares: immich-web-redirect
 | 
					
						
							|  |  |  |       # Websecure
 | 
					
						
							| 
									
										
										
										
											2022-10-13 21:06:59 +00:00
										 |  |  |       traefik.http.routers.immich.rule: Host(`${APP_DOMAIN}`)
 | 
					
						
							|  |  |  |       traefik.http.routers.immich.entrypoints: websecure
 | 
					
						
							|  |  |  |       traefik.http.routers.immich.service: immich
 | 
					
						
							|  |  |  |       traefik.http.routers.immich.tls.certresolver: myresolver
 | 
					
						
							| 
									
										
										
										
											2023-06-10 15:29:03 +00:00
										 |  |  |       # Local domain
 | 
					
						
							|  |  |  |       traefik.http.routers.immich-local-insecure.rule: Host(`immich.${LOCAL_DOMAIN}`)
 | 
					
						
							|  |  |  |       traefik.http.routers.immich-local-insecure.entrypoints: web
 | 
					
						
							|  |  |  |       traefik.http.routers.immich-local-insecure.service: immich
 | 
					
						
							|  |  |  |       traefik.http.routers.immich-local-insecure.middlewares: immich-web-redirect
 | 
					
						
							|  |  |  |       # Local domain secure
 | 
					
						
							|  |  |  |       traefik.http.routers.immich-local.rule: Host(`immich.${LOCAL_DOMAIN}`)
 | 
					
						
							|  |  |  |       traefik.http.routers.immich-local.entrypoints: websecure
 | 
					
						
							|  |  |  |       traefik.http.routers.immich-local.service: immich
 | 
					
						
							|  |  |  |       traefik.http.routers.immich-local.tls: true
 | 
					
						
							| 
									
										
										
										
											2022-10-13 21:06:59 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-09-11 10:52:06 +00:00
										 |  |  |   immich-machine-learning:
 | 
					
						
							| 
									
										
										
										
											2022-09-24 15:10:02 +00:00
										 |  |  |     container_name: immich-machine-learning
 | 
					
						
							| 
									
										
										
										
											2024-06-13 15:59:12 +00:00
										 |  |  |     image: ghcr.io/immich-app/immich-machine-learning:v1.106.4
 | 
					
						
							| 
									
										
										
										
											2022-09-11 10:52:06 +00:00
										 |  |  |     volumes:
 | 
					
						
							| 
									
										
										
										
											2022-09-24 16:09:54 +00:00
										 |  |  |       - ${ROOT_FOLDER_HOST}/media/data/images/immich:/usr/src/app/upload
 | 
					
						
							| 
									
										
										
										
											2023-03-27 00:39:32 +00:00
										 |  |  |       - ${APP_DATA_DIR}/data/immich-ml-cache:/cache
 | 
					
						
							| 
									
										
										
										
											2022-09-11 10:52:06 +00:00
										 |  |  |     environment:
 | 
					
						
							|  |  |  |       - NODE_ENV=production
 | 
					
						
							| 
									
										
										
										
											2022-09-24 15:10:02 +00:00
										 |  |  |       - DB_HOSTNAME=immich-db
 | 
					
						
							| 
									
										
										
										
											2022-09-11 10:52:06 +00:00
										 |  |  |       - DB_USERNAME=tipi
 | 
					
						
							|  |  |  |       - DB_PASSWORD=${DB_PASSWORD}
 | 
					
						
							|  |  |  |       - DB_NAME=immich
 | 
					
						
							| 
									
										
										
										
											2022-09-24 15:10:02 +00:00
										 |  |  |       - DB_DATABASE_NAME=immich
 | 
					
						
							| 
									
										
										
										
											2022-09-11 10:52:06 +00:00
										 |  |  |     depends_on:
 | 
					
						
							|  |  |  |       - immich-db
 | 
					
						
							|  |  |  |     restart: unless-stopped
 | 
					
						
							|  |  |  |     networks:
 | 
					
						
							|  |  |  |       - tipi_main_network
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   immich-redis:
 | 
					
						
							|  |  |  |     container_name: immich-redis
 | 
					
						
							|  |  |  |     image: redis:6.2
 | 
					
						
							|  |  |  |     restart: unless-stopped
 | 
					
						
							|  |  |  |     networks:
 | 
					
						
							|  |  |  |       - tipi_main_network
 | 
					
						
							| 
									
										
										
										
											2024-06-13 05:08:28 +00:00
										 |  |  |     healthcheck:
 | 
					
						
							|  |  |  |       test: redis-cli ping || exit 1
 | 
					
						
							| 
									
										
										
										
											2022-09-11 10:52:06 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |   immich-db:
 | 
					
						
							|  |  |  |     container_name: immich-db
 | 
					
						
							| 
									
										
										
										
											2024-02-23 06:57:10 +00:00
										 |  |  |     image: tensorchord/pgvecto-rs:pg14-v0.2.0@sha256:90724186f0a3517cf6914295b5ab410db9ce23190a2d9d0b9dd6463e3fa298f0
 | 
					
						
							| 
									
										
										
										
											2022-09-11 10:52:06 +00:00
										 |  |  |     environment:
 | 
					
						
							|  |  |  |       POSTGRES_PASSWORD: ${DB_PASSWORD}
 | 
					
						
							|  |  |  |       POSTGRES_USER: tipi
 | 
					
						
							|  |  |  |       POSTGRES_DB: immich
 | 
					
						
							|  |  |  |       PG_DATA: /var/lib/postgresql/data
 | 
					
						
							|  |  |  |     volumes:
 | 
					
						
							|  |  |  |       - ${APP_DATA_DIR}/data/db:/var/lib/postgresql/data
 | 
					
						
							|  |  |  |     restart: unless-stopped
 | 
					
						
							|  |  |  |     networks:
 | 
					
						
							|  |  |  |       - tipi_main_network
 | 
					
						
							| 
									
										
										
										
											2024-06-13 05:08:28 +00:00
										 |  |  |     healthcheck:
 | 
					
						
							|  |  |  |       test: pg_isready --dbname='${DB_DATABASE_NAME}' || 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"]
 |