Skip to main content
Upstream source: Current installation guide. Immich needs its server, machine-learning service, Valkey, and a PostgreSQL image with the vector extensions Immich expects. Towbar’s generic PostgreSQL Datastore preset is not a substitute for that image. All persistent data stays in named Compose volumes.

Towbar manifest

.towbar/services/immich.compose.yml

Compose project

deploy/immich/compose.yml

Configure

  1. Prepare the example server, connect the repository, and map production to the branch containing these files. Replace the example server IP and domain.
  2. Commit every file shown below under deploy/immich/. The Towbar manifest points to the Compose file; it does not create it for you.
  3. Sync the repository and inspect the resolved Compose project. Save the runtime values below if this example declares any.
  4. Use a server that meets Immich’s published CPU, memory, and storage requirements. Set DB_PASSWORD before deployment and keep the PostgreSQL volume on local storage, not a network share.
  5. The Compose project database is not a Towbar-managed Datastore. Back up both the library and postgres volumes; a database backup alone cannot restore photos.
  6. Deploy it manually and run the verification below before enabling auto-deploy.

Runtime values

Save these values on the Compose project after the repository sync. The manifest declares required keys, not their values.

Verify

Upload a few photos, wait for thumbnails and search jobs, then redeploy and verify both media and metadata remain. For field constraints, see Compose guide.
Last modified on September 27, 2026