Open-source client galleries
Client galleries
that carry your name.
aelor.gallery is self-hostable gallery software for photographers. Deliver your work on your own domain and your own storage — no monthly fees, and no one else's brand between you and your clients.
AGPL-3.0 · Docker · your S3 bucket or a plain disk · already delivering real weddings

The studio dashboard — every gallery, on your own install.
Stop renting the home for your photographs.
The hosted services are polished — but you rent them. A monthly fee that climbs with your storage, your galleries living on their domain, your clients' photographs sitting on their servers.
aelor.gallery is yours end to end. Your server, your bucket, your brand on every page a couple opens. There's no plan to outgrow and no one to ask permission.
What it does
Everything a wedding needs, and nothing it doesn't.
A gallery worth sending
A waterfall grid that keeps every frame's proportion, full-screen cover heroes, folders and sections to shape a shoot.
Guests sign up by QR
Print one code. Guests scan it on the day, leave an email, and get the gallery the moment you publish — no code to type.
Favourites, shared back
The couple builds lists of the frames they love and sends them straight to you — for the album, the prints, the thank-yous.
Downloads on your terms
Originals or web-size, a single frame or a streamed ZIP, with an optional PIN and rules per access level.
On your own site
A drop-in login component and a REST API let the gallery live inside your marketing site, styled as your own.
Made for the phone
The dashboard and the gallery are built for touch — a bottom bar, swipeable photos, thumb-sized controls. It's where couples open the link.
A closer look
The editor you run the studio from.




Sample imagery shown. In a real install these are the photographer's own photographs.
Open source
Runs on your machine. Answers to no one.
aelor.gallery is AGPL-3.0 and self-hosted. It runs on your own server with Postgres and your choice of storage — Cloudflare R2, any S3 bucket, or a plain disk to start. Docker up, point a domain at it, and you're live.
# clone, set three secrets, and start
git clone https://github.com/dennisrolea/aelor.git
cd aelor && cp docker/.env.example docker/.env
docker compose -f docker/docker-compose.yml --env-file docker/.env up -d
In production today