Operate and configure
Start with Quick start for one container beside Immich. Use this section when you need a different deployment or want to manage it over time.
Choose a deployment
| Your setup | Start here |
|---|---|
| Docker on a server or desktop | Docker Compose |
| Synology or Unraid | On a NAS |
| Python on your own host | pip / uv |
| Kubernetes cluster | Kubernetes |
| Infrastructure managed as code | Terraform |
Requirements explains hardware limits and what extra resources buy you.
Already running the app and ready to move work elsewhere? Choose one GPU service for a shared NVIDIA worker, distributed Kubernetes services for independently managed workloads, or local Apple Silicon services for a native Mac installation. Each guide explains what you must provide and what stays on the app host.
Want to see everything turned on? How I run it describes my own setup: the app and one GPU worker on Kubernetes, the reader on a Mac, and what each piece costs.
Protect access and keep your data
The default UI listens on localhost with authentication off. It holds an Immich API key: enable authentication before publishing it to other machines. Run one UI replica.
- Network and security: bind addresses, proxies and service access.
- Privacy: what leaves your network and the switches that enable it.
- Storage and backups: what to preserve and how to restore it.
- Database: SQLite or PostgreSQL for the store.
Configure and maintain it
Use Configuration to understand where settings come from, then look up an individual key in the config reference. Environment variables are useful for container deployments.
Upgrading covers a version change. Health, logs and caches covers a service that is slow or not starting.
For optional caption, text or GPU services, start with Optional upgrades. Add them to solve a specific need; the default film does not require them.