Skip to content
View in the app

A better way to browse. Learn more.

Unraid

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

[Docker] Cloudberry — Self-Hosted Photo Sync & Organiser (iCloud, Google Photos)

Featured Replies

Cloudberry syncs your photo libraries from iCloud and Google Photos to local storage and gives you a web UI to browse, search, organise, and download your photos. Single Docker container, no CLI config needed.

Website: https://tindralabs.com/cloudberry Docker Hub: https://hub.docker.com/r/tindralabs/cloudberry Live Demo: https://demo.tindralabs.com GitHub: https://github.com/tindralabs/cloudberry


What it does

If you have photos in iCloud or Google Photos and want them on your own hardware, Cloudberry handles the full pipeline — authentication (including 2FA), downloading originals, generating thumbnails, and serving everything through a web interface.

  • Syncs photos, videos, and Live Photos in original quality (HEIC, RAW, MOV, etc.)

  • iCloud Photos and Google Photos support (more sources planned)

  • Web UI with timeline view, albums, favourites, search, map view, and bulk ZIP downloads

  • Multi-account support — sync multiple accounts across providers to one server (family setups)

  • Scheduled sync with change detection (new photos, deletions, metadata changes)

  • Collections — curate and download selections for printing or backup

  • Converts to max-quality JPG on download if needed

  • 32 languages with auto-detection

  • Runs on Intel, AMD64 and ARM64

Install on Unraid

Available from Community Apps — search for "Cloudberry". Or manually via Docker Hub:

  • Image: tindralabs/cloudberry:latest

  • Port: 6585 → 8080

  • Config path: /mnt/user/appdata/cloudberry/config

  • Photos path: Your preferred storage location → /photos

  • MASTER_KEY: Required — encrypts your account credentials at rest. Generate with openssl rand -hex 32

After install, open the web UI, add your iCloud or Google Photos account, and sync starts automatically.

Pricing

Cloudberry has a free tier and a paid tier. I want to be upfront about this.

Free

Premium

Accounts

1

Unlimited

Photos

1,000

Unlimited

Sync

Manual only

Scheduled automatic

Change detection

Included

Web UI, search, albums, map, downloads

Included

Included

Price

$0 forever

$4.99/month

The free tier is fully functional — no nag screens, no time limits. 1,000 photos is enough to evaluate whether it works for your setup. Premium unlocks unlimited photos and automatic scheduling.

Why not completely free? Neither iCloud nor Google Photos have fully open APIs. Keeping sync working requires ongoing engineering as Apple and Google change their authentication and session management. The subscription funds that continuous compatibility work.

Tech details

Single container running Node.js (Hono/tRPC), Caddy (reverse proxy), Valkey (job queue), and SQLite. Uses s6-overlay for process management. No external dependencies — everything runs inside the container.

Photos are stored as original files on disk (not in a database). Your files are just files — if you ever stop using Cloudberry, your photos are right there in the folder structure.

Known limitations

  • iCloud requires an active account with 2FA enabled

  • Google Photos support is newer — please report any issues

  • Initial sync of large libraries (50K+ photos) takes time — subsequent syncs are incremental

  • Shared Albums are not yet supported (iCloud uses a different API for these)

I'm actively developing this and responding to bug reports. If something's broken, let me know here and I'll get it sorted.

Edited by tindralabs
minor error

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.