Razzia

MIT
Platform
Docker Web Self-hosted
Licence
MIT Open source
Website
razzia.app
Razzia

Overview

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.

Key Features

  • Browser-based play on both sides: the host runs the question screen, players join from their phones by PIN or QR code — no app to install.
  • Manager interface: a password-protected screen at /manager to create, edit and start quizzes and to review results.
  • File-based storage: quizzes and results live in the mounted config/ directory, so they survive container updates and are trivial to back up or edit.
  • Custom quiz authoring: questions and answers are structured files you can write and version on the host, with the format documented in the project’s quiz guide.
  • Results history: finished games and their answers stay available in the manager, so you can look back at a past session.
  • Multi-language interface: the UI ships with a language selector, English by default.
  • Branding options: optional custom theming documented in the project’s branding guide.
  • WebSocket protocol for custom clients: documented open protocol, so a physical buzzer (an ESP32, for example) can be built against it.
  • HTTP API: a documented /api surface for sessions, quiz and result CRUD, and game creation.
  • Reverse-proxy ready: guides for Traefik, Nginx and Caddy, so it can sit behind TLS on a real hostname.

Why Use Razzia

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.

Use Cases

  • Pub and club quizzes: one laptop drives the questions while the room answers from phones.
  • Classroom and training recaps: quick rounds to check what stuck, with results kept locally.
  • Team offsites and conferences: an icebreaker game that runs on the venue network.
  • Hardware tinkering: the documented WebSocket protocol leaves room for custom buzzers and displays.

Deployment

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.

Licence

Open source — MIT Licence.

Explore More Categories

Sign In

Register

Reset Password

Please enter your username or email address, you will receive a link to create a new password via email.