096d7663588967b7d10ed9ef0b4bb34b15b8e2ee
- Selection-Click nutzt jetzt addEventListener mit capture:true auf #main, feuert garantiert VOR Poptrox und kann nicht entfernt werden - Bild-Name/Ordner als data-Attribute auf .thumb gespeichert - Mobile: Nav-Icons 1rem -> 1.3rem, bessere Touch-Targets - Mobile: Selection-Checkboxen groesser (1.8em statt 1.4em) - Mobile: Toolbar-Buttons mit mehr Padding Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Mischkomposition Photography Portfolio
This is the code repository for the photography portfolio of Tom Misch ("Mischkomposition"). The project features a fast static frontend (based on HTML5 UP Multiverse) powered by a robust Node.js + SQLite backend and Nextcloud integration.
Features
- Nextcloud Integration: Photos placed into the Nextcloud directory are automatically detected.
- Client Separation: Guests see the public portfolio, while logged-in clients see their designated, private sub-folders.
- Auto-Thumbnails: Automatic resizing and EXIF extraction (shutter speed, ISO, aperture) for fast loading times.
- Admin Dashboard: Manage users, assign private folders, and trigger One-Click container updates directly from the browser.
- Light/Dark Mode: Dynamic theme toggle saving preferences in the browser.
Deployment Setup (Docker)
This repository is automatically built into a Docker container via GitHub Actions.
To deploy on a NAS or Linux server, adjust the docker-compose.yml to match your Nextcloud mount:
services:
photography-website:
image: ghcr.io/kroonk/photography:latest
container_name: photography-website
ports:
- "8090:8090"
volumes:
- /path/to/nextcloud/data:/app/public/images/fulls:ro
- thumbs:/app/public/images/thumbs
- database:/app/data
- /var/run/docker.sock:/var/run/docker.sock
- ~/.docker/config.json:/root/.docker/config.json:ro
Run docker compose up -d to launch the site.
Credits & License
- Originally based on a Jekyll template.
- UI Design by AJ / HTML5 UP.
- Enhanced with Node.js authentication, SQLite database management, and Docker integrations by Tom Misch.
Languages
JavaScript
64.9%
SCSS
22%
HTML
11.8%
Shell
0.8%
Dockerfile
0.5%