Still Maintained

Self-hosted Photo Galleries: what licence are you actually agreeing to

“Self-hosted” and “open source” are not the same promise, and the lists that recommend these projects rarely separate them. This page sorts 25 photo galleries projects by the licence you are actually agreeing to, as read on 2026-08-20.

8 of 25 are permissive: run them, change them, keep your changes to yourself. 7 are AGPL, where serving a modified copy over a network obliges you to publish those changes, which is the clause that catches people who self-host for a team. 3 are not open source at all, carrying a proprietary or restricted-use licence. The remaining 7 are ordinary copyleft.

ProjectLicenceWhat that meansStarsMaintenanceLanguage
ThumborMITPermissive, no strings10,511ActivePython
LibrePhotosMITPermissive, no strings8,045ActivePython
LycheeMITPermissive, no strings4,261ActivePHP
PiGallery 2MITPermissive, no strings2,256ActiveTypeScript
ChronoFrameMITPermissive, no strings1,909ActiveVue
HomeGalleryMITPermissive, no strings1,173ActiveJavaScript
PhotofieldMITPermissive, no strings603ActiveGo
This week in pastMITPermissive, no strings101ActiveRust
PhotoviewGPL-3.0Copyleft, publish your changes6,509ActiveGo
PiwigoGPL-2.0Copyleft, publish your changes3,842ActivePHP
DamselflyGPL-3.0Copyleft, publish your changes1,784ActiveC#
Immich KioskGPL-3.0Copyleft, publish your changes1,634ActiveGo
ZenphotoGPL-2.0Copyleft, publish your changes319ActivePHP
SPISGPL-3.0Copyleft, publish your changes211ActiveRust
MemtlyGPL-3.0Copyleft, publish your changes190ActiveC#
ImmichAGPL-3.0AGPL, network copyleft112,081ActiveTypeScript
PhotoPrismAGPL-3.0AGPL, network copyleft40,092ActiveGo
EnteAGPL-3.0AGPL, network copyleft28,424ActiveDart
Nextcloud MemoriesAGPL-3.0AGPL, network copyleft3,827ActiveVue
bewCloudAGPL-3.0AGPL, network copyleft1,219ActiveJavaScript
CheveretoAGPL-3.0AGPL, network copyleft956ActivePHP
MediagoblinAGPL-3.0AGPL, network copyleft-Not measuredPython
PhotoStructure⊘ ProprietaryNot open source, restricted use-Not measuredNodejs
Reservo⊘ ProprietaryNot open source, restricted use-Not measuredPHP
Single File PHP Gallery⊘ ProprietaryNot open source, restricted use-Not measuredPHP

What the licence column means

The Maintenance column is a second, independent check: the age of the most recent commit on the default branch, read from the GitHub API on 2026-08-20. Active is within 180 days, Slowing is 180 to 365, Dormant is over a year, Archived means the maintainer marked the repo read-only, and Not measured means the project is hosted outside GitHub so the check does not apply.

Source data from awesome-selfhosted-data, used under CC BY-SA 3.0. Licence family grouping and maintenance status are computed by this site (from the upstream licence fields and the GitHub API) and are not part of the upstream dataset. Licence classification is a summary, not legal advice: check the project’s own LICENSE file before you rely on it. This page is published under the same licence.