Alanbix

Alanbix

Docker app from Asch3's Repository

Overview

🇬🇧 English Alanbix is a platform to manage tournaments and interact with AIs. It features a rich interface with player management, game tracking, and integrated AI chat via Ollama. Note: The application interface is currently available in French only. đŸ‡«đŸ‡· Français Alanbix est une plateforme pour gĂ©rer des tournois et interagir avec des IA. Interface riche avec gestion des joueurs, des parties, et chat IA intĂ©grĂ© via Ollama. Note : L'interface de l'application est actuellement disponible en français uniquement. ⚠ DISCLAIMER: This application is provided "as-is". It is a personal project in active development and "100% vibe coded" for my own needs. Use at your own risk. / Cette application est fournie "telle quelle". C'est un projet personnel en dĂ©veloppement actif, "100% vibe coded" pour mes propres besoins. À utiliser Ă  vos risques et pĂ©rils.

🎼 Alanbix — Systùme de Gestion de LAN Party

Alanbix Dashboard

Alanbix (A-LAN-bix) est un systÚme de gestion de LAN party auto-hébergé de nouvelle génération, assisté par l'IA.
NommĂ© en clin d'Ɠil Ă  Alambix de l'univers d'AstĂ©rix — une machinerie complexe qui distille la connaissance aux joueurs Ă  travers un pipeline technique ultra-lĂ©ger et optimisĂ©.

🏆 Moteur de tournoi complet ‱ đŸ—ș Plan de salle interactif ‱ đŸ€– Chat IA local (Ollama) ‱ 📊 Mode spectateur pour projecteur


✹ FonctionnalitĂ©s

🏆 Moteur de Tournois

  • Brackets multi-formats : Élimination simple, Double Ă©limination, Championnat (Round Robin), FFA (Chacun pour soi).
  • Gestion des Ă©quipes : CrĂ©ation libre, gestion des droits, rĂ©partition alĂ©atoire.
  • Scores en direct : Mise Ă  jour des brackets en temps rĂ©el via WebSocket.
  • Distribution des points : Configurable par tournoi (gagnant, placement, participation, par but).
  • Source de vĂ©ritĂ© Backend : Les points sont calculĂ©s cĂŽtĂ© serveur, aucune dĂ©rive cĂŽtĂ© client.
  • Avancement automatique : Progression automatique dans le bracket, gestion des "BYE", dĂ©tection de la Grande Finale.
  • Annuler/Rollback : RĂ©ouverture des tournois clĂŽturĂ©s avec annulation automatique des points distribuĂ©s.
  • Drapeau Ă  damier : BanniĂšre visuelle claire lorsqu'un tournoi est terminĂ©.
  • VĂ©rouillage des scores : DĂ©lai de saisie (5s) pour les joueurs, verrouillage automatique des matchs terminĂ©s, indicateur 🔒 visuel. Seuls les admins peuvent corriger un score verrouillĂ©.

📊 Dashboard & Classements

  • Classement global : Leaderboard avec indicateurs de progression (↑↓ NEW).
  • Classement par Ă©quipes : Modes de calcul pondĂ©rĂ© ou brut.
  • Classements live : Projections en direct gĂ©nĂ©rĂ©es par le backend.
  • Profils joueurs : Historique complet des tournois et dĂ©tail des points obtenus.
  • Page d'informations : Page formatĂ©e en Markdown pour les plannings, rĂšgles et liens utiles.
  • Gestionnaire de fichiers : Les admins peuvent uploader des fichiers utiles (torrents, patchs, configs
) tĂ©lĂ©chargeables par les joueurs directement depuis la page d'informations.

đŸ‘„ Joueurs & CommunautĂ©

  • Annuaire organisĂ© : Visualisation de tous les participants inscrits, regroupĂ©s par Ă©quipe.
  • Messagerie privĂ©e en direct : Interface de chat P2P rapide intĂ©grĂ©e directement Ă  l'annuaire.
  • Badges de notifications intelligents : Compteurs de messages non-lus globaux et par joueur, mis Ă  jour instantanĂ©ment via WebSocket.
  • Messagerie de groupe : Chat d'Ă©quipe privĂ© (đŸ›Ąïž) et chat inter-Ă©quipes (⚔) avec badges non-lus distincts, boutons avec pulse violet, et channels dĂ©terministes.
  • Actions rapides : Raccourcis en un clic pour voir l'historique des points d'un joueur ou localiser son siĂšge sur le plan interactif.
  • Avatars personnalisĂ©s : Importation d'une image de profil avec un mini-Ă©diteur visuel intĂ©grĂ© (zoom, rognage/dĂ©placement, couleur de fond pour les PNG transparents et choix de la forme de l'avatar : cercle, carrĂ© arrondi ou carrĂ© pur). La forme choisie est automatiquement propagĂ©e Ă  travers toutes les pages du projet (sidebar, chats, brackets, plan 2D, etc.).

đŸ“œïž Mode Spectateur (Projecteur)

  • Cycle automatique 4 vues : Leaderboard → Équipes → Plan de salle → Bracket.
  • Fonds d'Ă©cran cinĂ©matiques : Images de jeux en plein Ă©cran avec effet de vignetage.
  • ContrĂŽles clavier : ← → (naviguer), Espace (pause/reprendre).
  • Actualisation WebSocket : RafraĂźchissement automatique au moindre changement de score.
  • Optimisation des affichages : Empilement vertical de la Winner et de la Loser Bracket (Double Élimination) ; contraste et lisibilitĂ© accrus en Round Robin ; disposition fluide (flex-wrap) en FFA pour Ă©liminer les espaces vides.

đŸ—ș Plan de Salle Interactif

  • Drag & drop : Placement libre des siĂšges et des tables (pour les admins).
  • SĂ©lection en libre-service : Les joueurs peuvent choisir leur propre place.
  • Navigation depuis le bracket : Cliquez sur un badge de siĂšge directement dans un arbre de tournoi pour le localiser sur la carte.
  • Zoom auto-adaptatif : Ajustement automatique Ă  la taille de l'Ă©cran.
  • Zoom centrĂ© sur le curseur : Avec prise en charge du dĂ©placement (pan).
  • ÉlĂ©ments logistiques : Placement de mobilier (portes, cuisine, bar, WC, racks techniques, Ă©crans) avec rotation et drag & drop.

đŸ€– Assistant IA (Ollama)

  • RĂ©ponses en streaming : Affichage fluide via Server-Sent Events.
  • Pipeline RAG : Recherche vectorielle native avec NumPy (aucune base de donnĂ©es externe requise).
  • Ollama Multi-instances : Équilibrage de charge avec gestion des prioritĂ©s et basculement automatique (failover).
  • Diagnostics rĂ©seau dĂ©portĂ©s cĂŽtĂ© client : PossibilitĂ© d'exĂ©cuter les outils de diagnostic rĂ©seau (ping, traceroute, DNS) directement depuis le navigateur de l'utilisateur pour contourner l'isolation rĂ©seau de Docker.
  • Compression du contexte : Troncature, compactage et rĂ©sumĂ© IA pour Ă©conomiser les tokens.
  • Édition & Retry inline : PossibilitĂ© de modifier ses messages ou de relancer une gĂ©nĂ©ration directement dans le chat.
  • Prompt systĂšme configurable : Personnalisable depuis le panneau d'administration.
  • Notifications de tournoi gĂ©nĂ©rĂ©es par l'IA : Messages de fin de match personnalisĂ©s et humoristiques pour chaque participant.
  • Horodatage des messages : Chaque message (utilisateur et IA) affiche l'heure d'envoi.
  • Auto-nommage des conversations v2 : Le titre est gĂ©nĂ©rĂ© automatiquement aprĂšs la premiĂšre rĂ©ponse, en utilisant jusqu'Ă  3 Ă©changes pour un titre plus pertinent.
  • Renommage manuel avec suggestion IA : Bouton ✏ sur chaque conversation (sidebar) ouvrant un modal d'Ă©dition avec suggestion IA asynchrone. La suggestion est traitĂ©e via la file d'attente Ollama et retournĂ©e via WebSocket sans bloquer l'interface.
  • File d'attente unifiĂ©e : Toutes les requĂȘtes IA (chat, compression, suggestions de titre) passent par l'IAQueueManager avec prioritĂ©s diffĂ©renciĂ©es — plus de contention entre les requĂȘtes.

🔔 Notifications

  • Centre de notifications : Un espace centralisĂ© pour toutes les alertes des joueurs.
  • Messages IA de tournois : RĂ©sumĂ©s automatiques Ă  la clĂŽture d'un Ă©vĂ©nement.
  • Messages Admin : Alertes lorsqu'un administrateur rĂ©pond dans une conversation IA.
  • Suivi lu/non-lu : Compteur animĂ© dans le menu latĂ©ral.
  • Alertes d'erreur : Notifications admin avec bouton pour relancer la gĂ©nĂ©ration IA en cas d'Ă©chec.
  • Distribution en temps rĂ©el : Broadcast immĂ©diat via WebSocket.

đŸ›Ąïž Administration

  • Gestion complĂšte des joueurs : CrĂ©er, modifier, rĂ©initialiser les mots de passe, promouvoir/rĂ©voquer les administrateurs.
  • ModĂ©ration IA : Restreindre l'accĂšs Ă  l'IA pour certains joueurs ou prendre la main en direct sur une conversation.
  • BibliothĂšque de jeux : Recherche de jaquettes intĂ©grĂ©e via une instance SearXNG configurable par l'admin (dĂ©sactivĂ©e par dĂ©faut), upload manuel et tĂ©lĂ©chargement local automatique.
  • Cycle de vie des tournois : CrĂ©ation → Lancement → Scores → ClĂŽture → Distribution des points.
  • ParamĂštres systĂšme : Nom de l'Ă©vĂ©nement, mode de calcul des Ă©quipes, configuration IA.
  • Monitoring des instances IA : Widget d'Ă©tat en temps rĂ©el (en ligne/occupĂ©/hors ligne) dans la barre latĂ©rale.
  • ContrĂŽles de purge (Nuke) : Suppression en masse pour les tournois, joueurs, jeux, images et notifications.

📾 Interface & Visite GuidĂ©e

🏠 L'ExpĂ©rience Joueur

Dashboard
Le hub central pour tous les participants. Les joueurs peuvent y voir rapidement le classement général, la position de leur équipe, les tournois actifs et les annonces récentes. L'interface propose un design épuré inspiré du glassmorphism. Dashboard

Page d'Informations
Une page gĂ©rĂ©e en Markdown oĂč les organisateurs peuvent afficher les horaires, les rĂšgles, le code WiFi et les liens importants. Elle dĂ©file Ă©galement automatiquement sur le projecteur ! Information Page

Arbres de Tournois (Brackets)
Qu'il s'agisse d'un duel tendu en Double Élimination ou d'un match chaotique Ă  16 joueurs en Chacun pour soi (FFA), la vue du bracket se met Ă  jour en temps rĂ©el. Les joueurs peuvent facilement suivre qui avance vers la grande finale. Double Elimination FFA Tournament

Annuaire des Joueurs & Messagerie Privée
Besoin de trouver quelqu'un ou de vérifier ses scores ? La page des joueurs regroupe tout le monde par équipe. Cliquer sur un joueur ouvre un chat privé en direct, parfait pour organiser vos matchs ou trouver votre prochain adversaire. Players Directory

Centre de Notifications & Profils
Ne manquez rien. Lorsqu'un tournoi se termine, l'IA génÚre un message récapitulatif personnalisé. Les administrateurs peuvent également envoyer des notifications directes, et toutes les alertes non lues sont suivies avec un systÚme de badges unifié. Les joueurs peuvent également consulter le détail complet de leurs points sur leur profil. Notifications Player Profile

Plan de Salle Interactif
Fini de tourner en rond pour trouver sa place. Les joueurs peuvent zoomer et se dĂ©placer sur la carte interactive pour localiser leur bureau assignĂ© ou voir oĂč sont assis leurs amis. Room Plan Zoom

đŸ€– L'Assistant IA

Le Compagnon Intelligent de la LAN
Propulsé par une instance locale d'Ollama, l'assistant IA sait tout sur la LAN. Il peut répondre aux questions sur le planning, le classement actuel ou les rÚgles d'un jeu spécifique, directement depuis l'interface de chat. AI Chat AI Chat Response

đŸ“œïž Mode Projecteur (Spectateur)

Rotation Automatique Mains-libres
Conçu pour tourner sur un grand écran ou un vidéoprojecteur, ce mode fait défiler automatiquement le classement, le plan de salle et les arbres de tournois en cours toutes les quelques secondes. Il intÚgre de superbes fonds d'écran de jeux et force le thÚme sombre pour une lisibilité optimale dans les piÚces sombres. Spectator Leaderboard Spectator Bracket

đŸ›Ąïž Administration & ContrĂŽles

Gestion des Tournois
Les administrateurs ont le contrÎle total sur le cycle de vie du tournoi : brouillon, lancement, scores et clÎture. Ils peuvent également configurer des prompts IA personnalisés pour générer des résumés de fin de match épiques ou hilarants pour les participants. Admin Tournaments Admin Tournament AI Prompt

Éditeur de Plan de Salle
Une interface drag-and-drop permettant aux organisateurs de cartographier l'espace physique. Créez des tables, ajoutez des siÚges et assignez les joueurs en quelques clics. Room Plan Editor

BibliothĂšque de Jeux
Gerez les jeux joues pendant la LAN. Le systeme peut recuperer automatiquement des jaquettes de haute qualite en configurant votre instance SearXNG privee dans les parametres d'administration, et les stocke localement pour un fonctionnement garanti hors-ligne. Admin Games

Modération des Joueurs
Les admins peuvent gĂ©rer les comptes, rĂ©initialiser les mots de passe et dĂ©finir les affiliations d'Ă©quipes. Besoin d'intervenir ? Les administrateurs peuvent mĂȘme prendre le contrĂŽle d'une conversation IA pour parler directement Ă  un joueur si le robot s'embrouille ! Admin Players Admin AI Takeover

ParamĂštres IA & Globaux
Configurez les instances Ollama, ajustez les limites de contexte et gérez les paramÚtres globaux du systÚme. Le tableau de bord inclut un widget d'état en direct pour surveiller la charge et la disponibilité de l'IA. Admin Settings Admin AI Settings


🚀 DĂ©marrage Rapide

Prérequis

Installation (Serveur ou Local)

git clone https://github.com/Aschefr/Alanbix.git
cd Alanbix
docker compose up -d --build

Installation (Unraid OS)

Alanbix dispose d'un template officiel pour Unraid.

  1. Depuis l'onglet Docker d'Unraid, cliquez sur Add Container.
  2. Dans le menu déroulant Template, sélectionnez User Templates > Alanbix.
  3. (Si le template n'apparaßt pas, copiez le fichier unraid-template.xml de ce dépÎt dans /boot/config/plugins/dockerMan/templates-user/alanbix.xml sur votre clé USB Unraid).
  4. Cliquez sur Apply ! L'image unifiée (backend + frontend) sera téléchargée et lancée.

L'application sera disponible sur :

Premiers Pas

  1. Inscrivez-vous pour crĂ©er le premier compte — il devient automatiquement administrateur 👑
  2. Allez dans l'onglet Administration pour configurer le nom de votre LAN, créer des jeux et préparer les premiers tournois.
  3. Partagez l'URL aux joueurs pour qu'ils puissent s'inscrire et rejoindre l'événement.
  4. Ouvrez /spectator sur un projecteur pour l'affichage en direct de la salle.

Ollama (Chat IA)

Si vous avez Ollama qui tourne localement sur votre machine :

# La configuration par défaut s'attend à trouver Ollama sur http://localhost:11434
ollama serve

Configurez vos instances IA dans Administration > IA & ParamĂštres.


đŸ—ïž Architecture

Alanbix/
├── backend/              # FastAPI (Python 3.11)
│   ├── app/
│   │   ├── main.py       # Point d'entrĂ©e, CORS, fichiers statiques
│   │   ├── models.py     # Modùles SQLAlchemy (SQLite + WAL)
│   │   ├── schemas.py    # SchĂ©mas Pydantic
│   │   ├── auth.py       # Authentification JWT
│   │   ├── database.py   # Gestion des sessions BDD
│   │   ├── tournament_engine.py  # Logique de brackets (Duel, RR, FFA)
│   │   ├── websockets.py # Gestionnaire d'Ă©vĂ©nements WebSocket
│   │   └── routers/      # Endpoints de l'API
│   ├── static/i18n/      # Traductions (fr.json)
│   └── Dockerfile
├── frontend/             # SvelteKit + Vite
│   ├── src/
│   │   ├── lib/          # Client API, auth, WebSocket
│   │   └── routes/       # Pages (dashboard, spectator, etc.)
│   ├── static/           # Polices, images de jeux
│   └── Dockerfile
├── docker-compose.yml    # Orchestration Docker
├── VERSION               # Version SemVer
└── cahier_des_charges.yaml  # SpĂ©cifications complĂštes du projet

Stack Technique

Couche Technologie
Frontend SvelteKit, Vite, Vanilla CSS
Backend FastAPI, SQLAlchemy, Pydantic
Base de données SQLite (mode WAL)
Intelligence Artificielle Ollama (LLM Local), NumPy (recherche vectorielle)
Infrastructure Docker, Docker Compose
Temps Réel WebSocket, Server-Sent Events

Principes de Conception

  • ZĂ©ro dĂ©pendance externe : Polices, icĂŽnes, scripts — absolument tout est hĂ©bergĂ© localement.
  • Offline-first : Fonctionne sans aucune connexion internet (les jaquettes de jeux sont auto-tĂ©lĂ©chargĂ©es localement via SearXNG).
  • Optimisation MatĂ©rielle : Animations et transitions CSS "GPU-friendly", spĂ©cifiquement rĂ©glĂ©es pour rĂ©duire les couches de compositing.
  • Base de donnĂ©es monolithique : SQLite — ultra-portable, aucune configuration requise.
  • Cockpit UI Sombre : Design moderne avec Glassmorphism, mesh gradients et transitions fluides.

🌐 Langues & Internationalisation (i18n)

Alanbix supporte pleinement le multi-langue grùce à son systÚme i18n natif cÎté backend et frontend. L'interface est disponible en Français, Anglais et Espagnol.

Les fichiers de traduction de référence se trouvent dans backend/static/i18n/. Les administrateurs peuvent également ajouter, éditer et synchroniser des clés de langue en direct depuis le panneau d'administration de l'application.

⚠ Important (Pour les dĂ©veloppeurs) : Modifiez toujours les fichiers JSON i18n via Python avec encoding='utf-8-sig' pour Ă©viter de corrompre le BOM (spĂ©cificitĂ© sous Windows).

đŸ’» DĂ©veloppement Local

Si vous souhaitez exécuter Alanbix localement pour le développement (hors Docker) :

Backend (FastAPI)

  1. Naviguez dans le dossier backend :
    cd backend
    
  2. Créez et activez un environnement virtuel Python :
    python -m venv venv
    # Sur Windows (PowerShell)
    .\venv\Scripts\Activate.ps1
    # Sur Linux/macOS
    source venv/bin/activate
    
  3. Installez les dépendances :
    pip install -r requirements.txt
    
  4. Lancez le serveur de développement FastAPI :
    uvicorn app.main:app --reload --port 8000
    
    Le backend sera disponible sur : 👉 http://localhost:8000

Frontend (SvelteKit)

  1. Naviguez dans le dossier frontend :
    cd ../frontend
    
  2. Installez les dépendances Node.js :
    npm install
    
  3. Lancez le serveur de développement SvelteKit :
    npm run dev -- --port 5173
    
    Le frontend de dĂ©veloppement sera disponible sur : 👉 http://localhost:5173

📄 Licence

Ce projet est sous licence MIT. Voir le fichier LICENSE pour plus de détails.


đŸ€ Contribution

  1. Forkez le dépÎt
  2. Créez votre branche de fonctionnalité (git checkout -b feature/ma-super-feature)
  3. Commitez vos changements (git commit -m 'Ajout d'une super feature')
  4. Pushez vers la branche (git push origin feature/ma-super-feature)
  5. Ouvrez une Pull Request

Fait avec ❀ pour toutes les LAN parties

Media gallery

1 / 3

Install Alanbix on Unraid in a few clicks.

Find Alanbix 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 Alanbix Review the template variables and paths Click Install

Download Statistics

265
Total Downloads

Related apps

Details

Repository
aschefr/alanbix
Last Updated2026-06-06
First Seen2026-06-14

Runtime arguments

Web UI
http://[IP]:[PORT:41481]/
Network
bridge
Shell
bash
Privileged
false

Template configuration

WebUI PortPorttcp

Web UI access port (41481 = ALABI in leetspeak).

Target
41481
Default
41481
Value
41481
AppData PathPathrw

Directory where the database and uploaded images will be stored (IMPORTANT to prevent data loss).

Target
/app/data
Default
/mnt/user/appdata/alanbix
Value
/mnt/user/appdata/alanbix