# Admin Guide (Backoffice) Open `https://your-domain.com/admin/` and log in. All content management happens here; visitors never see this area. ## Front page *Front page* edits the landing page: your name/title, the introduction text (line breaks are kept), and the full-page hero image. Uploading a new hero image replaces the old one. Images are stored in full resolution, unmodified. ## Showreel *Showreel* manages the portfolio shown at `/showreel.php` — each image fills the whole screen, in the order listed. Upload images (a few at a time — these go through the webhost, which may have upload size limits), reorder them with the arrow buttons, remove them with ✕. Showreel images are stored locally on the webhost. ## Galleries *Galleries* is for delivering whole events to clients. **Create** a gallery with a title, and optionally: - **Password** — visitors must enter it before seeing the gallery. You can set, change, or remove it later. - **Expiry date** — after this day the gallery link shows "not available". Nothing is deleted; clearing the date brings it back. - **Resize uploads to** — cap the longest edge of every image uploaded into this gallery: *Ultra (4096 px)*, *High (2560 px)*, *Mid (1920 px)*, *Low (1280 px)*, or your own number. The default, *Original*, stores what the camera produced. Resizing happens in your browser before the file is sent, so it also gets big images past the webhost's upload limit — but re-saving the image drops its EXIF data (camera, lens, date, location), so choose *Original* when that matters. Files the browser cannot read, such as RAW, are uploaded at full size regardless. All of these can be changed later in the gallery editor. Changing the resolution affects new uploads only; images already in the gallery stay as they were stored. Each gallery gets an unguessable link like `/gallery/?g=wedding-mueller-x7Kf3q` — copy the *Share link* from the gallery editor and send it to your client. **Upload images** by dropping them onto the upload area in the gallery editor. Unless the gallery caps its resolution (above), files are stored in **full resolution, byte-for-byte unmodified**. Keep the browser tab open until every file shows *done*; failed files offer a *retry* link. A small preview thumbnail is generated by your browser for the gallery grid; files the browser cannot decode (e.g. RAW) are uploaded anyway, just without a preview. **Delete** an image (the ⋯ button on its thumbnail → *Delete*) or a whole gallery — this also removes the files from S3 permanently. ### Topics Topics split a gallery into sections — the days of a trip, the stops of a shoot. They are optional: a gallery with no topics looks exactly as it always has. Add them in the **Topics** card of the gallery editor, where you can also rename them, reorder them with ↑ ↓, and delete one. Deleting a topic never deletes photos — they simply stop belonging to it. Put an image into a topic in either of two ways: - **drag** its thumbnail onto another section, or - open the **⋯** menu on the thumbnail and pick a topic. When you are about to upload a batch that all belongs to the same topic, choose it in **Upload into** above the drop area first — far quicker than assigning afterwards. What your client sees: photos with no topic first, with no heading, then each topic as a heading they can collapse with the › arrow. In the *Download all* ZIP, each topic is a folder and the photos with no topic sit in the root. Photos uploaded through a **guest link** go into a "Guest uploads" topic, which appears by itself the first time someone uses the link. You can rename it, move it, and move photos out of it like any other topic; new guest uploads keep arriving in it. (Guest photos uploaded before this feature existed cannot be identified after the fact and stay without a topic.) Reorganising a gallery makes its *Download all* archive out of date, so the button is disabled while it rebuilds itself in the background — same as after adding or deleting photos. ## Settings Change the admin password here (minimum 8 characters). The change takes effect immediately. The username and the S3 settings can only be changed by editing the files in `config/` on the server. After 5 failed login attempts the login is locked for 15 minutes. ## Good to know - Visitors load gallery photos straight from Hetzner S3 through signed URLs that expire after ~1 hour; reloading the page issues fresh ones. Nobody can use a shared image URL indefinitely, and expired galleries really do go dark. - All content lives in flat files: `data/` (JSON) and `media/` (showreel/hero images). Backing up = copying those two folders plus `config/`. - After the software has been updated on the server, open **Migration** from the dashboard once and run it. The dashboard tells you when this is outstanding; it is safe to run again at any time and deletes nothing.