|
|
@@ -0,0 +1,55 @@
|
|
|
+# 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 `public/`)
|
|
|
+- A private Hetzner Object Storage bucket (for client galleries)
|
|
|
+
|
|
|
+## Quick start
|
|
|
+
|
|
|
+```bash
|
|
|
+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 -t public # local preview
|
|
|
+```
|
|
|
+
|
|
|
+Then open http://localhost:8080/admin/, log in, and **change the password
|
|
|
+first** (Settings).
|
|
|
+
|
|
|
+## Documentation
|
|
|
+
|
|
|
+- [docs/SETUP.md](docs/SETUP.md) — deployment, Hetzner bucket + CORS setup
|
|
|
+- [docs/ADMIN-GUIDE.md](docs/ADMIN-GUIDE.md) — using the backoffice
|
|
|
+- [docs/ARCHITECTURE.md](docs/ARCHITECTURE.md) — how it works inside
|
|
|
+
|
|
|
+## Layout
|
|
|
+
|
|
|
+```
|
|
|
+public/ web root (point your domain here)
|
|
|
+app/ PHP library code (not web-accessible)
|
|
|
+config/ static configuration + admin credentials
|
|
|
+data/ flat-file content storage (JSON)
|
|
|
+docs/ documentation
|
|
|
+```
|