Immich¶
Immich is a self-hosted photo and video backup solution, with built-in AI/ML smart search, facial recognition, and map features.
Package Information
- Upstream: Immich
- License: AGPL-3.0
- Default Port: 2283
Prerequisites¶
- DSM 7.2 or later (64-bit only)
- SynoCommunity repository added to Package Center (see Installation Guide)
When you install Immich, Package Center will automatically prompt you to install required dependencies (PostgreSQL, Redis, Node.js_v22, ffmpeg8, Perl, Python 3.14) if they aren't already present.
Installation¶
Step 1 — Install PostgreSQL¶
Install the PostgreSQL package from SynoCommunity when prompted. During installation, create an administrator account and remember the credentials. PostgreSQL runs on port 5433 (the SynoCommunity package uses this port to avoid conflict with Synology's built-in PostgreSQL on 5432).
All required extensions (unaccent, cube, earthdistance, pg_trgm, uuid-ossp, vector) are included automatically.
Step 2 — Install Immich¶
Install the Immich package from SynoCommunity. The installation wizard will guide you through three screens:
Database Configuration
- Enter the PostgreSQL admin credentials from Step 1
- The installer creates a dedicated immich database user and database
Shared Folder - Select or create a DSM shared folder for media storage (photos, videos, thumbnails)
Machine Learning (Optional) - If enabled, approximately 300 MB of Python ML dependencies are installed - Provides smart search, facial recognition, and OCR
Step 3 — Access Immich¶
Once installed, access the web interface at:
Follow the on-screen prompts to create your admin account.
Updating¶
Updates are handled through DSM's Package Center. The database and media files are preserved during updates.
Uninstalling¶
The uninstall wizard offers the option to export your Immich database in a format compatible with the upstream backup mechanism.
Getting Help¶
For package-related issues, please open a ticket with SynoCommunity first. The maintainers can escalate to upstream if the issue originates outside the package.
Advanced: Changing the Media Location¶
If you need to move Immich's media storage to a new location (e.g., renaming a DSM shared folder, migrating to a new volume), the following steps are required to keep everything in sync.
Before You Start¶
- Stop the Immich package in Package Center (or
sudo synopkg stop immich) - Ensure the new location exists and is accessible
Step 1 — Update Database Paths¶
Run the immich-admin CLI to update stored file paths in the database:
You will be prompted for:
- Previous value — the old media location (e.g.,
/volume1/immich-media) - New value — the new media location (e.g.,
/volume1/Photos)
The tool updates paths in the asset, asset_file, person, and user tables.
Step 2 — Update System Metadata¶
The CLI does not update the system_metadata table, so this must be done manually via psql. You will be prompted for the Immich database password (set during installation):
/usr/local/bin/psql -h localhost -p 5433 -U immich -d immich -c \
"UPDATE system_metadata SET value = '{\"location\":\"/volume1/Photos\"}' WHERE key = 'MediaLocation';"
Verify the change:
/usr/local/bin/psql -h localhost -p 5433 -U immich -d immich -c \
"SELECT * FROM system_metadata WHERE key = 'MediaLocation';"
Expected output:
key | value
---------------+---------------------------------
MediaLocation | {"location": "/volume1/Photos"}
(1 row)
Alternative: interactive psql
If you prefer an interactive session: /usr/local/bin/psql -h localhost -p 5433 -U immich -d immich then paste the SQL without the shell escaping:
Step 3 — Update Immich Configuration¶
Edit the runtime config and change IMMICH_MEDIA_LOCATION to the new path:
For example, change:
to:
Step 4 — Update DSM Share (if applicable)¶
If you renamed the DSM shared folder, update the installer variables and share symlink:
Update SHARE_PATH and SHARE_NAME to match the new location and name. For example:
Then update the symlink in the shares directory:
Step 5 — Restart¶
Start the Immich package in Package Center (or sudo synopkg start immich). The server should detect that the media location is consistent and start normally.