Loading page...Загружаем страницу...正在加载页面...
AtlasRepo

The Photo Frame I Didn't Have Time to Fix

Description and use

Photoframe was migrated from Google Photos to self‑hosted Immich, updated for Raspberry Pi OS Bookworm, and hardened for daily use across multiple Pi models and display resolutions.

Problem

Google Photos Library API was cut, preventing the photoframe project from accessing user photos, and the project needed to run reliably on various Raspberry Pi models and display resolutions.

Outcome

The photoframe project was successfully migrated from Google Photos to Immich, made compatible with Raspberry Pi OS Bookworm, and hardened for daily use on multiple Pi models and display resolutions. A strict release gate and automated agent workflow ensured reliability.

Workflow

  • 1. Identify Immich as photo source and map albums to photoframe keywords.
  • 2. Implement Immich API key authentication and /immichconfig route.
  • 3. Update Flask error handling and add memory‑aware image selection.
  • 4. Replace tvservice with framebuffer fallback and add health checks.
  • 5. Add exponential backoff retry logic for network failures.
  • 6. Implement clean shutdown handling and hide credentials from logs.
  • 7. Build a headless Lite image with pi-gen and CI under QEMU.
  • 8. Establish a release gate: all changes must be tested on Pi hardware before tagging.
  • 9. Release v3.0.0‑rc2 after multiple independent reviews and extended Pi 4 testing.

Evidence

Google cut the Photos Library API down to photos an app uploaded itself, and a frame that reads your library has nothing left to read.

Source

The fix was obvious on paper: teach photoframe to talk to Immich.

Source

A pull request became the vetting gate for the release flow.

Source

  • Record date: 2026-10-10T16:41:15.969Z