Keine Beschreibung

Medowar 6a7adbeee5 adding parallel uploads vor 10 Stunden
admin 6a7adbeee5 adding parallel uploads vor 10 Stunden
app 6a7adbeee5 adding parallel uploads vor 10 Stunden
assets 6a7adbeee5 adding parallel uploads vor 10 Stunden
config 6a7adbeee5 adding parallel uploads vor 10 Stunden
data 228b9212f1 Project skeleton: directory layout, config samples, access protection vor 1 Monat
docs 6a7adbeee5 adding parallel uploads vor 10 Stunden
media 75ecfa8c4f Flatten layout: document root is the project folder, harden .htaccess vor 1 Monat
.gitignore 75ecfa8c4f Flatten layout: document root is the project folder, harden .htaccess vor 1 Monat
.htaccess 75ecfa8c4f Flatten layout: document root is the project folder, harden .htaccess vor 1 Monat
README.md 75ecfa8c4f Flatten layout: document root is the project folder, harden .htaccess vor 1 Monat
contact.php 561da2fdd9 Add Impressum, Datenschutz and Contact pages vor 1 Monat
datenschutz.php 561da2fdd9 Add Impressum, Datenschutz and Contact pages vor 1 Monat
gallery.php 75ecfa8c4f Flatten layout: document root is the project folder, harden .htaccess vor 1 Monat
impressum.php 561da2fdd9 Add Impressum, Datenschutz and Contact pages vor 1 Monat
index.php 75ecfa8c4f Flatten layout: document root is the project folder, harden .htaccess vor 1 Monat
router.php 75ecfa8c4f Flatten layout: document root is the project folder, harden .htaccess vor 1 Monat
showreel.php 75ecfa8c4f Flatten layout: document root is the project folder, harden .htaccess vor 1 Monat
upload-api.php 6a7adbeee5 adding parallel uploads vor 10 Stunden
upload.php 6a7adbeee5 adding parallel uploads vor 10 Stunden

README.md

Photography Portfolio & Client Galleries

A flat-file PHP website for photographers, built for plain shared webhosting. No database, no framework, no build step — upload via FTP/SFTP and it runs.

Features

  • Landing page — full-screen hero image with an artist introduction.
  • Showreel — the portfolio: selected images displayed full-screen, one per scroll step, on a minimal dark layout. Navigation hides while scrolling.
  • Client galleries — whole event galleries (weddings, events, …) hosted on Hetzner Object Storage (S3). Optionally password-protected and/or with an expiry date after which the gallery is hidden. Visitors load images directly from S3 through short-lived presigned URLs — nothing is proxied through the webhost.
  • Admin backoffice — a small CMS to edit the front page, manage the showreel, create galleries and bulk-upload images. Uploads go straight from the browser to S3, in full resolution, originals untouched; grid thumbnails are generated in the browser.
  • Flat-file storage — all content lives in JSON files; admin credentials live in a PHP config file. Password can be changed online.

Requirements

  • PHP 8.1+ with curl and openssl (standard on shared hosting)
  • Apache with .htaccess support (or any server with the document root pointed at this folder)
  • A private Hetzner Object Storage bucket (for client galleries)

Quick start

cp config/config.sample.php config/config.php          # fill in S3 + site settings
cp config/credentials.sample.php config/credentials.php # default login: admin / changeme
php -S localhost:8080 router.php                        # local preview

Then open http://localhost:8080/admin/, log in, and change the password first (Settings).

Documentation

Layout

Upload the contents of this folder straight into your document root — index.php is the home page.

index.php  landing page              ← document root
showreel.php, gallery.php
admin/     backoffice
assets/    css + js
media/     local images (hero + showreel)
app/       PHP library code    ┐
config/    config + credentials├─ inside the docroot but blocked by .htaccess
data/      flat-file storage   ┘
docs/      documentation
router.php local dev only (php -S)