Skip to content

GuestrollEvery guest's photos, in one place.

Guests scan the QR code on the table, their phone's camera opens, and every photo lands in your private album. No app to install, no account to create. You host it, with one Docker command.

How it works ​

Built for the night itself: a guest has twenty seconds and one free hand. Built for the morning after: the hosts want every photo, sorted, private.

Scan ​

Print the card, one per table. The QR code opens a web page on any phone.

Shoot ​

The camera opens straight away. One tap and the photo is on its way, even on a weak connection.

Keep ​

Everything lands in your album, with who took it. Approve, project, download, send the album to your guests.

The album belongs to the hosts. ​

Guests see their own photos, and the others' approved ones only if you choose to share the album. Every photo request is checked, a copied link opens nothing elsewhere, and GPS position and camera metadata are stripped from every upload. Challenges, filters and a guestbook give guests something to do besides scrolling.

How photos stay private →

The guest page on a phone: the shutter and the guest's own photosThe guest page on a phone: the shutter and the guest's own photos, dark theme

A contact sheet for the hosts. ​

Approve each photo first, or publish and hide later. Select in bulk, star your favorites, add the photographer's shots, and download the whole album, or just the best of it, as one ZIP that streams even when it weighs gigabytes.

The admin guide →

The contact sheet with photos selectedThe contact sheet with photos selected, dark theme

A QR code that looks like your event. ​

Colors, dot and corner shapes, your logo in the middle, a caption. Every preset is decoded by a real scanner in the test suite. PNG up to 4096 px, SVG for the print shop, a printable A4 table card.

QR & sharing →

The QR code designerThe QR code designer, dark theme

Know how the night went. ​

Photos, guests, views, downloads and storage at a glance, uploads hour by hour, who took the most photos, and how each challenge went.

The dashboard →

The dashboardThe dashboard, dark theme

The live wall. ​

A full-screen slideshow for a projector or a TV: one print at a time, a mosaic or a grid. New photos show up within seconds, credited to whoever took them, with the QR code in a corner so the room keeps joining. With moderation on, nothing reaches the screen before you approve it.

The live wall showing a guest's photo as a print

The tour ​

Every feature in a few minutes, from the QR code on the table to the album the morning after.

Install it in a minute ​

One container, one volume. Phones only open the camera on HTTPS pages: put it behind a reverse proxy with a certificate, the deployment guide has Caddy, Traefik and nginx setups.

bash
docker run -d --name guestroll \
  -p 3000:3000 \
  -v guestroll-data:/data \
  -e ADMIN_PASSWORD='choose-a-long-password' \
  -e PUBLIC_URL='https://photos.example.com' \
  ghcr.io/achedon12/guestroll:latest

Then open /admin, sign in as admin, create an event and print its QR code.

How it compares ​

GuestrollShared cloud albumPaid event apps
Guests install an app or create an accountNoOftenSometimes
Guests see each other's photosNeverYesUsually
Your photos stay on your serverYesNoNo
PriceFree, MITFreePer event

Released under the MIT License.