Albums & discovery
Present photos in series and search the entire collection from the homepage. Combine camera, lens, aperture, shutter speed, ISO, lighting and location filters, even without a search term.
A hobby project you can build on
This website grew from two interests: taking photographs and building the technology behind them. If you are a photographer looking for something similar, you can host it on your own webspace.
Self-hosted · PHP & database · Private, non-commercial use
01 / The gallery
The interface stays understated. Visitors can open technical details and additional features whenever they want to learn more about a photograph.
Present photos in series and search the entire collection from the homepage. Combine camera, lens, aperture, shutter speed, ISO, lighting and location filters, even without a search term.
An image viewer with optional EXIF details. Swipe to change photos, pull down to close, or swipe up to show image information.
Preview images and image variants for different displays. Original files are retained for requested downloads.
Collect images, enter an email address and request a personal link. Get 48-hour access to individual files or a combined ZIP.
An optional photo subscription with email confirmation and an unsubscribe link. The photographer prepares and starts notifications in the admin area.
An optional photo map on the homepage and gallery after activation. Use “Show images in this map area” to filter the visible region. Includes aperture-based ratings, dark mode and a contact form with server-side security checks and sending limits.
02 / The workspace
Try it without registering. The public demo password Demo-Portfolio-2026! is also shown on the login page. All visitors share changes; after one hour, the initial state is restored on the next visit. Emails are simulated and statistics use sample data.
A protected admin area brings together images, configuration and feedback. Here is an overview:
Five tabs for uploads, images, ratings, EXIF editing and publishing. Upload photos and videos, synchronise files and manage albums. Deleting an album keeps its media files.
New uploads and FTP imports start as drafts. Publish images immediately, withdraw them or schedule a time in Europe/Berlin. They become available at that time without a cron job. Originals, previews, search, downloads and new subscription campaigns respect the status. Previously saved copies cannot be recalled; emails are still started manually.
Byte-identical files are detected using SHA-256, even with different filenames. Instead of saving a second copy, the existing image can be added to the selected album. Recompressed or merely similar-looking images are not considered duplicates.
A filterable table with thumbnails and ten metadata columns. Edit up to 50 selected images at a time: set values, clear fields or fill missing information only. Camera and lens filters also support EMPTY. Every field offers existing values from the whole collection as suggestions. New values can be entered freely and become suggestions after saving. Changes affect the gallery database; original files remain unchanged.
Prepare thumbnails and display sizes in the admin area so visitors do not have to wait for generation on their first visit.
Seven sections: overview, image views, live, visitor map, browsers & devices, daily overview and notes. Image views count opening the image viewer, not thumbnails. Live estimates visible gallery tabs active in the last two minutes; multiple tabs can count separately. The country map uses local geolocation data without external lookup requests. No unique people are identified and no raw IP addresses are stored. Date-range reports can be exported as CSV; Live shows current activity.
A clear table showing email, file selection, sending status and view/download-start counts. Disable personal links when needed.
View subscribers and sending logs in tables, gather new images for a message, and start, pause or resume sending. Keep the admin area open while sending.
Check for new versions and choose to install compatible updates. HTTPS, digital signatures and checksums protect the download. The current code is backed up before replacement; interrupted updates can be rolled back through a protected recovery page. Images, database, credentials and settings are retained. Local code changes or required database migrations stop automatic updating. Version 1.5.0 is the baseline; older versions need a fresh installation or a separate manual migration first.
The self-hosted admin shows the shared anonymised ideas board with status, target version, filters and support counts. Support existing ideas by confirmed email or submit your own. Each address gets one vote per suggestion. Central administration, personal messages and contact details remain with the developer.
Change the admin password directly, or request a one-time recovery link to the saved contact address. The self-hosted edition requires changing the password on first login. Consistent form destinations and the technical account identifier admin help password managers identify the login.
Seven tabs for general settings, features, appearance, images, social links, slideshow and legal details, saved together. Enter a custom hex accent colour or choose one of six presets. Arrange social links with matching icons.
Enable or disable photo subscriptions, the admin link, dark-mode switch, homepage search and filters, and the contact form individually. Place albums above or below selected photos. Search inside albums stays available, and existing subscribers can still unsubscribe.
Check the server and PHP extensions, upload limits, directory permissions, cache and logged email sending. A step-by-step media check finds missing or unreadable files and image variants not yet prepared. Checks do not change images or send test emails.
Under Configuration → Images, choose separately whether the viewer starts with EXIF details on desktop or mobile/tablet. Both defaults are initially off. Visitors can toggle the display at any time.
The admin navigation stays on the left while the website appears on the right. Use Refresh preview to review saved changes. The preview is not loaded on phones and tablets.
A discreet admin link in the website footer shows Signed in when your session is valid. Back to website returns from admin to the gallery in the same tab.
A toggle for the entire download feature and basket. When off, selection and requests are disabled and personal download links are paused. Links that are still valid work again after enabling it.
03 / Behind the scenes
This edition is for photographers who run their own website and have some experience with hosting and databases.
The web wizard guides you through requirements, verification, database details and website settings. After uploading, open the website over HTTPS, upload the provided verification file unchanged and continue in the browser. No PHP file needs editing. Finally, tables and configuration are created and the personal password-change page opens. The fixed initial password is Photography-Start-2026!. If you leave the setup session before changing the password, your first login also requires the individual access key from the completion page. The installer locks itself automatically. Existing tables are not overwritten.
The contact form, download links and photo subscriptions require working email delivery from your host. Subscription notifications are started manually in the admin area.
The optional map loads Leaflet and OpenStreetMap after activation. Update your content, operator details and privacy information before publishing.
Installation reporting: During setup, when saving settings, and subsequently at most once a day when the website is used, the self-hosted edition reports its website URL, version and a random installation identifier to brehmen.com. This is disclosed beforehand. No images, visitor or subscriber data are sent; no reports are sent without page visits. There is no switch to disable reporting in the admin area.
Internal statistics count aggregate page and image views. Live briefly records active gallery tabs; a random token is held only in memory, while the server stores its hash, country and last activity time. Approximate country lookup happens locally using DB-IP Country Lite (CC BY 4.0); VPNs and providers can affect accuracy. There is no individual browsing history or personal email-open tracking.
04 / Try it yourself
The complete website package with source code, an empty database schema, a guided web installer and updates in the admin area.
Your installation starts without my photos, credentials, subscribers or statistics. A neutral camera icon replaces my personal logo.
Download ZIPVersion 1.7.0 · 4.637 KB · 17.10.2026
New in version 1.7.0: the shared ideas board appears directly in the self-hosted admin. View and filter anonymised suggestions from all users with progress, target version and support counts, and support them by confirmed email. Unmodified installations from version 1.5.0 can install this version using Software updates.
A hobby project with no guaranteed support or update schedule. Test it on your hosting before production use. Initial installation requires an empty database. Compatible subsequent releases can then be installed using the update button. Database changes and migration from 1.3/1.4 still require a separate migration or fresh installation.
From ZIP to portfolio
All steps are explained in the browser; the README provides additional help. Create the database with your host beforehand. Back up existing installations first – this edition does not include a general-purpose database upgrader.
Release Info
From the first self-hosted edition to the current version. This information was compiled from published packages and their changelogs.
Developing together
What feature is missing? What could be easier? After you confirm your email address, your suggestion will be reviewed in the central admin area. You will receive updates about the decision and the released version.
Browse confirmed suggestions from all users. Public descriptions are reviewed for personal information first. Supporting an idea shows that you would also find it useful.
1 suggestions · Page 1 of 1 · Sorted by support
On smaller screens, scroll the table horizontally.
| Suggestion | Status | Version | Votes | Support |
|---|---|---|---|---|
| #1Verbesserungen optimieren alle Eingegangenen Verbesserungen auch in der Selfhostet version sehen und den aktuellen fortschritt sehen | Completed | Available since1.7.0 | 1 | Closed |