GameNight

GameNight

Docker app from Cdybkr's Repository

Overview

Self-hosted multiplayer party games for your living room: any phone, tablet, or laptop on your LAN becomes a controller. Create a room, share the 6-letter code or invite link, and play. Ships five games: Mongolpuri (social deduction, 4-15 players), UNO, Quiz (15-question trivia), Tic Tac Toe (with tournament brackets), and Scribble (draw & guess). Features reconnect support, spectator mode, 100 avatars, and per-game host settings. No accounts, no persistent data. Note: the Quiz game fetches its questions from opentdb.com, so that one game needs internet access; everything else is fully local. No authentication by design — keep it LAN-only.

🎮 GameNight

Self-hosted multiplayer party games for your living room. No internet. No accounts. Just fun.

Node.js Socket.io Express License: MIT Games Multiplayer No frameworks


  ██████╗  █████╗ ███╗   ███╗███████╗███╗   ██╗██╗ ██████╗ ██╗  ██╗████████╗
 ██╔════╝ ██╔══██╗████╗ ████║██╔════╝████╗  ██║██║██╔════╝ ██║  ██║╚══██╔══╝
 ██║  ███╗███████║██╔████╔██║█████╗  ██╔██╗ ██║██║██║  ███╗███████║   ██║   
 ██║   ██║██╔══██║██║╚██╔╝██║██╔══╝  ██║╚██╗██║██║██║   ██║██╔══██║   ██║   
 ╚██████╔╝██║  ██║██║ ╚═╝ ██║███████╗██║ ╚████║██║╚██████╔╝██║  ██║   ██║   
  ╚═════╝ ╚═╝  ╚═╝╚═╝     ╚═╝╚══════╝╚═╝  ╚═══╝╚═╝ ╚═════╝ ╚═╝  ╚═╝   ╚═╝  

GameNight turns any device on your local network into a party game console.
Run one command → share the URL → play instantly.


🎲 Games

Game Players Vibe
🔪 Mongolpuri 4–15 Social deduction — lies, trust, and midnight murder
🃏 UNO 2+ Classic card game with skips, reverses, and wild cards
🧠 Quiz 2+ 15-question trivia from the internet — faster answers score more
Tic Tac Toe 2+ Classic 1v1 with score tracking and match formats
🎨 Scribble 3+ Draw a word while your friends race to guess it

✨ Features

  • 🌐 Fully local — runs on your LAN, no internet required after setup
  • 📱 Works everywhere — phone, tablet, laptop — any browser
  • 🏠 Room codes — create a room, share the 6-letter code or invite link, done
  • 🔗 Smart invite links — link pre-fills the room code and shows only the game being joined
  • 🎭 100 avatars — auto-assigned by name for known players, random for new ones; open a modal to browse and change
  • 💾 Remembered preferences — name and avatar are saved and restored on your next visit
  • ⚙️ Configurable — host adjusts timers, rounds, match format before game starts
  • 📖 Built-in rules — tap "How to Play" to learn any game
  • 🔄 Reconnect support — refresh the page and jump back in
  • 👻 Spectator mode — eliminated players watch the action
  • 🌙 Dark UI — polished animations, countdown timers, role cards

🚀 Quick Start

Prerequisites

Install

git clone <repo-url>
cd gamenight
npm install

Run

Platform Command
Windows Double-click start.bat or run it in terminal
macOS / Linux ./start.sh
Anywhere npm start

Open http://localhost:4000 in your browser.


🌐 Network Play

When the server starts it prints every URL your friends can use:

🎮  GameNight is live!

  Local:    http://localhost:4000
  Network:  http://192.168.1.42:4000   ← share this!
  Network:  http://10.0.0.5:4000

Anyone on the same WiFi or LAN can open the Network URL directly — no setup needed on their end.

The server also advertises itself via mDNS (Bonjour), so on most devices you can use the stable hostname instead:

http://gamenight.local:4000

Tip: gamenight.local works on macOS, iOS, Android, and most Linux desktops out of the box. Windows may need Bonjour for Windows. If it doesn't resolve, fall back to the IP shown in the terminal.


⚙️ Game Settings

The room creator can tune settings in the lobby before the game starts. Everyone else sees the current configuration.

Game Configurable
🎨 Scribble Draw time (40–120 s) · Rounds (2–5) · Word choices per turn (2–4)
🔪 Mongolpuri Discussion time · Voting time
⭕ Tic Tac Toe Free play · Best of 3 / 5 / 7
🃏 UNO No configurable settings — standard rules apply
🧠 Quiz Questions (10 / 15 / 20 / 25) · Time per question (10 / 15 / 20 / 30 s)

📖 How to Play

Rules are built into the app — click "How to Play" on any screen. Here's the quick version:

🔪 Mongolpuri

Players are secretly assigned Killer, Doctor, or Villager. Roles are hidden by default — tap your role card to reveal it. Each night, every player confirms they are awake (villagers tap "I'm awake"; killer and doctor choose their target). Once all players have acted, the server waits a random delay then resolves the night. At dawn the village debates during a timed discussion, then votes to eliminate a suspect. Villagers win by voting out the Killer. The Killer wins by reducing the living players to two.

In larger games there may be multiple Doctors — roughly one per five players — to keep the game balanced.

🃏 UNO

Standard UNO rules. Each player starts with 7 cards. On your turn, play a card that matches the top discard by color or value, or draw one from the deck. Special cards: Skip ends the next player's turn, Reverse flips direction, +2 forces the next player to draw two, Wild lets you choose the active color, Wild +4 does the same and forces a four-card draw. First player to empty their hand wins. Your name is displayed in the top-left of the game header.

🧠 Quiz

The server fetches questions from the Open Trivia Database at game start and sorts them easy → medium → hard. While questions are loading, players see a "Fetching questions…" screen; the first question appears automatically once the fetch completes (usually under a second, up to ~6 s if the API rate-limits). Each question shows 4 lettered options (A–D) with a countdown timer. Correct answers score 500–1000 points based on speed — the first player to answer correctly earns a +200 bonus (marked with ⚡). After each question the correct answer is revealed with animations alongside the updated leaderboard. The game-over ranking table shows each player's correct-answer count alongside their total score. Requires internet access when starting the game.

🎨 Scribble

One player draws a secret word on a shared canvas while everyone else types guesses in the chat. Faster correct guesses = more points. The drawer earns bonus points for each correct guesser. Hints appear as time runs low. Roles rotate every turn.

⭕ Tic Tac Toe

Classic 3×3 grid. Get three of your symbol in a row (horizontal, vertical, or diagonal) to win. X always goes first. Symbols swap each game. In match formats, first to reach the win target takes the match. Supports single-elimination tournaments for groups.


🛠️ Tech Stack

Layer Tech
Runtime Node.js
HTTP server Express
Realtime Socket.io (WebSockets)
Drawing HTML5 Canvas API
Frontend Vanilla JS, pure CSS
Styles CSS custom properties, no framework

📁 Structure

gamenight/
├── server.js            # All game logic + Socket.io events
├── public/
│   ├── index.html       # Single-page app shell
│   ├── style.css        # Dark theme, animations
│   └── js/
│       ├── app.js           # Socket setup · lobby · views · avatars · settings
│       ├── killerdoctor.js  # Mongolpuri client UI
│       ├── tictactoe.js     # Tic Tac Toe client UI
│       ├── scribble.js      # Scribble canvas + chat
│       ├── uno.js           # UNO client UI
│       └── quiz.js          # Quiz client UI
├── start.bat            # Windows one-click launcher
├── start.sh             # macOS / Linux launcher
└── package.json

📝 License

MIT — do whatever you want with it.


No cloud. No tracking. No nonsense. Just game night.

Install GameNight on Unraid in a few clicks.

Find GameNight in Community Apps on your Unraid server, review the template, and click Install. Unraid handles the Docker app or plugin setup from the published template.

Open the Apps tab on your Unraid server Search Community Apps for GameNight Review the template variables and paths Click Install

Categories

Related apps

Explore more like this

Explore all

Details

Repository
ghcr.io/codyburker/gamenight:latest
Last Updated2026-08-30
First Seen2026-08-30

Runtime arguments

Web UI
http://[IP]:[PORT:4000]/
Network
bridge
Shell
sh
Privileged
false

Template configuration

WebUI PortPorttcp

Host port for the GameNight web UI. Everyone on the LAN opens this to create or join rooms.

Target
4000
Default
8013
Value
8013
TZVariable

Container timezone.

Default
America/Indiana/Indianapolis
Value
America/Indiana/Indianapolis