Deploy Immich
High-performance photo and video backup with search and sharing.
Just deployed
/cache
Just deployed
/data
Just deployed
/var/lib/postgresql/data
Just deployed
/data
Deploy and Host Immich on Railway
Immich is a high-performance, self-hosted photo and video management platform. It backs up media from mobile devices, presents a fast timeline, and adds albums, sharing, metadata, facial recognition, object detection, and semantic search while keeping the library on infrastructure you control.
About Hosting Immich
Hosting Immich requires four coordinated containers: the Immich server for the API and web interface, Immich Machine Learning for facial recognition and semantic search, PostgreSQL with VectorChord and pgvector for metadata and vector indexes, and Valkey as a Redis-compatible cache and job broker. The server, database, model cache, and Valkey data each use persistent Railway volumes. Only the Immich server is public; all dependency traffic uses Railway private domains. The template pins every image to the Umbrel-tested Immich v3.0.3 graph and configures the supported /api/server/ping health endpoint.
Warning: Immich is under very active development. Expect bugs and changes. Do not use it as the only way to store your photos and videos!
Common Use Cases
- Automatically backing up photos and videos from iOS and Android devices
- Privately searching a personal media library by faces, objects, scenes, and metadata
- Organizing and sharing albums with family, friends, or a small team
Dependencies for Immich Hosting
- PostgreSQL 14 with VectorChord 0.4.3 and pgvector 0.8.x support
- Valkey 8 as the Redis-compatible cache and job broker
- Immich Machine Learning for smart search, OCR, and facial recognition
- Persistent Railway volumes for media, database data, model cache, and Valkey data
Deployment Dependencies
- Immich Docker Compose deployment
- Immich environment variables
- Immich backup and restore documentation
- Immich v3 migration guide
- Immich v3.0.3 release
- Umbrel Immich package
Implementation Details
| Service | Image | Networking | Persistent volume |
|---|---|---|---|
Immich | ghcr.io/immich-app/immich-server:v3.0.3 | Public port 2283; private dependencies | /data |
Immich ML | ghcr.io/immich-app/immich-machine-learning:v3.0.3 | Private port 3003 only | /cache |
Postgres | ghcr.io/immich-app/postgres:14-vectorchord0.4.3-pgvectors0.2.0 | Private port 5432 only | /var/lib/postgresql/data |
Redis | valkey/valkey:8-bookworm | Private port 6379 only | /data |
The database password is generated once on Postgres and referenced by Immich. Internal hostnames use exact service namespaces and RAILWAY_PRIVATE_DOMAIN. PGDATA=/var/lib/postgresql/data/pgdata keeps PostgreSQL data below the Railway volume mount so initialization is not blocked by the mount's lost+found directory. Railway health checks use PORT=2283 and GET /api/server/ping, which returns {"res":"pong"} in v3.0.3.
Immich's automatic database dumps contain metadata only. Back up both the complete /data media volume and the PostgreSQL data independently, ideally with a 3-2-1 strategy. Immich must not be the only copy of your photos and videos.
Why Deploy Immich on Railway?
Railway is a singular platform to deploy your infrastructure stack. Railway will host your infrastructure so you don't have to deal with configuration, while allowing you to vertically and horizontally scale it.
By deploying Immich on Railway, you are one step closer to supporting a complete full-stack application with minimal burden. Host your servers, databases, AI agents, and more on Railway.
Template Content