Back to Apps
Immich

Deploy Immich on Your Own Server

Open source (AGPLv3) Google Photos alternative. Backup your phone's photos and videos to your private server.

πŸ’Ύ StorageπŸ› οΈ Developer Tools🎬 Media

Want to deploy Immich on your server faster? Try Senate with one-command setup, automatic HTTPS and monitoring.

Get Started

What is Immich?

Leave every default value as is for a working and simple installation. You can specify the (full) path to the directory you want to save your media at. The directory must exist beforehand. Immich can be used from a browser but kind of requires you to install the Immich app on your phone. If you have big media files (bigger than 500MB) that you want to backup, update your Nginx configuration file in Senate to increase your `client_max_body_size`.

Learn more

Self-Host Immich

Follow these steps to deploy on your own server.

1

Install Docker

Skip this step if Docker is already installed on your server.

curl -fsSL https://get.docker.com | sh
2

Configure

Customize the settings below. Defaults work for most cases.

3

Deploy

Copy the configuration and run it on your server.

services:
  immich:
    environment:
      DB_DATABASE_NAME: immich
      DB_HOSTNAME: immich-db
      DB_PASSWORD: c788cda71c93d7ae65e1fc53058eab21
      DB_USERNAME: immich
      IMMICH_MACHINE_LEARNING_URL: http://immich-machine-learning:3003
      REDIS_HOSTNAME: immich-redis
      UPLOAD_LOCATION: immich-data
    volumes:
      - immich-data:/usr/src/app/upload
      - /etc/localtime:/etc/localtime:ro
    depends_on:
      - immich-redis
      - immich-db
  immich-db:
    image: tensorchord/pgvecto-rs:pg14-v0.2.0@sha256:90724186f0a3517cf6914295b5ab410db9ce23190a2d9d0b9dd6463e3fa298f0
    environment:
      PG_DATA: /var/lib/postgresql/data
      POSTGRES_DB: immich
      POSTGRES_PASSWORD: c788cda71c93d7ae65e1fc53058eab21
      POSTGRES_USER: immich
    volumes:
      - immich-db-data:/var/lib/postgresql/data
  immich-machine-learning:
    image: ghcr.io/immich-app/immich-machine-learning:v1.108.0
    environment:
      DB_DATABASE_NAME: immich
      DB_HOSTNAME: immich-db
      DB_PASSWORD: c788cda71c93d7ae65e1fc53058eab21
      DB_USERNAME: immich
      REDIS_HOSTNAME: immich-redis
      UPLOAD_LOCATION: immich-data
    volumes:
      - immich-model-cache:/cache
  immich-redis:
    image: redis:6.2-alpine@sha256:c5a607fb6e1bb15d32bbcf14db22787d19e428d59e31a5da67511b49bb0f1ccc
volumes:
  immich-data: {}
  immich-db-data: {}
  immich-model-cache: {}

Then run:

docker compose up -d
4

Access

Once started, access your app at http://localhost:3001

Why Self-Host Immich?

Full Data Ownership

Your data stays on your servers. No third-party access.

No Monthly Fees

Pay only for your server. No per-seat or usage charges.

Complete Control

Customize, backup, and scale on your own terms.

Privacy & Compliance

Meet GDPR, HIPAA, or internal security requirements.

Technical Details

Want to go faster?

Try Senate! Senate handles Docker, HTTPS, updates, and monitoring for you. Deploy any of our 300+ apps with a single command.

Install on any Linux server:

sh -c "$(curl -sSL https://get.senate.sh)"