From b40e95ca17f8c9f17af5f475d001c8ec33728e6d Mon Sep 17 00:00:00 2001 From: Ken D'Ambrosio Date: Mon, 11 May 2026 18:50:51 +0000 Subject: v1.01: replace bcrypt with PBKDF2-SHA256; update README and DESIGN docs Co-Authored-By: Claude Sonnet 4.6 --- README.md | 52 ++++++++++++++++++++++++++++++++++++++++------------ 1 file changed, 40 insertions(+), 12 deletions(-) (limited to 'README.md') diff --git a/README.md b/README.md index 168edfd..a056891 100644 --- a/README.md +++ b/README.md @@ -5,6 +5,44 @@ back end, plain HTML/CSS/JS front end. Live at **https://albumen.jots.org**. --- +## Features + +### Browsing +- Nested album hierarchy — every directory is an album, unlimited nesting +- Grid view with auto-generated 300×300 thumbnails (images, video frames, audio placeholder) +- Chronological photo sorting when EXIF dates are present, filename order otherwise +- Live search/filter box to narrow albums by name +- Breadcrumb navigation +- Lightbox with keyboard (← →, Esc) and touch-swipe navigation +- Info panel showing filename, EXIF date, and pixel dimensions +- Shareable per-photo URLs (`?photo=filename`) that open the lightbox directly +- Social media link previews via Open Graph meta tags (album cover or specific photo) + +### Slideshow +- Per-album or root-level (all photos across every album) +- Shuffle and Full screen options selectable before launch +- Respects the current album filter — filtered view launches a filtered slideshow +- Cross-fade transitions with configurable interval (1–60 s) +- Keyboard (← →, Space, F), touch swipe, and on-screen controls +- Click/tap a photo during slideshow to jump to its album lightbox + +### Admin +- Single admin account; password stored as a PBKDF2-SHA256 hash (no native gem needed) +- Logging in from an album page redirects back to that album's edit view +- Per-album: title, description, cover image (specific file or random), sub-album order, visibility +- Per-file: caption, visibility +- Save button at top and bottom of the edit form + +### Media support + +| Category | Extensions | +|---|---| +| Images | jpg jpeg png gif webp heic heif tiff bmp | +| Videos | mp4 mov avi mkv webm m4v ogv | +| Audio | mp3 flac ogg wav m4a aac | + +--- + ## Directory layout | Path | Purpose | @@ -80,8 +118,7 @@ You can edit these by hand or through the admin UI at `/admin`. { "title": "Italy 2024", // overrides the directory name in the UI "description": "Two weeks in Rome and Florence", - "cover": "DSC_0042.jpg", // which file to use as album thumbnail - "cover_dynamic": false, // true = play video/animation on hover + "cover": "DSC_0042.jpg", // specific file, or "__random__" for a random pick "visible": true, // false = hidden from non-admin users "files": { "DSC_0042.jpg": { @@ -116,7 +153,7 @@ ssh root@albumen.jots.org ruby /opt/albumen/scripts/set_password.rb ``` -The bcrypt hash is stored in `/opt/albumen/config.yml` (readable only by the +The PBKDF2-SHA256 hash is stored in `/opt/albumen/config.yml` (readable only by the `albumen` service user). --- @@ -187,12 +224,3 @@ scp -r /home/ken/albumen/. root@albumen.jots.org:/opt/albumen/ ssh root@albumen.jots.org 'chown -R albumen:albumen /opt/albumen && systemctl restart albumen' ``` ---- - -## Supported file types - -| Category | Extensions | -|---|---| -| Images | jpg jpeg png gif webp heic heif tiff bmp | -| Videos | mp4 mov avi mkv webm m4v ogv | -| Audio | mp3 flac ogg wav m4a aac | -- cgit v1.2.3