---
title: "Deploy Immich"
description: "High-performance photo and video backup with search and sharing."
category: "Storage"
url: https://railway.com/deploy/immich-2
---

# Deploy Immich

High-performance photo and video backup with search and sharing.

**[Deploy Immich on Railway](https://railway.com/template/immich-2)**

- **Creator:** Agaz Self-Host
- **Category:** Storage
- **Total deploys:** 3

## Template content

### Immich ML

- **Image:** ghcr.io/immich-app/immich-machine-learning:v3.0.3

### Redis

- **Image:** valkey/valkey:8-bookworm

### Postgres

- **Image:** ghcr.io/immich-app/postgres:14-vectorchord0.4.3-pgvectors0.2.0

### Immich

- **Image:** ghcr.io/immich-app/immich-server:v3.0.3
- **Health check:** /api/server/ping
- **Public domain:** Yes

## Documentation

# 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](https://docs.immich.app/install/docker-compose)
- [Immich environment variables](https://docs.immich.app/install/environment-variables)
- [Immich backup and restore documentation](https://docs.immich.app/administration/backup-and-restore)
- [Immich v3 migration guide](https://immich.app/blog/v3-migration)
- [Immich v3.0.3 release](https://github.com/immich-app/immich/releases/tag/v3.0.3)
- [Umbrel Immich package](https://github.com/getumbrel/umbrel-apps/tree/master/immich)

## 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.


## Similar templates

- [Garage S3 Storage](https://railway.com/deploy/garage-s3-storage) — Ultra-light S3 server: fast, open-source, plug-and-play.
- [Redis](https://railway.com/deploy/redis-1) — Self Host Latest Redis with Railway
- [EasyImg](https://railway.com/deploy/easyimg) — Simple self-hostable Nuxt.js personal image hosting system.

Open this page in a browser: https://railway.com/deploy/immich-2
