← Back to all sparks
L

LibrePhotos

COLLAB
Velocity3.8

Self-hosted photo management service with automatic tagging

LibrePhotos adds SSO and OCR search, turning a personal container into a multi-user service.

self-hostedphoto-managementsingle-sign-onocr-searchmulti-usersecurity
Current state
LibrePhotos is a self-hosted photo library with face recognition, geotagging and album management. The June milestone collapsed five repositories into one monorepo and moved the project onto semantic versioning; the weeks after were spent stabilising that build, mostly fighting Renovate over GPU image pins. Release 1.1.0 is the first substantial feature release since: OpenID Connect single sign-on, screenshots and documents as first-class media categories with optional OCR text extraction and selectable live text, self-service password reset, deploy-time feature flags, Kubernetes health endpoints, and a security fix for bulk endpoints that let any authenticated user modify other users' public photos.
Where it's heading
The project is deliberately growing up. The monorepo and semver removed the coordination tax on contributors; 1.1.0 removes the reasons an operator could not run this for other people. SSO, admin-configurable SMTP, per-deployment feature flags, k8s liveness and readiness probes and a properly scoped authorization fix are all infrastructure for shared instances rather than features for a single owner. The OCR work runs on a separate axis, and is off by default — the project is adding capability without forcing compute cost on anyone.
Prediction
SSO provisioning currently refuses to create staff or superuser accounts and account linking requires a verified email; group or role mapping from the identity provider is the obvious next requirement once instances have more than a handful of SSO users.

Recent moves

  1. 19d ago

    SSO, OCR text search and a cross-user authorization fix

    ⚡ SPARK

    The first feature release after the monorepo restructuring, and the one that changes who can run LibrePhotos. Identity, password reset, feature flags and health endpoints arrive together — the operational surface a shared deployment needs — alongside an OCR search capability and a fix for a cross-user authorization hole.

    View source ↗
  2. 2mo ago

    1.0.3 - Fix user list popup for non-admin users

    Stops a flood of validation-error popups non-admin users saw after an authorization hardening change narrowed the user serializer. A frontend correction to fallout from a security fix rather than a change in its own right.

    View source ↗
  3. 2mo ago

    GPU image: restore the onnxruntime and timezonefinder pins

    Restores Python 3.10 pins for onnxruntime and timezonefinder in the GPU image. One of several build fixes in the days after the monorepo move, as the unified CI surface was brought back under control.

    View source ↗
  4. 2mo ago

    GPU image: stop Renovate collapsing the scikit-learn pin

    Prevents Renovate from re-collapsing a deliberate scikit-learn pin in the GPU image. Dependency-bot housekeeping, visible here only because the monorepo consolidated Renovate configuration into one place.

    View source ↗
  5. 2mo ago

    Switching to semantic versioning

    The move to semantic versioning, bundled with backend hardening against transient exif and face-service failures and a set-based migration for old encodings. Versioning discipline following directly from the monorepo consolidation.

    View source ↗
  6. 2mo ago

    LibrePhotos moves backend, frontend, mobile and docs into one monorepo

    ⚡ SPARK

    The quarter's milestone release, and the structural pivot the later entries all follow from: backend, frontend, mobile, docs, and deployment collapsed into one repository with history preserved. Everything since — semver, unified CI, the GPU image pin fights — is downstream of this move.

    View source ↗