Dokploy

Immich

High performance self-hosted photo and video backup solution directly from your mobile phone.

Immich logo

Configuration

version: "3.9"

services:
  immich-server:
    image: ghcr.io/immich-app/immich-server:v3.0.2

    volumes:
      - immich-library:/data
      - /etc/localtime:/etc/localtime:ro
    depends_on:
      immich-redis:
        condition: service_healthy
      immich-database:
        condition: service_healthy
    environment:
      # Database Configuration
      DB_HOSTNAME: ${DB_HOSTNAME}
      DB_PORT: ${DB_PORT}
      DB_USERNAME: ${DB_USERNAME}
      DB_PASSWORD: ${DB_PASSWORD}
      DB_DATABASE_NAME: ${DB_DATABASE_NAME}
      # Redis Configuration
      REDIS_HOSTNAME: ${REDIS_HOSTNAME}
      REDIS_PORT: ${REDIS_PORT}
      REDIS_DBINDEX: ${REDIS_DBINDEX}
      # Server Configuration
      TZ: ${TZ}
    restart: unless-stopped
    healthcheck:
      disable: false

  immich-machine-learning:
    image: ghcr.io/immich-app/immich-machine-learning:v3.0.2

    volumes:
      - immich-model-cache:/cache
    restart: unless-stopped
    healthcheck:
      disable: false

  immich-redis:
    image: valkey/valkey:9

    volumes:
      - immich-redis-data:/data
    healthcheck:
      test: redis-cli ping || exit 1
      interval: 10s
      timeout: 5s
      retries: 5
    restart: unless-stopped

  immich-database:
    image: ghcr.io/immich-app/postgres:14-vectorchord0.4.3-pgvectors0.2.0

    volumes:
      - immich-postgres:/var/lib/postgresql/data
    environment:
      POSTGRES_PASSWORD: ${DB_PASSWORD}
      POSTGRES_USER: ${DB_USERNAME}
      POSTGRES_DB: ${DB_DATABASE_NAME}
      POSTGRES_INITDB_ARGS: '--data-checksums'
    shm_size: 128mb
    healthcheck:
      test: pg_isready -U ${DB_USERNAME} -d ${DB_DATABASE_NAME} || exit 1
      interval: 10s
      timeout: 5s
      retries: 5
    restart: unless-stopped

volumes:
  immich-model-cache:
  immich-postgres:
  immich-library:
  immich-redis-data:
[variables]
main_domain = "${domain}"
db_password = "${password}"
db_user = "immich"

[config]
env = [
  "DB_HOSTNAME=immich-database",
  "DB_PORT=5432",
  "DB_USERNAME=${db_user}",
  "DB_PASSWORD=${db_password}",
  "DB_DATABASE_NAME=immich",
  "REDIS_HOSTNAME=immich-redis",
  "REDIS_PORT=6379",
  "REDIS_DBINDEX=0",
  "TZ=UTC",
]
mounts = []

[[config.domains]]
serviceName = "immich-server"
port = 2_283
host = "${main_domain}"

Base64

To import this template in Dokploy: create a Compose service → AdvancedBase64 import and paste the content below:

ewogICJjb21wb3NlIjogInZlcnNpb246IFwiMy45XCJcblxuc2VydmljZXM6XG4gIGltbWljaC1zZXJ2ZXI6XG4gICAgaW1hZ2U6IGdoY3IuaW8vaW1taWNoLWFwcC9pbW1pY2gtc2VydmVyOnYzLjAuMlxuXG4gICAgdm9sdW1lczpcbiAgICAgIC0gaW1taWNoLWxpYnJhcnk6L2RhdGFcbiAgICAgIC0gL2V0Yy9sb2NhbHRpbWU6L2V0Yy9sb2NhbHRpbWU6cm9cbiAgICBkZXBlbmRzX29uOlxuICAgICAgaW1taWNoLXJlZGlzOlxuICAgICAgICBjb25kaXRpb246IHNlcnZpY2VfaGVhbHRoeVxuICAgICAgaW1taWNoLWRhdGFiYXNlOlxuICAgICAgICBjb25kaXRpb246IHNlcnZpY2VfaGVhbHRoeVxuICAgIGVudmlyb25tZW50OlxuICAgICAgIyBEYXRhYmFzZSBDb25maWd1cmF0aW9uXG4gICAgICBEQl9IT1NUTkFNRTogJHtEQl9IT1NUTkFNRX1cbiAgICAgIERCX1BPUlQ6ICR7REJfUE9SVH1cbiAgICAgIERCX1VTRVJOQU1FOiAke0RCX1VTRVJOQU1FfVxuICAgICAgREJfUEFTU1dPUkQ6ICR7REJfUEFTU1dPUkR9XG4gICAgICBEQl9EQVRBQkFTRV9OQU1FOiAke0RCX0RBVEFCQVNFX05BTUV9XG4gICAgICAjIFJlZGlzIENvbmZpZ3VyYXRpb25cbiAgICAgIFJFRElTX0hPU1ROQU1FOiAke1JFRElTX0hPU1ROQU1FfVxuICAgICAgUkVESVNfUE9SVDogJHtSRURJU19QT1JUfVxuICAgICAgUkVESVNfREJJTkRFWDogJHtSRURJU19EQklOREVYfVxuICAgICAgIyBTZXJ2ZXIgQ29uZmlndXJhdGlvblxuICAgICAgVFo6ICR7VFp9XG4gICAgcmVzdGFydDogdW5sZXNzLXN0b3BwZWRcbiAgICBoZWFsdGhjaGVjazpcbiAgICAgIGRpc2FibGU6IGZhbHNlXG5cbiAgaW1taWNoLW1hY2hpbmUtbGVhcm5pbmc6XG4gICAgaW1hZ2U6IGdoY3IuaW8vaW1taWNoLWFwcC9pbW1pY2gtbWFjaGluZS1sZWFybmluZzp2My4wLjJcblxuICAgIHZvbHVtZXM6XG4gICAgICAtIGltbWljaC1tb2RlbC1jYWNoZTovY2FjaGVcbiAgICByZXN0YXJ0OiB1bmxlc3Mtc3RvcHBlZFxuICAgIGhlYWx0aGNoZWNrOlxuICAgICAgZGlzYWJsZTogZmFsc2VcblxuICBpbW1pY2gtcmVkaXM6XG4gICAgaW1hZ2U6IHZhbGtleS92YWxrZXk6OVxuXG4gICAgdm9sdW1lczpcbiAgICAgIC0gaW1taWNoLXJlZGlzLWRhdGE6L2RhdGFcbiAgICBoZWFsdGhjaGVjazpcbiAgICAgIHRlc3Q6IHJlZGlzLWNsaSBwaW5nIHx8IGV4aXQgMVxuICAgICAgaW50ZXJ2YWw6IDEwc1xuICAgICAgdGltZW91dDogNXNcbiAgICAgIHJldHJpZXM6IDVcbiAgICByZXN0YXJ0OiB1bmxlc3Mtc3RvcHBlZFxuXG4gIGltbWljaC1kYXRhYmFzZTpcbiAgICBpbWFnZTogZ2hjci5pby9pbW1pY2gtYXBwL3Bvc3RncmVzOjE0LXZlY3RvcmNob3JkMC40LjMtcGd2ZWN0b3JzMC4yLjBcblxuICAgIHZvbHVtZXM6XG4gICAgICAtIGltbWljaC1wb3N0Z3JlczovdmFyL2xpYi9wb3N0Z3Jlc3FsL2RhdGFcbiAgICBlbnZpcm9ubWVudDpcbiAgICAgIFBPU1RHUkVTX1BBU1NXT1JEOiAke0RCX1BBU1NXT1JEfVxuICAgICAgUE9TVEdSRVNfVVNFUjogJHtEQl9VU0VSTkFNRX1cbiAgICAgIFBPU1RHUkVTX0RCOiAke0RCX0RBVEFCQVNFX05BTUV9XG4gICAgICBQT1NUR1JFU19JTklUREJfQVJHUzogJy0tZGF0YS1jaGVja3N1bXMnXG4gICAgc2htX3NpemU6IDEyOG1iXG4gICAgaGVhbHRoY2hlY2s6XG4gICAgICB0ZXN0OiBwZ19pc3JlYWR5IC1VICR7REJfVVNFUk5BTUV9IC1kICR7REJfREFUQUJBU0VfTkFNRX0gfHwgZXhpdCAxXG4gICAgICBpbnRlcnZhbDogMTBzXG4gICAgICB0aW1lb3V0OiA1c1xuICAgICAgcmV0cmllczogNVxuICAgIHJlc3RhcnQ6IHVubGVzcy1zdG9wcGVkXG5cbnZvbHVtZXM6XG4gIGltbWljaC1tb2RlbC1jYWNoZTpcbiAgaW1taWNoLXBvc3RncmVzOlxuICBpbW1pY2gtbGlicmFyeTpcbiAgaW1taWNoLXJlZGlzLWRhdGE6XG4iLAogICJjb25maWciOiAiW3ZhcmlhYmxlc11cbm1haW5fZG9tYWluID0gXCIke2RvbWFpbn1cIlxuZGJfcGFzc3dvcmQgPSBcIiR7cGFzc3dvcmR9XCJcbmRiX3VzZXIgPSBcImltbWljaFwiXG5cbltjb25maWddXG5lbnYgPSBbXG4gIFwiREJfSE9TVE5BTUU9aW1taWNoLWRhdGFiYXNlXCIsXG4gIFwiREJfUE9SVD01NDMyXCIsXG4gIFwiREJfVVNFUk5BTUU9JHtkYl91c2VyfVwiLFxuICBcIkRCX1BBU1NXT1JEPSR7ZGJfcGFzc3dvcmR9XCIsXG4gIFwiREJfREFUQUJBU0VfTkFNRT1pbW1pY2hcIixcbiAgXCJSRURJU19IT1NUTkFNRT1pbW1pY2gtcmVkaXNcIixcbiAgXCJSRURJU19QT1JUPTYzNzlcIixcbiAgXCJSRURJU19EQklOREVYPTBcIixcbiAgXCJUWj1VVENcIixcbl1cbm1vdW50cyA9IFtdXG5cbltbY29uZmlnLmRvbWFpbnNdXVxuc2VydmljZU5hbWUgPSBcImltbWljaC1zZXJ2ZXJcIlxucG9ydCA9IDJfMjgzXG5ob3N0ID0gXCIke21haW5fZG9tYWlufVwiXG4iCn0=

Tags

photos, videos, backup, media


Version: v3.0.2

On this page