# 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: ```yaml 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](https://html5up.net). - Enhanced with Node.js authentication, SQLite database management, and Docker integrations by Tom Misch.