6.5 KiB
title: Razzia created: 2026-06-07 updated: 2026-06-07 type: app tags: [catalogue, gaming, mini-jeux, web, python] confidence: medium contested: false sources: [https://selfh.st/apps/?search=Razzia]
Razzia 🕹️
Collection de mini-jeux web multijoueurs jouables en navigateur — soirée LAN improvisée ou partie rapide entre amis sans rien installer.
| Métadonnée | Valeur |
|---|---|
| Site web | https://razzia.ninja |
| GitHub | https://github.com/nicokrause/razzia |
| License | MIT |
| Langage | Python / HTML5 / WebSockets |
| Étoiles | 10 |
| Dernière MAJ | 2024 |
| Catégorie | cat-gaming |
Description
Razzia est un projet modeste mais attachant qui regroupe une collection de mini-jeux web multijoueurs accessibles depuis un simple navigateur. L'idée est de fournir un kit prêt à l'emploi pour animer une LAN party, un team building ou une pause déj, sans Steam, sans comptes à créer, sans installations clientes. L'utilisateur ouvre une URL, crée ou rejoint un salon avec un code à 4-6 lettres, et joue immédiatement.
L'architecture serveur est écrite en Python (Flask/FastAPI + WebSockets via Flask-SocketIO ou websockets) et gère la logique de jeu, le state management par salon, la synchronisation des inputs et la diffusion des frames. Côté client, les jeux sont écrits en HTML5 Canvas / WebGL ou parfois en SVG/DOM pour des mécaniques plus simples (Blind Test, Quiz, Tic-Tac-Toe, dessin collaboratif, etc.). L'esthétique est volontairement dépouillée, façon « jeux de soirée entre potes ».
Parmi les jeux typiques embarqués : quiz musical (blind test), bataille de dessin façon Pictionary, trivia personnalisée, tic-tac-toe géant, jeux de mots type Codenames, memory, etc. Chaque jeu gère ses propres salons, ses scores et ses règles. Le code est pensé pour être hacked : ajouter un mini-jeu revient à écrire une classe Python héritant d'une interface commune, et un front HTML/JS consommant les événements WebSocket.
Razzia est opinionated : pas d'auth (juste un pseudo par salon), pas de persistance long-terme (les salons disparaissent à l'arrêt), pas de comptes utilisateurs. C'est sa philosophie : un projet minimaliste, lisible, modifiable, parfait pour apprendre les WebSockets et l'organisation d'un serveur de jeux multijoueurs.
Installation
Prérequis
- Python 3.9+ (recommandé 3.11).
- Pip et virtualenv.
- Navigateur moderne côté client (WebSockets, Canvas).
- Port 5000 (ou autre) libre sur l'hôte.
Docker Compose
version: "3.8"
services:
razzia:
image: ghcr.io/nicokrause/razzia:latest
container_name: razzia
restart: unless-stopped
ports:
- "5000:5000"
environment:
- SECRET_KEY=unSecretAleatoireTresLong
- MAX_PLAYERS=16
- IDLE_TIMEOUT=1800
volumes:
- ./data:/app/data
Installation manuelle
git clone https://github.com/nicokrause/razzia.git
cd razzia
python3 -m venv venv && source venv/bin/activate
pip install -r requirements.txt
# Lancer (selon l'implémentation exacte)
python app.py
# Ouvrir http://localhost:5000
L'interface est minimaliste : on clique sur « Créer une partie », on partage le code à 6 lettres, les joueurs rejoignent et choisissent un pseudo.
Configuration
Les options sont volontairement limitées pour rester simples :
- Port d'écoute : 5000 par défaut, modifiable via variable d'environnement
PORTou argument CLI. - Secret key : pour signer les sessions WebSocket (
SECRET_KEY). - Liste des jeux actifs : certains fichiers
games.jsonou modules Python peuvent être activés/désactivés. - Limites : nombre max de joueurs par salon (
MAX_PLAYERS, souvent 12-16), durée max d'inactivité avant fermeture du salon (IDLE_TIMEOUT). - Nom de domaine / proxy : si exposition publique, mettre derrière Caddy/Traefik avec TLS.
- Personnalisation : modifier
static/css/,templates/, ajouter des sons dansstatic/sounds/.
Il n'y a pas de panneau d'administration, pas d'analytics, pas de logs persistants. C'est assumé.
Alternatives
Open Source
- Skribbl.io (clone open source) — Pictionary en ligne.
- Gartic (clone open source) — téléphone arabe version dessin.
- HaxBall (clone open source) — football 2D multijoueur.
- OpenTrivia — quizz multi-joueurs.
- Codenames (clones web) — jeu de mots d'Ilya Borisov, plusieurs implémentations open source.
- moodlequiz, trivyeah — quizz live style Kahoot open source.
- Spyfall (implémentations web) — jeu de société adapté.
Propriétaires
- Kahoot — quizz en classe, freemium.
- Gartic Phone — site officiel propriétaire.
- Jackbox.tv — jeux de société TV-style, achat par pack.
- Skribbl.io — site officiel avec pubs.
- Codenames (Codenames.game) — clone web propriétaire.
- Psych! (Amazon) — bluff multijoueur.
Sécurité
- Pas d'auth native : Razzia ne gère pas d'authentification, n'importe qui avec le code salon peut rejoindre.
- Reverse proxy : si exposition WAN, toujours mettre TLS (Caddy, Traefik, Nginx + Let's Encrypt), sinon les codes salon et pseudos transitent en clair.
- Rate limiting : le serveur Python de base n'a pas de rate limit robuste ; en production, ajouter un WAF (Crowdsec, fail2ban) ou un reverse proxy avec rate limit.
- Modération : absence totale — pas de filtre de pseudos, pas de signalement, pas de mute. À ajouter ou à garder pour usage privé (LAN, famille).
- Isolation : le conteneur doit lire un
SECRET_KEYfort et être lancé avec un utilisateur non-root. - Surface d'attaque : limiter le conteneur aux ports nécessaires, désactiver les capabilities non requises, lire les logs (
docker logs razzia) pour traquer les comportements anormaux. - Mises à jour : projet jeune, mises à jour peu fréquentes ; surveiller les CVE sur Flask, Werkzeug, websockets.
Ressources
- GitHub : https://github.com/nicokrause/razzia
- Démo en ligne : https://razzia.ninja (si disponible)
- Issues et discussions : https://github.com/nicokrause/razzia/issues
- Documentation Flask-SocketIO : https://flask-socketio.readthedocs.io
- MDN WebSockets : https://developer.mozilla.org/fr/docs/Web/API/WebSockets_API
- Tutoriel « build a multiplayer game » : https://github.com/topics/multiplayer-game