What it makes possible.
Photographers and photography enthusiasts who want to host and organize their own galleries.
Publish a portfolio or shared album from directories of images, with a local admin panel for content management.
Inside the project.
- Grid, masonry, single-column and slideshow layouts with a PhotoSwipe lightbox.
- Nested folders, collections, cover images and Markdown metadata control the gallery.
- Password-protected albums use server-side authentication and rate limiting.
- EXIF display, video playback and ffprobe metadata extraction.
- On-demand cached thumbnails, lazy loading and EXIF orientation handling.
- A Rust core and Tauri shell add import, ratings, album publishing, synchronization and non-destructive adjustments; the desktop README records platform gaps.
Getting started.
- The web README lists Node.js 18+ and npm 9+.
- ffmpeg is optional for video metadata.
- Production deployment is documented for a Node server with PM2, SSH and rsync.
- Clone the public repository and run npm install, then npm run dev.
- Create an album under src/content/albums/ with an index.md file and photos; open http://localhost:4321.
- Run npm run admin to open the local-only content manager on port 4444.
Before you use it.
- The included web admin panel is intended for local use and is not deployed to production.
- The deployment workflow requires server administration; no hosted service is included in the repository.
- The desktop README says RAW decoding is not implemented and macOS runtime, codesigning and notarization are unproven.
Project sources.
Based on public project documentation and source, checked 7 September 2026. Refer to the repository for changes since then.