Photos
Photo library on TrueNAS, served at photos.saxobroko.com. Google Photos is long gone from my workflow — everything lives on my own hardware behind a Cloudflare Tunnel.
History
Google Photos dropped free storage around 2019. I did a Takeout, then my Google account got compromised — luckily after the download. Everything has lived on my own hardware since.
Started on Synology Photos (DS920+). Migrated to TrueNAS when I moved to the Ugreen DXP 8800 Plus.
Stack (TrueNAS)
| Aspect | Detail |
|---|---|
| Public URL | photos.saxobroko.com |
| Host | TrueNAS @ 192.168.2.203 |
| Likely app | Immich — verify in TrueNAS → Apps (name may differ if I switched) |
| Tunnel | Public hostname in Cloudflare → cloudflared → app port |
If the installed app is not Immich, update this page after checking the TrueNAS app catalogue. Synology Photos is not used anymore.
Verify which app is running
- Open dsm.saxobroko.com
- Go to Apps / Installed Applications
- Look for Immich, PhotoPrism, or similar
- Note the internal port for LAN troubleshooting
Storage path
Photos sit on the same RAIDZ1 pool as media — Backups and pool health.
| Layer | Path / name |
|---|---|
| TrueNAS dataset | Dedicated photos dataset on the pool — TODO: exact dataset name (e.g. pool/photos or under a shared root) |
| Docker volume | Mounted into the app container by TrueNAS app config |
| Windows | Not typically mapped as a drive letter; access via web/app |
Check Storage in TrueNAS for capacity. Photo libraries grow quietly — watch free space alongside media and torrents.
Setup (TrueNAS)
- Open TrueNAS → Apps
- Install/configure the photos app (Immich or equivalent — confirm what's deployed)
- Point it at the photo storage dataset
- Complete first-run admin user (credentials in Vaultwarden)
- Add photos.saxobroko.com tunnel hostname if not already — cloudflared
- Add WAF rules (block no aus, localnet full strict ssl) — Network
- Add tile on Homepage
Mobile upload (iOS)
Immich (if that is what is installed) provides a native app:
- Install Immich from the App Store (or whichever client matches the running app)
- Server URL:
https://photos.saxobroko.com - Log in with homelab credentials (Vaultwarden)
- Enable background upload / auto backup in app settings
- Leave on Wi‑Fi for bulk uploads — first sync takes ages (tens of thousands of photos)
Tips for large libraries
| Tip | Why |
|---|---|
| Initial sync on Wi‑Fi overnight | Avoids mobile data and timeouts |
| Keep app foregrounded first hour | Some iOS versions throttle background transfers |
| Check TrueNAS free space before bulk import | Import + thumbnails spike disk use |
| HEIC / Live Photos | Immich handles these; verify transcoding settings if playback issues |
Accessing photos
| Method | URL / app |
|---|---|
| Website | photos.saxobroko.com |
| Phone | Immich (or matching) mobile app |
| LAN | Direct to app port on 192.168.2.203 if tunnel is down |
Public access is geo-restricted to Australia via Cloudflare block no aus like most homelab hosts.
Backups and snapshots
Photos are valuable and irreplaceable compared to re-downloadable media.
| Strategy | Notes |
|---|---|
| ZFS snapshots | Snapshot the photos dataset before major app upgrades — Backups and pool health |
| Off-site | TODO: document if Takeout copy, external drive, or cloud backup exists |
| Pool health | RAIDZ1 = one disk failure tolerance; degraded pool is urgent |
Losing the pool without off-site backup loses the photo library. Media can be re-grabbed from trackers; photos cannot.
Troubleshooting
| Problem | Fix |
|---|---|
| Uploads stuck on iPhone | App logged in? Background refresh? Wi‑Fi only? — Common Issues |
| Site down publicly | cloudflared; check tunnel hostname |
| Site down on LAN too | TrueNAS app stopped; disk full; pool degraded |
| Slow gallery load | Thumbnail generation still running after import; check CPU/disk on NAS |
| Wrong app after migration | Confirm Immich library path points at migrated files, not empty volume |
Related
- TrueNAS — pool and apps
- Backups and pool health — snapshots, scrubs
- Network — photos.saxobroko.com DNS
- Services — service index
- Common Issues