Files
wiki/Catalogue-Self-Hosted/apps/app-razzia.md
T
2026-06-09 18:40:21 +02:00

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 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

Pages Liées