Тайлбар байхгүй

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

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)