--- 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 ```yaml 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 ```bash 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 `PORT` ou argument CLI. - **Secret key** : pour signer les sessions WebSocket (`SECRET_KEY`). - **Liste des jeux actifs** : certains fichiers `games.json` ou 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 dans `static/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_KEY` fort 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 ## Pages Liées - [[cat-gaming]] - [[recettes-docker-compose]] - [[app-crafty-controller]] - [[app-foundry-virtual-tabletop]] - [[app-traefik]]