Immich replaces Google Photos with a self-hosted gallery featuring local network syncing, facial recognition, and zero monthly cloud storage fees.
Google Photos charges recurring monthly fees as media libraries grow and throttles viewing behind internet bandwidth. Immich moves that entire photo and video library onto personal hardware, syncing mobile cameras at local network speeds without subscription paywalls. The platform pairs a self-hosted backend with polished mobile applications to organize family albums, facial clusters, and searchable memories.
Commercial photo clouds offload thumbnail rendering and video playback to remote data centers, introducing latency when scrolling through decades of recordings over home Wi-Fi. Immich processes media on local hardware using hardware-accelerated transcoding through Intel Quick Sync, NVIDIA NVENC, or VAAPI alongside local machine learning models. Camera roll uploads transfer across home Wi-Fi in seconds rather than queueing through metered broadband links. Timeline scrubbing displays cached previews immediately because requests never leave your private subnet.
Immich matches core cloud conveniences with automated camera roll synchronization, partner sharing, and facial grouping, but the operational model is fundamentally different. Google Photos provides managed storage redundancy where hardware maintenance and multi-region backups happen behind the scenes. Running Immich means taking ownership of physical storage drives and offsite backup routines. Accessing the server away from home requires configuring a reverse proxy or private VPN. For households willing to run personal hardware, Immich delivers local gallery performance without monthly storage fees.
Immich vs Google Photos — which should I choose? Google Photos fits users who want zero-maintenance cloud storage with automatic offsite redundancy. Immich is the right choice for households that prefer local network speeds, zero subscription fees, and complete privacy on personal hardware.
Is Immich free to use? Yes. Immich is free to self-host without feature paywalls or account limits, though optional personal licenses exist to support project development.
Can Immich automatically back up photos from iPhone and Android devices? Yes. Mobile apps for iOS and Android support background camera roll uploads, selective album synchronization, and Wi-Fi-only upload rules.
Immich is the premier self-hosted alternative for households ready to trade cloud storage fees for local control; it is not suited for anyone seeking a zero-maintenance service without personal backup responsibilities. Active maintenance with commits in September 2026 and an AGPL-3.0 license guarantee that this high-performance photo manager remains transparent and independent of proprietary lock-in.
We started this exact setup from scratch in a clean Linux machine on Nov 1, 2026 and checked it through Immich's own API: every check passed. Recipes are re-checked regularly and removed if they stop working.
mkdir -p immich && cd immich
curl -fsSL https://open-source.store/tools/immich/compose.yml -o compose.ymlcat > .env <<EOF
UPLOAD_LOCATION=./library
DB_DATA_LOCATION=./postgres
IMMICH_VERSION=v3.3.5
DB_PASSWORD=$(openssl rand -hex 12)
DB_USERNAME=postgres
DB_DATABASE_NAME=immich
IMMICH_MACHINE_LEARNING_ENABLED=false
EOFUPLOAD_LOCATION — Folder next to compose.yml where photos and videos are stored.DB_DATA_LOCATION — Folder next to compose.yml where the database files are stored.IMMICH_VERSION — Immich image tag.DB_PASSWORD — Password of the bundled PostgreSQL database (letters and digits only). Generated above; keep it secret.DB_USERNAME — PostgreSQL user.DB_DATABASE_NAME — PostgreSQL database name.IMMICH_MACHINE_LEARNING_ENABLED — Machine learning (smart search, faces) is off because its container is not included; add it back and set true on bigger servers.docker compose up -dname: immich
services:
immich-server:
container_name: immich_server
image: ghcr.io/immich-app/immich-server:${IMMICH_VERSION}
volumes:
- ${UPLOAD_LOCATION}:/data
env_file:
- .env
ports:
- '2283:2283'
depends_on:
- redis
- database
restart: always
healthcheck:
disable: false
redis:
container_name: immich_redis
image: docker.io/valkey/valkey:9@sha256:c123e3715db63d06d4ad6964884037aa0d5d4d703939b9929954112889708e1d
healthcheck:
test: redis-cli ping | grep -q PONG || exit 1
restart: always
database:
container_name: immich_postgres
image: ghcr.io/immich-app/postgres:14-vectorchord0.4.3-pgvectors0.2.0@sha256:bcf63357191b76a916ae5eb93464d65c07511da41e3bf7a8416db519b40b1c23
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
shm_size: 128mb
restart: always
healthcheck:
disable: false
Lint, codegen, breaking-change checks and dependency management in one Git-native CLI. Open source, no registry lock-in.
Show that Immich is listed as an open-source alternative. Paste into your README:
Ubuntu 24.04 · Apple container, Docker 29.1.3, Compose 2.40.3+ds1-0ubuntu1~24.04.1. Images pulled in 171 s: docker.io/valkey/valkey:9@sha256:c123e3715db63d06d4ad6964884037aa0d5d4d703939b9929954112889708e1d, ghcr.io/immich-app/postgres:14-vectorchord0.4.3-pgvectors0.2.0@sha256:bcf63357191b76a916ae5eb93464d65c07511da41e3bf7a8416db519b40b1c23, ghcr.io/immich-app/immich-server:v3.3.5.
Based on the upstream setup. Official release compose and example.env without the immich-machine-learning service (IMMICH_MACHINE_LEARNING_ENABLED=false, so no smart search or face recognition) and without the /etc/localtime host mount; IMMICH_VERSION pinned to v3.3.5.
immich_server | 2026-11-01T01:49:44.539759801Z [Nest] 25 - 11/01/2026, 1:49:44 AM LOG [Api:RoutesResolver] TrashController {/api/trash}:
immich_server | 2026-11-01T01:49:44.539769551Z [Nest] 25 - 11/01/2026, 1:49:44 AM LOG [Api:RouterExplorer] Mapped {/api/trash/empty, POST} route
immich_server | 2026-11-01T01:49:44.539778676Z [Nest] 25 - 11/01/2026, 1:49:44 AM LOG [Api:RouterExplorer] Mapped {/api/trash/restore, POST} route
immich_server | 2026-11-01T01:49:44.539787259Z [Nest] 25 - 11/01/2026, 1:49:44 AM LOG [Api:RouterExplorer] Mapped {/api/trash/restore/assets, POST} route
immich_server | 2026-11-01T01:49:44.539795967Z [Nest] 25 - 11/01/2026, 1:49:44 AM LOG [Api:RoutesResolver] UserAdminController {/api/admin/users}:
immich_server | 2026-11-01T01:49:44.539804634Z [Nest] 25 - 11/01/2026, 1:49:44 AM LOG [Api:RouterExplorer] Mapped {/api/admin/users, GET} route
immich_server | 2026-11-01T01:49:44.539817217Z [Nest] 25 - 11/01/2026, 1:49:44 AM LOG [Api:RouterExplorer] Mapped {/api/admin/users, POST} route
immich_server | 2026-11-01T01:49:44.539819259Z [Nest] 25 - 11/01/2026, 1:49:44 AM LOG [Api:RouterExplorer] Mapped {/api/admin/users/:id, GET} route
immich_server | 2026-11-01T01:49:44.539832426Z [Nest] 25 - 11/01/2026, 1:49:44 AM LOG [Api:RouterExplorer] Mapped {/api/admin/users/:id, PUT} route
immich_server | 2026-11-01T01:49:44.539841217Z [Nest] 25 - 11/01/2026, 1:49:44 AM LOG [Api:RouterExplorer] Mapped {/api/admin/users/:id, PATCH} route
immich_server | 2026-11-01T01:49:44.539849801Z [Nest] 25 - 11/01/2026, 1:49:44 AM LOG [Api:RouterExplorer] Mapped {/api/admin/users/:id, DELETE} route
immich_server | 2026-11-01T01:49:44.539858259Z [Nest] 25 - 11/01/2026, 1:49:44 AM LOG [Api:RouterExplorer] Mapped {/api/admin/users/:id/calendar-heatmap, GET} route
immich_server | 2026-11-01T01:49:44.539866759Z [Nest] 25 - 11/01/2026, 1:49:44 AM LOG [Api:RouterExplorer] Mapped {/api/admin/users/:id/sessions, GET} route
immich_server | 2026-11-01T01:49:44.539874009Z [Nest] 25 - 11/01/2026, 1:49:44 AM LOG [Api:RouterExplorer] Mapped {/api/admin/users/:id/statistics, GET} route
immich_server | 2026-11-01T01:49:44.539881509Z [Nest] 25 - 11/01/2026, 1:49:44 AM LOG [Api:RouterExplorer] Mapped {/api/admin/users/:id/preferences, GET} route
immich_server | 2026-11-01T01:49:44.539889884Z [Nest] 25 - 11/01/2026, 1:49:44 AM LOG [Api:RouterExplorer] Mapped {/api/admin/users/:id/preferences, PUT} route
immich_server | 2026-11-01T01:49:44.539898467Z [Nest] 25 - 11/01/2026, 1:49:44 AM LOG [Api:RouterExplorer] Mapped {/api/admin/users/:id/preferences, PATCH} route
immich_server | 2026-11-01T01:49:44.539911967Z [Nest] 25 - 11/01/2026, 1:49:44 AM LOG [Api:RouterExplorer] Mapped {/api/admin/users/:id/restore, POST} route
immich_server | 2026-11-01T01:49:44.539987592Z [Nest] 25 - 11/01/2026, 1:49:44 AM LOG [Api:RoutesResolver] UserController {/api/users}:
immich_server | 2026-11-01T01:49:44.539999717Z [Nest] 25 - 11/01/2026, 1:49:44 AM LOG [Api:RouterExplorer] Mapped {/api/users, GET} route
immich_server | 2026-11-01T01:49:44.540007009Z [Nest] 25 - 11/01/2026, 1:49:44 AM LOG [Api:RouterExplorer] Mapped {/api/users/me, GET} route
immich_server | 2026-11-01T01:49:44.540015426Z [Nest] 25 - 11/01/2026, 1:49:44 AM LOG [Api:RouterExplorer] Mapped {/api/users/me/calendar-heatmap, GET} route
immich_server | 2026-11-01T01:49:44.540024092Z [Nest] 25 - 11/01/2026, 1:49:44 AM LOG [Api:RouterExplorer] Mapped {/api/users/me, PUT} route
immich_server | 2026-11-01T01:49:44.540032717Z [Nest] 25 - 11/01/2026, 1:49:44 AM LOG [Api:RouterExplorer] Mapped {/api/users/me, PATCH} route
immich_server | 2026-11-01T01:49:44.540041801Z [Nest] 25 - 11/01/2026, 1:49:44 AM LOG [Api:RouterExplorer] Mapped {/api/users/me/preferences, GET} route
immich_server | 2026-11-01T01:49:44.540102301Z [Nest] 25 - 11/01/2026, 1:49:44 AM LOG [Api:RouterExplorer] Mapped {/api/users/me/preferences, PUT} route
immich_server | 2026-11-01T01:49:44.540116592Z [Nest] 25 - 11/01/2026, 1:49:44 AM LOG [Api:RouterExplorer] Mapped {/api/users/me/preferences, PATCH} route
immich_server | 2026-11-01T01:49:44.540192342Z [Nest] 25 - 11/01/2026, 1:49:44 AM LOG [Api:RouterExplorer] Mapped {/api/users/me/license, GET} route
immich_server | 2026-11-01T01:49:44.540206342Z [Nest] 25 - 11/01/2026, 1:49:44 AM LOG [Api:RouterExplorer] Mapped {/api/users/me/license, PUT} route
immich_server | 2026-11-01T01:49:44.540213717Z [Nest] 25 - 11/01/2026, 1:49:44 AM LOG [Api:RouterExplorer] Mapped {/api/users/me/license, DELETE} route
immich_server | 2026-11-01T01:49:44.540222426Z [Nest] 25 - 11/01/2026, 1:49:44 AM LOG [Api:RouterExplorer] Mapped {/api/users/me/onboarding, GET} route
immich_server | 2026-11-01T01:49:44.540231092Z [Nest] 25 - 11/01/2026, 1:49:44 AM LOG [Api:RouterExplorer] Mapped {/api/users/me/onboarding, PUT} route
immich_server | 2026-11-01T01:49:44.540239509Z [Nest] 25 - 11/01/2026, 1:49:44 AM LOG [Api:RouterExplorer] Mapped {/api/users/me/onboarding, DELETE} route
immich_server | 2026-11-01T01:49:44.540248134Z [Nest] 25 - 11/01/2026, 1:49:44 AM LOG [Api:RouterExplorer] Mapped {/api/users/:id, GET} route
immich_server | 2026-11-01T01:49:44.540274759Z [Nest] 25 - 11/01/2026, 1:49:44 AM LOG [Api:RouterExplorer] Mapped {/api/users/profile-image, POST} route
immich_server | 2026-11-01T01:49:44.540284676Z [Nest] 25 - 11/01/2026, 1:49:44 AM LOG [Api:RouterExplorer] Mapped {/api/users/profile-image, DELETE} route
immich_server | 2026-11-01T01:49:44.540291759Z [Nest] 25 - 11/01/2026, 1:49:44 AM LOG [Api:RouterExplorer] Mapped {/api/users/:id/profile-image, GET} route
immich_server | 2026-11-01T01:49:44.540346717Z [Nest] 25 - 11/01/2026, 1:49:44 AM LOG [Api:RoutesResolver] VideoStreamController {/api/assets}:
immich_server | 2026-11-01T01:49:44.540357426Z [Nest] 25 - 11/01/2026, 1:49:44 AM LOG [Api:RouterExplorer] Mapped {/api/assets/:id/video/stream/main.m3u8, GET} route
immich_server | 2026-11-01T01:49:44.540364884Z [Nest] 25 - 11/01/2026, 1:49:44 AM LOG [Api:RouterExplorer] Mapped {/api/assets/:id/video/stream/:sessionId/:variantIndex/playlist.m3u8, GET} route
immich_server | 2026-11-01T01:49:44.540373092Z [Nest] 25 - 11/01/2026, 1:49:44 AM LOG [Api:RouterExplorer] Mapped {/api/assets/:id/video/stream/:sessionId/:variantIndex/:filename, GET} route
immich_server | 2026-11-01T01:49:44.540381342Z [Nest] 25 - 11/01/2026, 1:49:44 AM LOG [Api:RouterExplorer] Mapped {/api/assets/:id/video/stream/:sessionId, DELETE} route
immich_server | 2026-11-01T01:49:44.540389926Z [Nest] 25 - 11/01/2026, 1:49:44 AM LOG [Api:RoutesResolver] ViewController {/api/view}:
immich_server | 2026-11-01T01:49:44.540398926Z [Nest] 25 - 11/01/2026, 1:49:44 AM LOG [Api:RouterExplorer] Mapped {/api/view/folder/unique-paths, GET} route
immich_server | 2026-11-01T01:49:44.540407967Z [Nest] 25 - 11/01/2026, 1:49:44 AM LOG [Api:RouterExplorer] Mapped {/api/view/folder, GET} route
immich_server | 2026-11-01T01:49:44.540420884Z [Nest] 25 - 11/01/2026, 1:49:44 AM LOG [Api:RoutesResolver] WorkflowController {/api/workflows}:
immich_server | 2026-11-01T01:49:44.540497926Z [Nest] 25 - 11/01/2026, 1:49:44 AM LOG [Api:RouterExplorer] Mapped {/api/workflows, POST} route
immich_server | 2026-11-01T01:49:44.540507634Z [Nest] 25 - 11/01/2026, 1:49:44 AM LOG [Api:RouterExplorer] Mapped {/api/workflows, GET} route
immich_server | 2026-11-01T01:49:44.540516509Z [Nest] 25 - 11/01/2026, 1:49:44 AM LOG [Api:RouterExplorer] Mapped {/api/workflows/triggers, GET} route
immich_server | 2026-11-01T01:49:44.540524967Z [Nest] 25 - 11/01/2026, 1:49:44 AM LOG [Api:RouterExplorer] Mapped {/api/workflows/:id, GET} route
immich_server | 2026-11-01T01:49:44.540533717Z [Nest] 25 - 11/01/2026, 1:49:44 AM LOG [Api:RouterExplorer] Mapped {/api/workflows/:id/share, GET} route
immich_server | 2026-11-01T01:49:44.540542176Z [Nest] 25 - 11/01/2026, 1:49:44 AM LOG [Api:RouterExplorer] Mapped {/api/workflows/:id, PUT} route
immich_server | 2026-11-01T01:49:44.540554884Z [Nest] 25 - 11/01/2026, 1:49:44 AM LOG [Api:RouterExplorer] Mapped {/api/workflows/:id, PATCH} route
immich_server | 2026-11-01T01:49:44.540556634Z [Nest] 25 - 11/01/2026, 1:49:44 AM LOG [Api:RouterExplorer] Mapped {/api/workflows/:id, DELETE} route
immich_server | 2026-11-01T01:49:44.540566009Z [Nest] 25 - 11/01/2026, 1:49:44 AM LOG [Api:RouterExplorer] Mapped {/api/workflows/:id/logs, GET} route
immich_server | 2026-11-01T01:49:44.540578551Z [Nest] 25 - 11/01/2026, 1:49:44 AM LOG [Api:NestApplication] Nest application successfully started
immich_server | 2026-11-01T01:49:44.540749426Z [Nest] 25 - 11/01/2026, 1:49:44 AM LOG [Api:Bootstrap] Immich Server is listening on http://[::1]:2283 [v3.3.5] [production]
immich_server | 2026-11-01T01:49:44.585327426Z [Nest] 7 - 11/01/2026, 1:49:44 AM LOG [Microservices:MapRepository] Starting geodata import
immich_server | 2026-11-01T01:49:45.380861051Z [Nest] 7 - 11/01/2026, 1:49:45 AM LOG [Microservices:MapRepository] 10000 geodata records imported
immich_server | 2026-11-01T01:49:46.124452718Z [Nest] 7 - 11/01/2026, 1:49:46 AM LOG [Microservices:MapRepository] 20000 geodata records imported
immich_server | 2026-11-01T01:49:46.694221385Z [Nest] 7 - 11/01/2026, 1:49:46 AM LOG [Microservices:MapRepository] 30000 geodata records imported
immich_server | 2026-11-01T01:49:46.723703927Z [Nest] 7 - 11/01/2026, 1:49:46 AM LOG [Microservices:MapRepository] 40000 geodata records imported
immich_server | 2026-11-01T01:49:47.783755719Z [Nest] 7 - 11/01/2026, 1:49:47 AM LOG [Microservices:MapRepository] 50000 geodata records imported
immich_server | 2026-11-01T01:49:47.842026886Z [Nest] 7 - 11/01/2026, 1:49:47 AM LOG [Microservices:MapRepository] 60000 geodata records imported
immich_server | 2026-11-01T01:49:47.932159844Z [Nest] 7 - 11/01/2026, 1:49:47 AM LOG [Microservices:MapRepository] 70000 geodata records imported
immich_server | 2026-11-01T01:49:47.959756427Z [Nest] 7 - 11/01/2026, 1:49:47 AM LOG [Microservices:MapRepository] 80000 geodata records imported
immich_server | 2026-11-01T01:49:47.996995511Z [Nest] 7 - 11/01/2026, 1:49:47 AM LOG [Microservices:MapRepository] 90000 geodata records imported
immich_server | 2026-11-01T01:49:48.901262220Z [Nest] 7 - 11/01/2026, 1:49:48 AM LOG [Microservices:MapRepository] 100000 geodata records imported
immich_server | 2026-11-01T01:49:49.055413845Z [Nest] 7 - 11/01/2026, 1:49:49 AM LOG [Microservices:MapRepository] 110000 geodata records imported
immich_server | 2026-11-01T01:49:49.114684803Z [Nest] 7 - 11/01/2026, 1:49:49 AM LOG [Microservices:MapRepository] 120000 geodata records imported
immich_server | 2026-11-01T01:49:49.131903595Z [Nest] 7 - 11/01/2026, 1:49:49 AM LOG [Microservices:MapRepository] 130000 geodata records imported
immich_server | 2026-11-01T01:49:50.028901095Z [Nest] 7 - 11/01/2026, 1:49:50 AM LOG [Microservices:MapRepository] 140000 geodata records imported
immich_server | 2026-11-01T01:49:50.095684762Z [Nest] 7 - 11/01/2026, 1:49:50 AM LOG [Microservices:MapRepository] 150000 geodata records imported
immich_server | 2026-11-01T01:49:50.142328928Z [Nest] 7 - 11/01/2026, 1:49:50 AM LOG [Microservices:MapRepository] 160000 geodata records imported
immich_server | 2026-11-01T01:49:50.169490179Z [Nest] 7 - 11/01/2026, 1:49:50 AM LOG [Microservices:MapRepository] 170000 geodata records imported
immich_server | 2026-11-01T01:49:50.188427845Z [Nest] 7 - 11/01/2026, 1:49:50 AM LOG [Microservices:MapRepository] 180000 geodata records imported
immich_server | 2026-11-01T01:49:50.726391429Z [Nest] 7 - 11/01/2026, 1:49:50 AM LOG [Microservices:MapRepository] 190000 geodata records imported
immich_server | 2026-11-01T01:49:50.812817554Z [Nest] 7 - 11/01/2026, 1:49:50 AM LOG [Microservices:MapRepository] 200000 geodata records imported
immich_server | 2026-11-01T01:49:50.855081762Z [Nest] 7 - 11/01/2026, 1:49:50 AM LOG [Microservices:MapRepository] 210000 geodata records imported
immich_server | 2026-11-01T01:49:50.871156179Z [Nest] 7 - 11/01/2026, 1:49:50 AM LOG [Microservices:MapRepository] 220000 geodata records imported
immich_server | 2026-11-01T01:49:51.005529429Z [Nest] 7 - 11/01/2026, 1:49:51 AM LOG [Microservices:MapRepository] Successfully imported 229133 geodata records in 6.42s (35690 records/second)
immich_server | 2026-11-01T01:49:54.034120264Z [Nest] 7 - 11/01/2026, 1:49:54 AM LOG [Microservices:MapRepository] Geodata import completed
immich_server | 2026-11-01T01:49:54.035148097Z [Nest] 7 - 11/01/2026, 1:49:54 AM LOG [Microservices:MetadataService] Initialized local reverse geocoder
immich_server | 2026-11-01T01:49:54.044502722Z [Nest] 7 - 11/01/2026, 1:49:54 AM LOG [Microservices:ServerService] Feature Flags: {
immich_server | 2026-11-01T01:49:54.044513930Z "smartSearch": false,
immich_server | 2026-11-01T01:49:54.044515097Z "facialRecognition": false,
immich_server | 2026-11-01T01:49:54.044515930Z "duplicateDetection": false,
immich_server | 2026-11-01T01:49:54.044516555Z "map": true,
immich_server | 2026-11-01T01:49:54.044517222Z "reverseGeocoding": true,
immich_server | 2026-11-01T01:49:54.044517847Z "importFaces": false,
immich_server | 2026-11-01T01:49:54.044518472Z "sidecar": true,
immich_server | 2026-11-01T01:49:54.044519180Z "search": true,
immich_server | 2026-11-01T01:49:54.044519764Z "trash": true,
immich_server | 2026-11-01T01:49:54.044520347Z "oauth": false,
immich_server | 2026-11-01T01:49:54.044520972Z "oauthAutoLaunch": false,
immich_server | 2026-11-01T01:49:54.044521555Z "ocr": false,
immich_server | 2026-11-01T01:49:54.044522180Z "passwordLogin": true,
immich_server | 2026-11-01T01:49:54.044522764Z "configFile": false,
immich_server | 2026-11-01T01:49:54.044523347Z "email": false,
immich_server | 2026-11-01T01:49:54.044523972Z "realtimeTranscoding": false
immich_server | 2026-11-01T01:49:54.044524597Z }
immich_server | 2026-11-01T01:49:54.494986181Z [Nest] 7 - 11/01/2026, 1:49:54 AM LOG [Microservices:SystemConfigService] LogLevel=log (set via system config)
immich_server | 2026-11-01T01:49:54.543314681Z [Nest] 7 - 11/01/2026, 1:49:54 AM LOG [Microservices:WorkflowExecutionService] Imported plugin [email protected] (14 methods) from /build/plugins/immich-plugin-core
immich_server | 2026-11-01T01:49:54.655076597Z [Nest] 7 - 11/01/2026, 1:49:54 AM LOG [Microservices:WorkflowExecutionService] Loaded plugin: [email protected]
immich_server | 2026-11-01T01:49:54.755988889Z [Nest] 7 - 11/01/2026, 1:49:54 AM LOG [Microservices:WorkflowExecutionService] Loaded plugin with host functions: [email protected]/worker
immich_server | 2026-11-01T01:49:54.757759472Z [Nest] 7 - 11/01/2026, 1:49:54 AM LOG [Microservices:NestFactory] Starting Nest application...
immich_server | 2026-11-01T01:49:54.757765056Z [Nest] 7 - 11/01/2026, 1:49:54 AM LOG [Microservices:InstanceLoader] BullModule dependencies initialized
immich_server | 2026-11-01T01:49:54.757766597Z [Nest] 7 - 11/01/2026, 1:49:54 AM LOG [Microservices:InstanceLoader] ClsModule dependencies initialized
immich_server | 2026-11-01T01:49:54.757767764Z [Nest] 7 - 11/01/2026, 1:49:54 AM LOG [Microservices:InstanceLoader] ClsCommonModule dependencies initialized
immich_server | 2026-11-01T01:49:54.757768722Z [Nest] 7 - 11/01/2026, 1:49:54 AM LOG [Microservices:InstanceLoader] OpenTelemetryModule dependencies initialized
immich_server | 2026-11-01T01:49:54.757769889Z [Nest] 7 - 11/01/2026, 1:49:54 AM LOG [Microservices:InstanceLoader] KyselyModule dependencies initialized
immich_server | 2026-11-01T01:49:54.757770764Z [Nest] 7 - 11/01/2026, 1:49:54 AM LOG [Microservices:InstanceLoader] OpenTelemetryCoreModule dependencies initialized
immich_server | 2026-11-01T01:49:54.757771597Z [Nest] 7 - 11/01/2026, 1:49:54 AM LOG [Microservices:InstanceLoader] DiscoveryModule dependencies initialized
immich_server | 2026-11-01T01:49:54.757772431Z [Nest] 7 - 11/01/2026, 1:49:54 AM LOG [Microservices:InstanceLoader] ClsRootModule dependencies initialized
immich_server | 2026-11-01T01:49:54.757773264Z [Nest] 7 - 11/01/2026, 1:49:54 AM LOG [Microservices:InstanceLoader] ClsPluginsModule dependencies initialized
immich_server | 2026-11-01T01:49:54.757774097Z [Nest] 7 - 11/01/2026, 1:49:54 AM LOG [Microservices:InstanceLoader] BullModule dependencies initialized
immich_server | 2026-11-01T01:49:54.757774889Z [Nest] 7 - 11/01/2026, 1:49:54 AM LOG [Microservices:InstanceLoader] BullModule dependencies initialized
immich_server | 2026-11-01T01:49:54.757781389Z [Nest] 7 - 11/01/2026, 1:49:54 AM LOG [Microservices:InstanceLoader] MicroservicesModule dependencies initialized
immich_server | 2026-11-01T01:49:54.757782597Z [Nest] 7 - 11/01/2026, 1:49:54 AM LOG [Microservices:NestApplication] Nest application successfully started
immich_server | 2026-11-01T01:49:54.757783472Z [Nest] 7 - 11/01/2026, 1:49:54 AM LOG [Microservices:Bootstrap] Immich Microservices is running [v3.3.5] [production]