All apps · 0 apps
Alanbix
Docker app from Asch3's Repository
Overview
Readme
View on GitHubđź Alanbix â SystĂšme de Gestion de LAN Party
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'
IAQueueManageravec 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.

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 !

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.

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.

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.

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.

đ€ 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.

đœïž 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.

đĄïž 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.

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

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.

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 !

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.

đ DĂ©marrage Rapide
Prérequis
- Docker & Docker Compose
- (Optionnel) Ollama pour les fonctionnalités de chat IA.
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.
- Depuis l'onglet Docker d'Unraid, cliquez sur Add Container.
- Dans le menu déroulant Template, sélectionnez User Templates > Alanbix.
- (Si le template n'apparaĂźt pas, copiez le fichier
unraid-template.xmlde ce dépÎt dans/boot/config/plugins/dockerMan/templates-user/alanbix.xmlsur votre clé USB Unraid). - Cliquez sur Apply ! L'image unifiée (backend + frontend) sera téléchargée et lancée.
L'application sera disponible sur :
- Interface Joueurs (Frontend) : http://localhost:41481
- API Backend : http://localhost:8000
- Documentation API : http://localhost:8000/docs
Premiers Pas
- Inscrivez-vous pour crĂ©er le premier compte â il devient automatiquement administrateur đ
- Allez dans l'onglet Administration pour configurer le nom de votre LAN, créer des jeux et préparer les premiers tournois.
- Partagez l'URL aux joueurs pour qu'ils puissent s'inscrire et rejoindre l'événement.
- 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)
- Naviguez dans le dossier
backend:cd backend - 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 - Installez les dépendances :
pip install -r requirements.txt - Lancez le serveur de développement FastAPI :
Le backend sera disponible sur : đ http://localhost:8000uvicorn app.main:app --reload --port 8000
Frontend (SvelteKit)
- Naviguez dans le dossier
frontend:cd ../frontend - Installez les dépendances Node.js :
npm install - Lancez le serveur de développement SvelteKit :
Le frontend de dĂ©veloppement sera disponible sur : đ http://localhost:5173npm run dev -- --port 5173
đ Licence
Ce projet est sous licence MIT. Voir le fichier LICENSE pour plus de détails.
đ€ Contribution
- Forkez le dépÎt
- Créez votre branche de fonctionnalité (
git checkout -b feature/ma-super-feature) - Commitez vos changements (
git commit -m 'Ajout d'une super feature') - Pushez vers la branche (
git push origin feature/ma-super-feature) - Ouvrez une Pull Request
Fait avec â€ïž pour toutes les LAN parties
Media gallery
1 / 3Install 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.
Categories
Download Statistics
Related apps
Explore more like this
Explore allDetails
aschefr/alanbixRuntime arguments
- Web UI
http://[IP]:[PORT:41481]/- Network
bridge- Shell
bash- Privileged
- false
Template configuration
Web UI access port (41481 = ALABI in leetspeak).
- Target
- 41481
- Default
- 41481
- Value
- 41481
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