← Back to all sparks
L

LibrePhotos

COLLAB
Velocity0.0

Self-hosted photo management service with automatic tagging

Five repos became one, and the authorization model got a public-safe user view.

monorepoself-hosted-photosauthorizationapi-serializersopen-source
Current state
LibrePhotos released quarterly and the June 2026 milestone consolidated backend, frontend, mobile app, docs and Docker deployment into a single repository with each project's git history preserved. The follow-up patch cleans up fallout from an earlier authorization hardening: GET /api/user/ now returns a public-safe serializer to non-admins, with email, scan directory, Nextcloud credentials and the superuser flag withheld. The only other entry in the feed is a 2019 release candidate.
Where it's heading
Two threads are visible. Structurally, the project is reducing the cost of contributing — one issue tracker, one pull-request target, unified Actions workflows, a single Renovate config. Behaviourally, it is separating what a user can see about other users from what an admin can, and then repairing the frontend assumptions that separation broke. Both are the moves of a self-hosted project trying to be maintainable by more than its core group.
Prediction
With the monorepo landed, expect the next release to spend its budget on the unified build and release pipeline rather than photo features, and on further tightening of what non-admin API responses expose.

Recent moves

  1. 1mo ago

    1.0.3 - Fix user list popup for non-admin users

    Cleanup after the authorization hardening: the frontend was validating every user row against the full admin schema, so non-admins saw a validation popup per row. Validation is now lenient and public_sharing is restored to the public serializer so public-user discovery keeps working, while the sensitive fields stay hidden.

    View source ↗
  2. 1mo ago

    LibrePhotos consolidates five projects into one monorepo

    ⚡ SPARK

    The quarterly milestone that reshapes the project: backend, frontend, mobile, docs and deployment move into one repository under apps/ and deploy/, with git history preserved and the CI, Dockerfiles, compose files and Renovate config rewritten around the new build context. It sets the structure every later release works within.

    View source ↗
  3. 7y ago

    0.2.0-rc adds a timezone environment variable

    A 2019 release candidate adding a timezone environment variable and changing a media default. It sits in the feed as a historical orphan, seven years behind the rest of the entries.

    View source ↗