icloud-backup-docker
A Docker-based backup service for iCloud Drive and iCloud Photos with a user-friendly web interface.
7.9K
Back up your iCloud Drive and iCloud Photos automatically with a simple web interface.
linux/amd64 and linux/arm64# docker-compose.yml
version: "3.8"
services:
icloud-backup:
image: michis0806/icloud-backup-docker:latest
container_name: icloud-backup
restart: unless-stopped
ports:
- "8080:8080"
volumes:
- ./backups:/backups
- ./config:/config
- ./archive:/archive # for sync policy "archive"
environment:
- TZ=Europe/Berlin
- AUTH_PASSWORD=my-secure-password
- SECRET_KEY=change-me-in-production
docker compose up -d
Open http://localhost:8080 and log in.
If
AUTH_PASSWORDis not set, a random password is generated and printed to the container log on startup.
| Variable | Default | Description |
|---|---|---|
AUTH_PASSWORD | (random) | Web UI password. Random if not set (check logs). |
SECRET_KEY | (uses AUTH_PASSWORD) | Secret for cookie signing. Falls back to AUTH_PASSWORD if not set. |
LOG_LEVEL | INFO | Log level (DEBUG, INFO, WARNING, ERROR). |
ARCHIVE_PATH | ./archive | Host path for archived files (sync policy "archive"). |
TZ | Europe/Berlin | Container timezone. |
Pushover notifications are configured in the web UI under Einstellungen and stored in
/config/config.yaml.
| Path | Description |
|---|---|
/backups | Backup destination |
/config | Config file, session tokens, caches |
/archive | Archived files when sync policy is set to "archive" |
For each backup type (Drive / Photos) you can choose independently what happens when files are deleted in iCloud:
/archive, preserving the folder structureSession tokens are cached so you don't need to re-authenticate on every run. 2FA tokens typically last ~2 months.
Works great on Synology NAS via Container Manager, SSH, or Portainer. See the full documentation for detailed Synology setup instructions.
ZONE_NOT_FOUND (Notes surface it
as a 404, Reminders as a wrapped "Changes response validation failed").
Both were treated as hard errors, which marked the whole backup as failed
and triggered the failure notification. A missing zone is now recognised
as a benign empty result (zero items, no error), so the backup succeeds
and only the genuinely failing sources count as errors.Content type
Image
Digest
sha256:ec27dfd2b…
Size
71.6 MB
Last updated
20 days ago
docker pull michis0806/icloud-backup-docker