Choose a Plan
Immich’s current official minimum is 2 CPU cores and 6 GB RAM; the recommended size is 4 CPU cores and 8 GB RAM.
Thumbnails and transcoded video can add roughly 10–20% to the original library size. Check current plan resources on the Arct Cloud pricing page, leave space for the database and Docker images, and plan migration before the disk approaches capacity.
Before You Begin
Prepare the following:- A fresh Ubuntu 24.04 server
- A domain or subdomain such as
photos.example.com - An
Arecord pointing that hostname to the server’s public IPv4 address - Docker Engine 25 or newer with the Docker Compose plugin, installed from the official Docker repository
- A reverse proxy such as Caddy or Nginx
docker compose command. The legacy docker-compose command is not supported.
Install Immich
1
Deploy and Connect
2
Allow the Ubuntu User to Run Docker
After installing Docker Engine and the Compose plugin from Docker’s official Ubuntu repository, add the default Ubuntu user to the Docker group:Reconnect so the group change takes effect, then verify Docker and Compose work without
sudo:3
Download the Official Compose Files
4
Configure Storage and Secrets
Edit Use only letters and numbers in
/opt/immich/.env and set at least these values:DB_PASSWORD, as recommended by Immich. Keep the PostgreSQL directory on local NVMe storage; a network share is not supported for the database.Protect the environment file after editing it:5
Keep the Application Port Private
In the Do not expose port
immich-server service, bind the published port to loopback rather than every interface:2283 through UFW or an external firewall.6
Start the Stack
7
Create the Administrator Privately
Keep port Open
2283 bound to loopback. From a second terminal on your local computer, open an SSH tunnel:http://127.0.0.1:2283, create the first account, and sign in. The first account becomes the administrator. Enable multi-factor authentication, save the recovery codes separately, and review user creation and storage settings before exposing the service publicly.Stop the tunnel with Ctrl+C only after administrator access and MFA are verified.8
Enable Public HTTPS
Install Caddy using its official Debian and Ubuntu instructions, then add this block to Immich must be served from the root of a domain or subdomain, not a path such as Open
/etc/caddy/Caddyfile:/immich.https://photos.example.com, sign in with the existing administrator, and confirm MFA before inviting other users. At no point should the unauthenticated first-account screen be reachable through the public proxy.Firewall
Allow SSH before enabling UFW:22, 80, and 443 should normally be public. Keep PostgreSQL, Redis, and port 2283 private.
Back Up and Restore
Immich automatically creates database dumps underUPLOAD_LOCATION/backups, but those dumps do not include photos or videos. A complete recovery set requires all of the following:
- A current Immich database dump
- An off-server copy of the entire
UPLOAD_LOCATION, especiallyupload,library, andprofile - The contents of every external library, or a separately protected authoritative copy of those files
- The protected
.envfile and every Compose or override file, including all external-library mount definitions - The exact configured image references, running image IDs, and Immich version used when the backup was created
immich-server container while the backup tool reads the asset directories. If the service must remain online, back up the database first and the filesystem second. Never edit files inside the Immich library directly.
Follow the official backup and restore guide and perform a test restore before relying on the backup. Restores across different Immich versions can require migrations.
Update Safely
Immich supports the current stable release and does not support downgrades. Before updating, upgrade mobile clients, read the release notes, account for breaking changes, and create a complete backup.IMMICH_VERSION, update it only after reviewing the target release. Restore a compatible backup instead of attempting an unsupported downgrade.
Troubleshooting
Official Resources
Immich Installation
Current Docker Compose files, environment settings, and post-installation guidance.
Immich on GitHub
Source code, releases, issues, and security information.
Immich is developed independently of Arct Cloud. Arct Cloud is an independent infrastructure provider and is not affiliated with, sponsored by, or endorsed by Immich or FUTO.