Run one container
docker compose up -d on anything with Docker — a home lab, a Pi, a $5 VPS. Migrations run themselves.
Self-hosted · Members free · iPhone app
A private movie-club room for you and your friends, on your own server. Rank the shelf, book the night, save a seat, get the reminder. Nobody else's cloud.
docker compose up -d on anything with Docker — a home lab, a Pi, a $5 VPS. Migrations run themselves.
Share the club password. Friends pick a name, upload a face, and rank the shelf. You're the host; they're the Watch.
The iPhone app adds your room by address, signs in, and pushes reminders straight from your server.
What's inside
Ten friends, one couch, a shelf of sagas to get through. Everything here exists because a real club needed it.
Trilogies and sagas with posters, runtimes, and IMDb scores. Ranked-choice runoff decides what plays next — no more group-chat stalemate.
A real calendar. One-tap RSVP, host attendance, split long films across two nights, .ics / webcal / RSS feeds so it lands in everyone’s phone.
Movies, days, and snacks each get a ballot. The lobby shows who’s winning and who still owes the club a vote.
Scheduled, changed, cancelled, plus reminders at each member’s lead times. Sent by your server, straight to The Common Room app.
Your theater gear and each file’s codec, bitrate, and audio format — with hover explainers your friends will pretend to read.
SQLite on your disk. A backup is a folder. No telemetry, no accounts with us, and the license key is checked offline.
The Charter
Every new room runs a 14-day Squire trial. After that the host enters a Charter key and the room is theirs. One key per room.
Squire
Free 14 days
The whole room, every feature, no card. Two gatherings is enough to know.
Start hostingKnight's Charter
$24 per year
One room, one year. Renew when it lapses — nothing is deleted.
Lifetime Charter
$59 once
One room, forever. Every update, no renewals.
Hosting
Paste this into docker-compose.yml, set two secrets, and you have a room. Full guide, reachability options, and upgrades live in the docs.
services:
night-watch:
image: ghcr.io/trevlars/the-night-watch:latest
restart: unless-stopped
ports: ["3080:3000"]
environment:
CLUB_PASSWORD: pick-an-invite-code
ADMIN_PASSWORD: pick-a-host-password
ADMIN_NAMES: Your Name
SESSION_SECRET: "${SESSION_SECRET}" # openssl rand -hex 32
SITE_URL: https://watch.example.com # the https address friends will use
volumes:
- night-watch-data:/data
volumes:
night-watch-data:Questions