Razzia is a self-hosted quiz platform for small events: you write quizzes on your own server, show a game PIN and a QR code on the projector, and players answer from their phones in a browser. There is no account system for players and no per-seat pricing — one container plus a folder of quiz files is the whole install, so a pub quiz, a classroom session or a team offsite runs on hardware you already own.
The host drives the game from a manager screen at /manager: pick a quiz, start the room, and the lobby shows the join address, a six-digit PIN and a QR code. Quizzes and results are plain files under config/, created with an example quiz on first run and editable from the host, so backups are a directory copy rather than a database dump. Deliberately narrow scope: it is built for smaller events, not for open public tournaments or thousands of concurrent players.
/manager to create, edit and start quizzes and to review results.config/ directory, so they survive container updates and are trivial to back up or edit./api surface for sessions, quiz and result CRUD, and game creation.Because the alternatives are hosted services that own your questions and your players’ data. Razzia keeps both on your server: quiz content is a folder of files you can version, results never leave the box, and nothing stops working when a vendor changes its pricing. It is also small enough to understand — a single Node.js container with a mounted config directory — which makes it a good fit for a school, a club or an internal team that wants a quiz format without a subscription.
Distributed as a Docker image (ralex91/razzia on Docker Hub, ghcr.io/ralex91/razzia on GHCR) and also runnable from source with Node.js 24 and pnpm 10.16 or newer. The only required configuration is a manager password; the web port (default 3000) and socket port (default 3001) are optional.
Open source — MIT Licence.