Immich is installed on Synology NAS using Container Manager at /volume1/immich/
/volume1/immich/
├── docker-compose.yml # Container configuration
├── .env # Environment variables
├── upload/ # Photo and video storage
├── database/ # PostgreSQL data
└── model-cache/ # Machine learning models (Docker volume)
Defines 4 services:
- immich-server: Main application (port 3001)
- immich-machine-learning: AI/ML processing
- redis: Caching
- database: PostgreSQL with vector extension
Important: All services use network_mode: host for Synology compatibility. This allows containers to use the host's network directly, bypassing Docker bridge networking issues.
Key settings:
UPLOAD_LOCATION=/volume1/immich/uploadDB_DATA_LOCATION=/volume1/immich/databaseDB_PASSWORD=<secure_random_password>IMMICH_VERSION=release
In Container Manager:
- Project tab → Select "immich" → Start/Stop/Build
- Container tab → Select container → Logs
- Stop the project
- Image tab → Pull latest images
- Start the project
Web Interface: http://192.168.4.190:3001
Port Note: With host networking mode, Immich uses port 3001 (the container's internal port) directly.
First Time Setup:
- Create admin account (first user becomes admin)
- Configure mobile app connection
- Set up automatic backup from phones
Download from:
- iOS: App Store
- Android: Google Play Store
Configure with server URL: http://192.168.4.190:3001
-
Request Your Data:
- Visit https://takeout.google.com/
- Deselect all products, then select only "Google Photos"
- Choose file type:
.zipor.tgz - Select file size: 50GB per archive recommended
- Delivery method: "Send download link via email"
- Click "Create export"
-
Download Archives:
- Google will email you when export is ready (may take hours or days)
- Download all archive files
- Extract to a temporary folder on your Mac
-
Upload to Immich:
Via Web Interface:
- Open http://192.168.4.190:3001
- Click upload icon
- Drag and drop the extracted Takeout folder
- Immich will automatically deduplicate and import metadata
Via CLI (Recommended for large libraries):
# Install Immich CLI npm install -g @immich/cli # Get API key from Immich: Account Settings → API Keys immich login http://192.168.4.190:3001 # Upload all photos immich upload /path/to/google-photos-takeout
Notes:
- Google Takeout includes JSON files with metadata (dates, locations, descriptions)
- Immich will preserve original dates and EXIF data
- Albums may need to be manually recreated
- Verify uploads before deleting from Google Photos
- Large libraries (100GB+) can take several hours
-
Download via Web Browser:
- Go to https://www.amazon.com/photos
- Select photos/albums to download
- Click "Download" (downloads as zip files)
- Extract downloaded archives
-
Alternative - Use Amazon Photos Desktop App:
- Install Amazon Photos desktop app (Windows/Mac)
- Use "Download" feature to save locally
- More reliable for large libraries
-
Upload to Immich:
- Same upload process as Google Photos (web UI or CLI)
- Use immich-cli for faster bulk uploads:
immich upload /path/to/amazon-photos-download
Amazon Photos Notes:
- No bulk export like Google Takeout
- Must download in batches or use desktop app
- EXIF metadata usually preserved in original files
- Consider downloading by year/album to organize process
Method 1: macOS Photos App (Easiest for Mac users)
-
Download iCloud Photos to Mac:
- System Settings → Apple ID → iCloud → Photos
- Enable "Download Originals to this Mac"
- Wait for all photos to download (check Photos app for progress)
- Photos stored at:
~/Pictures/Photos Library
-
Export from Photos App:
- Open Photos app
- Select all photos (⌘+A)
- File → Export → Export Unmodified Original
- Choose destination folder
- Check "Export IPTC as XMP" to preserve metadata
-
Upload to Immich:
immich upload /path/to/exported-photos
Method 2: iCloud.com (No Photos App needed)
-
Download from iCloud.com:
- Go to https://www.icloud.com/photos
- Sign in with Apple ID
- Select photos (up to 1,000 at a time)
- Click download icon
- Repeat for entire library in batches
-
Upload to Immich: Same process as other migrations
Method 3: iCloud Photos Downloader (Open Source Tool)
For large libraries, use the command-line tool:
# Install icloudpd
pip3 install icloudpd
# Download all photos
icloudpd --directory ~/icloud-export --username your@email.com
# Upload to Immich
immich upload ~/icloud-exportiCloud Notes:
- Photos app method preserves all metadata (best option)
- iCloud.com limits downloads to 1,000 items at once
- Live Photos download as separate image + video files
- Shared albums must be downloaded separately
- "Optimize Storage" on Mac means photos aren't locally stored yet
- Get API Key: Account Settings → API Keys → Create (needed for CLI uploads)
- Batch uploads: For 100GB+ libraries, upload in smaller batches
- Deduplication: Immich automatically detects and skips duplicate files
- Keep originals: Don't delete from source until verified in Immich
- Monitor space: Check NAS storage capacity before large imports
- Machine learning: First upload triggers ML processing (face detection, object recognition)
Important folders to backup:
/volume1/immich/upload/- All photos and videos/volume1/immich/database/- Database with metadata, faces, etc.
Symptom: Cannot access web interface, connection resets immediately.
Solution: Synology Container Manager requires host networking mode for proper operation.
Ensure your docker-compose.yml has network_mode: host for all services:
services:
immich-server:
network_mode: host
# No ports section needed with host networking
redis:
network_mode: host
database:
network_mode: hostWith host networking:
- Containers bind directly to host ports
- Remove any
ports:mappings from docker-compose.yml - Services connect via localhost (DB_HOSTNAME=localhost, REDIS_HOSTNAME=localhost)
- Access Immich at http://nas-ip:3001 (not 2283)
Container Manager → Container tab → Check all 4 containers are "Running"
Select container → Logs button
If database won't start, check:
- Database folder permissions
- Sufficient disk space
- Database port 5432 not in use
- Stop project
- Delete containers
- Clear database folder:
rm -rf /volume1/immich/database/* - Restart project (will reinitialize database)
When accessing from Mac: /Volumes/immich/
Actual NAS path: /volume1/immich/
- Machine learning requires significant RAM (8GB+ recommended)
- First download of ML models takes time and disk space
- Upload folder will grow with your photo library
- Regular backups recommended