
xalgorix v4.6.72
Agents de pentest IA autonomes — reconnaissance en temps réel, détection de vulnérabilités et orchestration de l'exploitation. Go + TypeScript.
Xalgorix — Pentester IA open-source qui prouve les vulnérabilités
La plupart des scanners détectent. Xalgorix prouve. Un agent LLM autonome applique une méthodologie complète de pentest, puis un vérificateur indépendant ré-exploite chaque découverte avant qu'elle ne soit rapportée — vous obtenez ainsi des preuves, et non un tas de peut-être à trier. Auto-hébergé, privé, et avec votre propre LLM. Développé en Go + TypeScript.
🚀 Démarrage rapide · 💡 Pourquoi Xalgorix · ✨ Fonctionnalités · 🎯 Cas d'usage · ☁️ Cloud hébergé · 📖 Documentation
📸 Captures d'écran
🖥️ Tableau de bord auto-hébergé — s'exécute localement sur 127.0.0.1:9137
| Tableau de bord de vue d'ensemble | Détail du scan | Découvertes |
|---|---|---|
![]() | ![]() | ![]() |
☁️ Tableau de bord cloud hébergé — la version entièrement managée sur www.xalgorix.com
🤝 Sponsors
Merci à Swiftproxy pour son parrainage de Xalgorix.
Votre application peut se comporter différemment selon l'origine d'une requête. Pour les utilisateurs de Xalgorix qui vérifient leurs propres applications à travers différentes régions, Swiftproxy propose un ciblage géographique pour examiner le comportement régional et des sessions persistantes pour aider à conserver une IP cohérente pendant une session de test. Il prend en charge HTTP(S) et SOCKS5, les mêmes protocoles proxy que ceux pris en charge par Xalgorix.
Proxies résidentiels à partir de 0,70 $/Go. Des tests gratuits sont disponibles, et les utilisateurs de Xalgorix bénéficient de 10 % de réduction avec le code PROXY90.
Découvrez Swiftproxy et demandez un test gratuit →
🚀 Démarrage rapide
Installation (une ligne) :```bash curl -sSL https://www.xalgorix.com/install | bash
Ceci télécharge le binaire précompilé pour votre plateforme (Linux ou macOS, amd64/arm64) depuis la dernière version. Ensuite, exécutez l'assistant de configuration interactif :```bash
xalgorix --setup
Choisissez votre fournisseur, confirmez un modèle et saisissez la clé API lorsque vous y êtes invité. Pour de meilleurs résultats, utilisez un modèle de pointe actuel doté de solides capacités de raisonnement, de performances en contexte long et d'un appel d'outils fiable—tel que le dernier modèle GPT, Claude ou Gemini performant dont vous disposez. Les modèles plus petits ou locaux restent pris en charge, mais peuvent nécessiter une surveillance accrue lors de longs scans autonomes. Xalgorix stocke la clé de manière privée dans ~/.xalgorix.env (mode 0600) et peut lancer le tableau de bord pour vous. Ollama local ne nécessite aucune clé API.
Si vous choisissez de ne pas lancer immédiatement, démarrez plus tard avec xalgorix --web et ouvrez http://127.0.0.1:9137. Vous pouvez modifier les fournisseurs ou les options avancées à tout moment sous Settings → LLM, ou relancer xalgorix --setup.
Ou exécutez avec Docker — tout est inclus, aucune chaîne d'outils nécessaire :```bash
docker run --rm -p 9137:9137
--privileged
-v xalgorix-data:/data
xalgord/xalgorix:latest
`--privileged` donne à l'ensemble d'outils le même accès de type hôte qu'il a lorsqu'il est exécuté nativement en tant que root. Le bac à sable par défaut de Docker supprime des capacités (comme `NET_ADMIN`) et applique un filtre seccomp, ce qui casse les outils de bas niveau (changements iptables/route, ARP-spoof/MITM, VPN tun/tap, débogueurs basés sur ptrace, réglage d'interface masscan). Comme une image ne peut pas s'accorder elle-même ces capacités, elles doivent être définies au moment de l'exécution. Le conteneur est un bac à sable de scan jetable et isolé du réseau fonctionnant en tant que root — privileged est la posture prévue ; n'exposez jamais le tableau de bord publiquement sans authentification. Vous préférez le moindre privilège ? Remplacez `--privileged` par `--cap-add=NET_ADMIN --cap-add=NET_RAW --cap-add=SYS_PTRACE --security-opt seccomp=unconfined`.
Ouvrez `http://localhost:9137`. Vous **n'avez pas besoin d'une clé LLM pour commencer** — le tableau de bord se lance sans ; définissez le modèle + la clé API sous **Settings → LLM** (elle persiste dans le volume `/data`). Si vous ne passez pas `XALGORIX_USERNAME`/`XALGORIX_PASSWORD`, un mot de passe administrateur aléatoire est généré et affiché dans les logs du conteneur au premier lancement.
**Le plus simple — Docker Compose** (mappe le port + un volume persistant pour vous) :```bash
curl -sSLO https://raw.githubusercontent.com/xalgorix/xalgorix/main/docker-compose.yml
docker compose up -d
docker compose logs -f # shows the generated admin password on first start
L'image embarque un ensemble étendu d'outils de sécurité offensive préinstallés (nmap, nuclei, httpx, subfinder, katana, ffuf, gobuster, sqlmap, masscan, dalfox, feroxbuster, et plus encore) et conserve tous les gestionnaires de paquets (apt, go, cargo, pipx, npm) disponibles afin que l'agent puisse toujours installer automatiquement tout ce qui manque à l'exécution. Il s'exécute en tant que root à l'intérieur du conteneur par conception — considérez le conteneur comme un bac à sable de scan jetable et isolé du réseau et n'exposez jamais le tableau de bord sans authentification. Les images sont publiées pour amd64 et arm64.
Ou compilez depuis les sources (nécessite Go 1.26+ et Node.js) :```bash git clone https://github.com/xalgorix/xalgorix.git cd xalgorix make build sudo install -m 755 build/xalgorix /usr/local/bin/xalgorix
> [!TIP]
> Vous préférez zéro configuration ? Une version entièrement gérée est disponible sur [www.xalgorix.com](https://www.xalgorix.com/) — scan en un clic, aucune installation ni clé API requise.
### 🤖 Révisez automatiquement les pull requests — GitHub App gratuite
Vous voulez une revue de sécurité sur chaque pull request sans aucune configuration ? Installez la **[Xalgorix GitHub App](https://github.com/apps/xalgorix)**. Elle lit le diff de chaque PR et commente une revue de sécurité — injection, authentification défaillante/IDOR, SSRF, secrets, motifs non sécurisés — directement sur la pull request. Elle se met à jour sur place à chaque nouveau commit, et vous pouvez commenter **`@xalgorix review`** pour relancer à la demande. Aucun fichier de workflow, aucune clé API, aucun compte — et c'est gratuit.
<div align="center">
[**➕ Ajouter Xalgorix à GitHub →**](https://github.com/apps/xalgorix/installations/new)
</div>
Pour le blocage de merge et des pentests complets vérifiés par exploitation en CI, utilisez le [scanner hébergé](https://www.xalgorix.com/) ou la GitHub Action.
> [!IMPORTANT]
> N'utilisez Xalgorix que sur des systèmes que vous possédez ou pour lesquels vous disposez d'une autorisation explicite de test.
> [!TIP]
> Vous préférez ne pas auto-héberger ? Une version entièrement gérée est disponible sur [www.xalgorix.com](https://www.xalgorix.com/) — scan en un clic, aucune installation ni clé API requise.
## 📚 Sommaire
| | | |
| --- | --- | --- |
| 📸 [Captures d'écran](#-screenshots) | 🔩 [Configuration](#-configuration) | 🧾 [Variables d'environnement](#-environment-variables) |
| 🚀 [Démarrage rapide](#-quick-start) | 🆙 [Mise à niveau](#-upgrading-from-previous-versions) | 🔤 [Préfixes de fournisseur](#-provider-prefixes) |
| 🔎 [Aperçu](#-overview) | 🏃 [Exécution](#-running) | 💻 [Référence CLI](#-cli-reference) |
| 💡 [Pourquoi Xalgorix](#-why-xalgorix) | 🧰 [Mode service](#-service-mode) | 📡 [Résumé de l'API](#-api-summary) |
| 🎯 [Cas d'usage](#-use-cases) | 🔁 [Workflow de l'interface Web](#-web-ui-workflow) | 💾 [Stockage des données](#-data-storage) |
| ✨ [Fonctionnalités](#-features) | 🔀 [Modes de scan](#-scan-modes) | 🧪 [Développement](#-development) |
| 📥 [Installation](#-installation) | 📂 [Scannez votre code](#-scan-your-code-no-target-needed) | 🚨 [Notes de sécurité](#-safety-notes) |
| 🧭 [Méthodologie](#-methodology) | 📄 [Rapports](#-reports) | 📜 [Licence](#-license) |
| 🔧 [Paramètres](#-settings) | 🔗 [Liens](#-links) | 🤝 [Sponsors](#-sponsors) |
## 🔎 Aperçu
Xalgorix est une plateforme auto-hébergée de tests d'intrusion par IA pour les tests de sécurité autorisés, l'évaluation de vulnérabilités et les workflows de bug bounty. Elle combine un agent autonome piloté par LLM, l'automatisation de navigateur, des outils en terminal, une méthodologie de test complète en 22 phases, la télémétrie WebSocket en direct, la gestion des findings avec scoring CVSS, la génération de rapports PDF personnalisés, et des intégrations pour AgentMail, Discord et Telegram.
Contrairement aux scanners DAST uniquement cloud, Xalgorix s'exécute entièrement sur votre machine. Vous apportez votre propre fournisseur LLM (OpenAI, Anthropic, DeepSeek, Gemini, Groq, Ollama, MiniMax) et contrôlez le modèle, l'effort de raisonnement, les limites de débit et la configuration du proxy. Aucune donnée de scan, clé API ou information sur la cible ne quitte votre infrastructure.
L'expérience par défaut est l'interface Web. Depuis un seul tableau de bord local, vous pouvez lancer des scans, surveiller les exécutions actives, inspecter les findings, configurer les paramètres de modèle/fournisseur, gérer les variables d'environnement, générer des rapports PDF personnalisés, et supprimer ou reprendre des scans historiques.
## 💡 Pourquoi Xalgorix
La plupart des scanners **détectent**. Xalgorix **prouve**. Un agent autonome suit une méthodologie en 22 phases, puis un vérificateur indépendant reteste chaque finding candidat avant qu'il ne soit rapporté — vous obtenez ainsi des résultats vérifiés par exploitation avec preuves, et non un mur de « peut-être » à trier.
- 🧠 **Un agent IA, pas un moteur de templates** — raisonne sur les flux d'authentification, la logique métier, les IDOR/BOLA et les exploits en chaîne que les scanners à signatures manquent.
- ✅ **Findings vérifiés par exploitation** — un vérificateur distinct reproduit indépendamment chaque finding ; ceux qui sont non concluants sont signalés pour revue, jamais déguisés en confirmés.
- 🔒 **Auto-hébergé et privé** — s'exécute sur votre machine avec votre propre clé LLM ; aucune donnée de cible, clé ou finding ne quitte votre infrastructure.
- 🧩 **Apportez votre propre LLM** — OpenAI, Anthropic, DeepSeek, Gemini, Groq, Ollama ou MiniMax — ou toute passerelle compatible OpenAI comme [LiteLLM](#-litellm--openai-compatible-gateways-github-copilot-claude-opus-codex-openrouter-azure-local-models) (GitHub Copilot, Codex, OpenRouter, Azure). Vous contrôlez le modèle, l'effort de raisonnement et le coût.
- 📄 **Rapports prêts pour l'audit** — PDF personnalisés avec scores CVSS, preuve de concept et remédiation.
### 📊 Comparaison
| | **Xalgorix** | Scanners à templates (ex. Nuclei) | Scanners à crawling (ex. OWASP ZAP) | DAST commercial |
| -------------------------------------------- | ------------------------ | ------------------------------- | ---------------------------------- | ---------------------- |
| Approche | Agent IA autonome | Signatures / templates | Spider + règles actives | Signatures + heuristiques |
| Couverture logique métier / IDOR / contournement d'auth | ✅ | Limitée | Limitée | Partielle |
| Vérifié par exploitation (prouve l'impact) | ✅ vérificateur indépendant | ❌ | ❌ | Partielle |
| Charge de faux positifs | Faible (prouvé) | Dépend des templates | Élevée | Moyenne |
| Auto-hébergé / données locales | ✅ | ✅ | ✅ | Généralement cloud |
| Apportez votre propre LLM | ✅ | — | — | ❌ |
| Rapports PDF personnalisés | ✅ | ❌ | Basique | ✅ |
| Coût | Open source + votre LLM | Gratuit | Gratuit | $$$ |
> Comparaison indicative — Nuclei et ZAP excellent dans ce qu'ils font. Xalgorix ajoute la couche de découverte à forte intensité de raisonnement et de vérification par exploitation par-dessus.
### ☁️ Auto-hébergé vs Cloud hébergé
Xalgorix est gratuit et open source — auto-hébergez-le pour toujours, sans conditions. Le [cloud hébergé](https://www.xalgorix.com/) exécute le **même** moteur vérifié par exploitation ; il existe pour ceux qui préfèrent ne pas gérer les clés API, l'infrastructure et les factures LLM imprévisibles. Les deux sont de premier ordre — choisissez ce qui vous convient.
| | **Auto-hébergé** (ce dépôt) | **[Cloud hébergé](https://www.xalgorix.com/)** |
| ---------------------------------- | ---------------------------------------- | ----------------------------------------------- |
| Prix de départ | Moteur gratuit, Apache-2.0 | Compte gratuit · évaluation unique à 1 $ |
| Clé API LLM | Apportez et gérez la vôtre | Incluse — rien à gérer |
| Coût par scan | Tokens LLM bruts — variable, peut exploser | 1 crédit par hôte actif — prévisible |
| Installation et exploitation | Vous installez, mettez à jour et exécutez la chaîne d'outils | Rien à exécuter — scan en ~60s |
| Infrastructure out-of-band (SSRF/blind RCE) | Montez votre propre serveur OOB | OOB géré inclus |
| Planification | Planificateur intégré sur votre infrastructure | Planifications quotidiennes / horaires gérées |
| Équipe · RBAC · crédits partagés | Instance mono-opérateur | Espaces de travail d'organisation avec Team |
| Mises à jour | `git pull` + rebuild | Toujours sur le dernier moteur |
| Résidence des données / hors ligne | ✅ reste sur votre infra · air-gap OK | S'exécute sur notre infra (DPA disponible) |
**Auto-hébergez si** les données doivent rester sur votre réseau, vous voulez un contrôle total, ou vous allez fonctionner hors ligne/air-gapped — c'est exactement fait pour ça. **Utilisez le cloud si** vous préférez éviter les clés API, l'infra et les factures de tokens surprises, et ne payer que pour les hôtes actifs que vous scannez réellement.
<div align="center">
[**☁️ Évaluer le Cloud hébergé — essai à 1 $ →**](https://www.xalgorix.com/pricing) · [**⚖️ Comparer Cloud et auto-hébergement →**](https://www.xalgorix.com/hosted-vs-self-hosted)
</div>
Si Xalgorix vous fait gagner un cycle de tri, merci de **[⭐ mettre une étoile au dépôt](https://github.com/xalgorix/xalgorix)** — cela aide vraiment les autres à le trouver.
## 🎯 Cas d'usage
| Cas d'usage | Comment Xalgorix aide |
| -------- | ------------------ |
| **Tests d'intrusion** | Exécutez une méthodologie complète en 22 phases contre des cibles autorisées. L'agent IA gère la reconnaissance, la découverte de vulnérabilités, les tests d'injection, SSRF, IDOR, le contournement d'authentification, les conditions de course, et plus encore — puis vérifie les findings avant de les rapporter. |
| **Bug bounty** | Pointez Xalgorix vers une cible dans le périmètre et laissez l'agent énumérer la surface d'attaque, tester les classes de vulnérabilités courantes, et faire remonter des findings vérifiés avec scores CVSS et preuves de concept. |
| **Opérations red team** | Utilisez les modes de scan wildcard et multi-cibles pour cartographier la surface d'attaque externe d'une organisation. Le DAST assisté par navigateur gère les flux d'authentification, les formulaires et le comportement à l'exécution que les scanners statiques manquent. |
| **Recherche en sécurité** | La phase de découverte de vulnérabilités inédites pousse l'agent au-delà de la correspondance de templates connus. Apportez votre propre LLM (OpenAI, Anthropic, DeepSeek, Gemini, Ollama, MiniMax) pour contrôler la profondeur de raisonnement et le coût. |
| **Tests de sécurité continus** | Exécutez en tant que service système avec `xalgorix --start`. Scannez selon une planification, diffusez les findings vers Discord ou Telegram, et générez des rapports PDF personnalisés pour les parties prenantes. |
| **Automatisation DAST** | Tests pilotés par navigateur pour les applications web — flux d'authentification, formulaires, contenu rendu en JavaScript et comportement à l'exécution. S'intègre avec Caido pour l'inspection du trafic proxy. |
## ✨ Fonctionnalités
| Domaine | Capacités |
| -------------- | --------------------------------------------------------------------------------------------------------------------------- |
| 📊 Tableau de bord | Interface Web locale sur `127.0.0.1:9137` par défaut, gestion des scans, statut en direct, actions de scan en masse et récupération des scans historiques. |
| 🔍 Scan | Cible unique, DAST, wildcard et flux multi-cibles avec phases de méthodologie sélectionnables. |
| 📡 Télémétrie en direct | Appels d'outils, messages de l'agent, findings, erreurs, activité HTTP et activité LLM via WebSockets. |
| 🐞 Findings | Pages de détail de scan, filtres de sévérité, détails CVSS, index des findings et workflows de findings vérifiés. |
| 📄 Rapports | Rapports PDF personnalisés avec nom de cible/société, logo téléversé, liste des rapports, actions d'ouverture/téléchargement/suppression. |
| 🔔 Intégrations | Boîtes de réception de test AgentMail, e-mails de vérification, flux OTP, événements de tri d'e-mails, notifications Discord et Telegram. |
| ⚙️ Configuration | Paramètres du tableau de bord pour LLM, AgentMail, Discord, Telegram, proxy, runtime, navigateur, auth, limites de débit et ressources. |
| 🛡️ Sécurité d'exécution | Limites d'instances tenant compte des ressources et liaison loopback uniquement, sauf si l'accès externe est explicitement configuré avec authentification. |
## 📥 Installation
Les chemins les plus rapides ne nécessitent aucune chaîne d'outils.
### ⚡ Installation en une ligne (binaire précompilé)```bash
curl -sSL https://www.xalgorix.com/install | bash
Télécharge le binaire de la dernière version pour votre plateforme (Linux ou macOS, amd64/arm64) et l'installe dans /usr/local/bin (ou ~/.local/bin sans sudo). Remplacez avec XALGORIX_INSTALL_DIR ou épinglez une version avec XALGORIX_VERSION=vX.Y.Z.
Effectuez la configuration initiale de manière interactive—aucune édition manuelle du fichier d'environnement n'est requise :```bash xalgorix --setup
Le wizard préserve les paramètres existants lors d'une réexécution, masque la saisie de la clé API dans un terminal et lance éventuellement l'interface Web une fois terminé.
### 🐳 Docker```bash
docker run --rm -p 9137:9137 \
--privileged \
-e XALGORIX_LLM=openai/gpt-5.6 \
-e XALGORIX_API_KEY=your_openai_api_key \
-v xalgorix-data:/data \
ghcr.io/xalgord/xalgorix:latest
--privileged (ou les options plus restrictives --cap-add=NET_ADMIN --cap-add=NET_RAW --cap-add=SYS_PTRACE --security-opt seccomp=unconfined) donne à l'ensemble d'outils un accès de type hôte. Le bac à sable par défaut de Docker supprime les capacités et filtre les appels système, ce qui casse l'outillage de bas niveau (modifications iptables/route/interface, ARP-spoof/MITM, VPN tun/tap, débogueurs basés sur ptrace). Une image ne peut pas s'accorder ces privilèges à elle-même — c'est une décision prise à l'exécution — donc passez le flag, ou utilisez le docker-compose.yml fourni, qui le définit pour vous.
L'image est tout-en-un : un vaste ensemble d'outils de sécurité offensive est préinstallé (nmap, nuclei, httpx, subfinder, dnsx, naabu, katana, ffuf, gobuster, dalfox, feroxbuster, sqlmap, masscan, nikto, whatweb, hydra, et plus encore), ainsi que Chromium pour le DAST assisté par navigateur. Elle conserve également l'ensemble complet des gestionnaires de paquets (apt, go, cargo, pipx, npm) disponibles, de sorte que l'agent installe automatiquement tout ce qui manque à l'exécution. Les données de scan persistent dans le volume /data, et le serveur se lie à 0.0.0.0 à l'intérieur du conteneur — définissez XALGORIX_USERNAME/XALGORIX_PASSWORD avant de l'exposer au-delà de localhost.
Le conteneur s'exécute en tant que root par conception (le moteur n'active l'installation automatique à l'exécution que pour l'uid 0, et les installations apt/go/cargo nécessitent un accès en écriture au système). Traitez-le comme un bac à sable de scan jetable et isolé du réseau. Les mêmes tags publient un manifeste multiplateforme pour linux/amd64 et linux/arm64, donc Docker sélectionne automatiquement l'image native.
Au premier lancement, si vous ne définissez pas l'authentification du tableau de bord, le conteneur génère un mot de passe administrateur aléatoire et l'affiche dans les logs (l'image se lie à 0.0.0.0, ce que le moteur ne fera pas sans authentification). Définissez XALGORIX_USERNAME + XALGORIX_PASSWORD (ou XALGORIX_PASSWORD_HASH) pour utiliser les vôtres. Le binaire ne se met jamais à jour automatiquement à l'intérieur du conteneur (XALGORIX_NO_AUTO_UPDATE=1) — récupérez un nouveau tag d'image pour mettre à niveau. Le moteur nuclei et ses modèles de vulnérabilités sont actualisés à la dernière version à chaque build de l'image (la CI de release et redeploy.sh le forcent) ; passez --build-arg NUCLEI_VERSION=vX.Y.Z pour épingler le moteur, ou NUCLEI_REFRESH=0 ./redeploy.sh pour réutiliser le cache de Docker.
📋 Prérequis (compilation depuis les sources)
| Prérequis | Remarques |
|---|---|
| OS | Linux ou macOS (amd64/arm64). |
| Go | 1.26 ou plus récent. |
| Node.js + npm | Requis lors de la compilation de l'interface Web React intégrée depuis les sources. |
| Outils de sécurité | Installés à la demande uniquement lorsque l'installation automatique est activée. |
Vérifiez votre version de Go :```bash go version
### 🔨 Compiler depuis les sources```bash
git clone https://github.com/xalgorix/xalgorix.git
cd xalgorix
make build
sudo install -m 755 build/xalgorix /usr/local/bin/xalgorix
make build compile l'interface Web React dans internal/web/static, puis compile le binaire Go.
📦 Installation avec Go```bash
GOPROXY=direct GOSUMDB=off go install github.com/xalgord/xalgorix/v4/cmd/xalgorix@latest
## 🔩 Configuration
Xalgorix charge la configuration dans cet ordre. Les sources suivantes remplacent les précédentes.
| Ordre | Source |
| ----- | -------------------------------------------------------------- |
| 1 | `/etc/xalgorix.env` |
| 2 | `/home/<sudo-user>/.xalgorix.env` lorsqu'il est lancé via `sudo` |
| 3 | `~/.xalgorix.env` |
| 4 | Variables d'environnement déjà présentes dans le processus |
Créez le fichier d'environnement local :```bash
nano ~/.xalgorix.env
🧩 Configuration minimale
Pour obtenir les meilleurs résultats de scan autonome, sélectionnez un modèle de pointe actuel. L'ID de modèle ci-dessous est un exemple concret ; des ID de modèles compatibles plus récents peuvent être saisis sans attendre une nouvelle version de Xalgorix.```bash XALGORIX_LLM=openai/gpt-5.6 XALGORIX_API_KEY=your_openai_api_key
### 🔌 Exemples de fournisseurs
OpenAI :```bash
XALGORIX_LLM=openai/gpt-5.6
XALGORIX_API_KEY=sk-...
Fournisseur personnalisé compatible OpenAI :```bash XALGORIX_LLM=custom/security-model XALGORIX_API_BASE=https://your-provider.example/v1 XALGORIX_API_KEY=your_provider_api_key
#### 🌉 Passerelles LiteLLM / compatibles OpenAI (GitHub Copilot, Claude Opus, Codex, OpenRouter, Azure, modèles locaux)
Comme `XALGORIX_API_BASE` accepte n'importe quel point de terminaison `/v1/chat/completions` compatible OpenAI,
Xalgorix fonctionne avec un proxy [LiteLLM](https://docs.litellm.ai/) dès l'installation — aucune
modification côté Xalgorix n'est nécessaire. LiteLLM gère l'authentification du fournisseur en amont (connexion
par appareil Copilot, clés Azure, OpenRouter, Ollama, etc.) ; Xalgorix parle simplement OpenAI à la passerelle.
Lancer LiteLLM (exemple `config.yaml`) :```yaml
model_list:
- model_name: claude-opus-5
litellm_params:
model: github_copilot/claude-opus-5 # or openrouter/…, azure/…, ollama/…
general_settings:
master_key: sk-local-litellm-key
Pointez Xalgorix vers celui-ci — utilisez le préfixe custom/ afin que le nom du modèle soit envoyé tel quel et que le protocole OpenAI chat-completions soit utilisé :```bash
XALGORIX_LLM=custom/claude-opus-5 # the LiteLLM model_name
XALGORIX_API_BASE=http://localhost:4000/v1 # your LiteLLM proxy
XALGORIX_API_KEY=sk-local-litellm-key # LiteLLM master_key / virtual key
Le même schéma couvre GitHub Copilot Business/CLI, Claude Opus, les modèles de style Codex,
OpenRouter, Azure OpenAI et les modèles Ollama locaux — tout ce que LiteLLM peut router. Conservez le
préfixe `custom/` (ou `openai/`) et un `XALGORIX_API_BASE` non-Anthropic/Gemini afin que Xalgorix
utilise la forme de requête OpenAI standard attendue par LiteLLM.
### 🔔 Intégrations optionnelles```bash
GEMINI_API_KEY=AIza...
AGENTMAIL_POD=am_us_pod_47
AGENTMAIL_API_KEY=ak_...
XALGORIX_DISCORD_WEBHOOK=https://discord.com/api/webhooks/...
XALGORIX_DISCORD_MIN_SEVERITY=high
🔐 Authentification du tableau de bord```bash
XALGORIX_USERNAME=admin XALGORIX_PASSWORD=change-this-password
> [!TIP]
> Préférez `XALGORIX_PASSWORD_HASH` pour les déploiements en production.
## 🆙 Mise à niveau depuis les versions précédentes
Cette version apporte une passe de stabilité et d'isolation de l'espace de travail avec un changement incompatible et quelques nouveaux réglages qu'il vaut la peine de connaître.
### 💥 Changement incompatible : l'espace de travail par défaut est déplacé vers `~/.xalgorix/data/`
La sortie de scan, les notes, les planifications et les autres artefacts générés résident désormais sous `~/.xalgorix/data/` au lieu de `$CWD` (le répertoire depuis lequel le binaire a été lancé).
Pour conserver le comportement précédent, pointez `XALGORIX_DATA_DIR` vers votre répertoire de travail actuel :```bash
export XALGORIX_DATA_DIR=$(pwd)
Un avertissement [MIGRATION] est émis au démarrage lorsque des marqueurs hérités (notes.json, _schedules/, vulnerabilities.json, ou répertoires YYYY-MM-DD/scan-*) sont détectés dans $CWD et que XALGORIX_DATA_DIR n'est pas défini. Xalgorix ne lit, ne copie ni ne supprime jamais automatiquement ces fichiers hérités ; l'avertissement est informatif et n'est émis qu'une seule fois par processus.
🆕 Nouvelle variable d'environnement
| Variable | Valeur par défaut | Description |
|---|---|---|
XALGORIX_LLM_MAX_INFLIGHT | 4 × EffectiveMaxInstances | Plafonne les appels LLM sortants simultanés sur tous les scans en cours. Minimum 1. Les attentes annulées ne consomment pas de slot. |
🩺 Nouveaux compteurs de l'endpoint de santé
GET /api/status expose désormais :
| Champ | Signification |
|---|---|
panics_recovered | Paniques de goroutine, de handler HTTP et d'outil qui ont été récupérées sans crash. |
path_rejections | Écritures sur le système de fichiers refusées par Path_Policy (hors data_dir / ~/.xalgorix/ / /tmp). |
watchdog_kills | Sous-processus terminés par le watchdog de timeout strict par outil. |
admission_refusals | Demandes d'admission de scan refusées en raison du plafond de concurrence. |
llm_inflight_cap | Valeur effective de XALGORIX_LLM_MAX_INFLIGHT pour ce processus. |
data_dir | Data_Dir résolu en cours d'utilisation. |
allow_list | Racines du système de fichiers acceptées par Path_Policy. |
🏃 Exécution
🪟 Interface Web```bash
xalgorix --web
Ouvrir :```text
http://127.0.0.1:9137
Utilisez un port différent :```bash xalgorix --web --port 8080
### 🌐 Accès externe
Ne liez une autre interface qu'après avoir activé l'authentification du tableau de bord :```bash
XALGORIX_USERNAME=admin XALGORIX_PASSWORD=change-this xalgorix --web --bind 0.0.0.0
[!WARNING] Le serveur refuse toute liaison externe sans authentification au tableau de bord.
🏹 Analyse CLI```bash
xalgorix --target https://example.com
Avec des instructions personnalisées :```bash
xalgorix --target https://app.example.com --instruction "Focus on SQL injection, IDOR, and auth bypass. Avoid destructive tests."
🧰 Mode Service
Installer et démarrer en tant que service système :```bash sudo xalgorix --start
Gérer le service :```bash
sudo xalgorix --restart
sudo xalgorix --stop
sudo xalgorix --uninstall
Afficher les journaux :```bash journalctl -u xalgorix -f
### 🌍 Accès aux services distants
N'exposez le service aux navigateurs distants qu'après avoir activé l'authentification du tableau de bord :```bash
sudo tee -a /root/.xalgorix.env >/dev/null <<'EOF'
XALGORIX_BIND=0.0.0.0
XALGORIX_USERNAME=admin
XALGORIX_PASSWORD=change-this
EOF
sudo xalgorix --restart
Puis ouvrez http://<server-ip>:9137.
Si le processus écoute mais que la page ne se charge toujours pas à distance, autorisez le port TCP 9137 dans le pare-feu du serveur ou le groupe de sécurité cloud.
🏠 Analyse de cibles locales/internes
Par défaut, Xalgorix refuse d'analyser les adresses de bouclage, localhost, de plage privée ou de sa propre interface — ce sont les adresses de la machine sur laquelle Xalgorix s'exécute, pas une cible. Sur une machine auto-hébergée et mono-locataire, vous pouvez choisir d'analyser une application de démonstration/préproduction hébergée localement :```bash
echo 'XALGORIX_ALLOW_LOCAL_TARGETS=true' | sudo tee -a /root/.xalgorix.env
sudo xalgorix --restart
Le listener propre du tableau de bord est **toujours** protégé, même lorsque cette option est activée.
> **⚠️ Déploiements partagés / multi-tenant / hébergés : laissez cette option DÉSACTIVÉE.** L'activer
> permettrait au scan d'un utilisateur d'atteindre la machine de l'opérateur et son réseau interne.
> Elle est désactivée par défaut, donc aucune action n'est nécessaire pour rester en sécurité — ne définissez pas
> `XALGORIX_ALLOW_LOCAL_TARGETS` (ou fixez `XALGORIX_ALLOW_LOCAL_TARGETS=false`),
> et n'exposez pas la page Settings du moteur à des utilisateurs non fiables.
## 🔁 Flux de travail de l'interface web
1. Ouvrez le tableau de bord à l'adresse `http://127.0.0.1:9137`.
2. Allez dans Settings et confirmez le fournisseur LLM, la clé API, les limites de débit et les intégrations optionnelles.
3. Créez un scan depuis New Scan.
4. Choisissez un mode de scan.
5. Sélectionnez les phases de méthodologie lorsque vous souhaitez une exécution ciblée.
6. Définissez les filtres de sévérité lorsque seules certaines sévérités doivent être signalées en direct. Le filtre affecte uniquement le flux du tableau de bord en temps réel et les notifications ; le rapport PDF et `/api/findings` incluent toujours toutes les vulnérabilités découvertes par l'agent.
7. Ajoutez le nom de l'entreprise et téléchargez un logo pour des rapports personnalisés.
8. Surveillez la progression depuis Overview, Scan Detail ou Live Feed.
9. Ouvrez les détails des findings, téléchargez les rapports ou gérez les scans historiques depuis Scans and Reports.
## 🔀 Modes de scan
| Mode | Idéal pour |
| ---------------- | ------------------------------------------------------------------------------- |
| 🎯 Cible unique | Tester une URL ou un hôte connu. |
| 🌐 Wildcard / multi | Énumérer les cibles associées et scanner la surface d'attaque découverte. |
| 🧭 DAST | Tests assistés par navigateur pour les applications web, les flux d'authentification, les formulaires et le comportement à l'exécution. |
## 📂 Scannez votre code (aucune cible nécessaire)
Pointez Xalgorix vers une base de code — une URL Git, un chemin local ou un zip téléversé — et
il scanne directement le code source. Aucune URL déployée, aucune infrastructure à mettre en place.```bash
# Source review (SAST): audit the code, no running target required
xalgorix --source ./my-app --code-scan review
# Provision + DAST: build & run the app locally, then pentest the running instance
xalgorix --source https://github.com/org/app.git --code-scan provision
| Mode de scan de code | Ce qu'il fait | Niveau de vérification |
|---|---|---|
review | Lit le code source, trace l'entrée utilisateur du point d'entrée → sink dangereux, et signale les vulnérabilités atteignables. Pas de cible live. | Vérifié par source — prouvé atteignable dans le code (clairement étiqueté comme non exploité à l'exécution). |
provision | Inspecte le dépôt, construit et exécute l'application sur un port loopback, puis exécute un DAST guidé en whitebox contre l'instance en cours d'exécution. Revient à review si l'application ne peut pas être construite. | Vérifié par exploitation — reproduit contre l'application en cours d'exécution. |
--sourceaccepte une URL Git (clonée en shallow), un répertoire local, ou un chemin vers une archive téléversée/extractée. Dans l'interface Web / l'application hébergée, vous pouvez également téléverser un.zipde votre base de code (POST /api/upload-source).- Vous pouvez toujours combiner un dépôt et une cible live pour l'augmentation whitebox classique — ce chemin est inchangé. Les modes de scan de code sont destinés aux cas où la base de code constitue le sujet entier.
Le mode provision exécute les commandes de build/démarrage de votre application dans le sandbox de l'agent et ne teste que le port loopback unique sur lequel il a démarré l'application — le tableau de bord et tout le reste sur la machine restent hors périmètre.
🧭 Méthodologie
Xalgorix organise les tests autonomes en 22 phases.
| Phase | Focus |
|---|---|
| 1 | Reconnaissance |
| 2 | Découverte manuelle de vulnérabilités |
| 3 | Découverte de répertoires et de fichiers |
| 4 | Analyse CORS et cookies |
| 5 | Tests d'authentification et de session |
| 6 | Tests d'injection |
| 7 | Tests SSRF |
| 8 | IDOR et contrôle d'accès défaillant |
| 9 | Tests API et GraphQL |
| 10 | Tests de téléversement de fichiers |
| 11 | Désérialisation et RCE |
| 12 | Conditions de course et logique métier |
| 13 | Prise de contrôle de sous-domaine |
| 14 | Tests de redirection ouverte |
| 15 | Tests de sécurité des e-mails |
| 16 | Cloud et infrastructure |
| 17 | Tests WebSocket |
| 18 | Tests spécifiques aux CMS |
| 19 | Détournement de liens brisés et usurpation de contenu |
| 20 | Vérification d'exploitation |
| 21 | Découverte de vulnérabilités inédites |
| 22 | Rapport final |
La sélection des phases dans l'interface Web vous permet d'exécuter toutes les phases ou uniquement le sous-ensemble nécessaire pour un engagement spécifique.
📄 Rapports
Les rapports sont générés sous forme de fichiers PDF et peuvent inclure :
| Section | Contenu inclus |
|---|---|
| 📌 Résumé | Résumé exécutif, métadonnées de la cible, métadonnées du scan et aperçu de la sévérité. |
| 🐞 Constats | Constats vérifiés, détails CVSS, analyse technique et preuve d'exploitation. |
| 🔬 Preuves | Commandes de preuve de concept, scripts, notes de payload et observations à l'appui. |
| 🩹 Remédiation | Conseils de correction et prochaines étapes priorisées. |
| 🎨 Image de marque | Nom de l'entreprise/cible et logo téléversé. |
Les rapports sont disponibles depuis la page de détail du scan et la page Rapports. Les lignes de rapport prennent en charge l'ouverture, le téléchargement et la suppression.
🔧 Paramètres
La plupart des paramètres opérationnels peuvent être modifiés depuis l'interface Web sous Paramètres.
| Domaine | Exemples |
|---|---|
| 🤝 Engagement | Limites de débit des requêtes du tableau de bord |
| 🧠 LLM | Modèle, clé API, base API, effort de raisonnement, tentatives, itérations max |
| 📬 AgentMail | Pod et clé API |
| 🔔 Notifications | Webhook Discord et sévérité minimale, token de bot Telegram, ID de chat, sévérité minimale, et résumés de fin de scan en opt-in |
| 🕵️ Proxy | URL de proxy, fichier de proxy, rotation, vérification TLS |
| 🧱 Runtime | Espace de travail, chemin du navigateur, contrôles d'installation automatique |
| 🔐 Sécurité | Nom d'utilisateur du tableau de bord, mot de passe, hash de mot de passe, adresse de liaison |
| 📈 Ressources | Seuils CPU/RAM/disque et budget de concurrence des scans |
Certains paramètres nécessitent un redémarrage car ils affectent le démarrage du processus ou la liaison du serveur. L'interface marque ces champs.
🧾 Variables d'environnement
🧱 Core
| Variable | Défaut | Description |
|---|---|---|
XALGORIX_LLM | none | ID de modèle natif du fournisseur utilisé pour les requêtes LLM. |
XALGORIX_LLM_PROVIDER | none | Fournisseur sélectionné par le tableau de bord, stocké séparément de l'ID de modèle. |
XALGORIX_API_KEY | none | Clé API du fournisseur LLM requise. |
XALGORIX_API_BASE | provider default | URL de base d'API personnalisée compatible OpenAI. |
XALGORIX_REASONING_EFFORT | high | Effort de raisonnement : none, low, medium, high, ou xhigh (xhigh correspond à high pour Ollama). |
XALGORIX_LANGUAGE | en | Langue de sortie pour la prose générée par IA (raisonnement de l'agent, notes, constats, contenu du rapport, chat post-scan). en ou zh-CN. Les tokens techniques (payloads, commandes, URLs, IDs CVE/CWE) restent toujours sous leur forme originale. Les langues non latines s'affichent automatiquement dans le tableau de bord et le rapport HTML. |
XALGORIX_PDF_CJK_FONT | none | Chemin absolu vers une police TrueType (.ttf) avec des glyphes CJK, utilisée pour afficher les langues non latines (par ex. le chinois simplifié) dans le rapport PDF exporté. Seul .ttf est pris en charge (pas .ttc/.otf). Sans cela, le PDF revient aux polices de base et les glyphes non latins ne s'afficheront pas (le rapport HTML n'est pas affecté). |
XALGORIX_OLLAMA_COMPATIBLE | false | Appliquer la sémantique de raisonnement Ollama à un endpoint personnalisé sur un port non standard. Le port 11434 est détecté automatiquement. |
XALGORIX_LLM_MAX_RETRIES | 5 | Nombre de tentatives pour les échecs LLM transitoires. |
XALGORIX_MEMORY_COMPRESSOR_TIMEOUT | 30 | Délai d'expiration en secondes pour la compression du contexte. |
XALGORIX_MAX_ITERATIONS | 0 | Plafond d'itérations de l'agent. 0 signifie illimité. |
XALGORIX_PPROF_ADDR | none | Profileur Go en opt-in. Lorsqu'il est défini (par ex. 127.0.0.1:6060), démarre un serveur pprof autonome à /debug/pprof/ sur cette adresse pour le diagnostic CPU/heap. Désactivé par défaut. Expose les internes du processus — liez au loopback et accédez-y via un tunnel SSH ; ne l'exposez jamais publiquement. |
GEMINI_API_KEY | none | Clé Gemini optionnelle pour l'enrichissement par recherche web. |
🔒 Web et sécurité
| Variable | Défaut | Description |
|---|---|---|
XALGORIX_BIND | 127.0.0.1 | Adresse d'écoute du serveur web. |
XALGORIX_ALLOW_LOCAL_TARGETS | false | Autoriser le scan d'applications hébergées localement (localhost / 127.0.0.1 / IPs privées) sur une installation auto-hébergée. Le listener du tableau de bord lui-même est toujours protégé. Laissez désactivé sur les déploiements partagés/hébergés. |
XALGORIX_USERNAME | none | Nom d'utilisateur du tableau de bord. |
XALGORIX_PASSWORD | none | Mot de passe du tableau de bord. |
XALGORIX_PASSWORD_HASH | none | Hash de mot de passe bcrypt préféré. |
XALGORIX_WORKSPACE | current directory | Racine de l'espace de travail pour l'exécution des scans. |
🤝 Intégrations
| Variable | Défaut | Description |
|---|---|---|
AGENTMAIL_POD | none | Identifiant de pod AgentMail. |
AGENTMAIL_API_KEY | none | Clé API AgentMail. |
XALGORIX_DISCORD_WEBHOOK | none | Webhook Discord global. |
XALGORIX_DISCORD_MIN_SEVERITY | none | Sévérité minimale envoyée à Discord. |
XALGORIX_TELEGRAM_BOT_TOKEN | none | Token de bot Telegram depuis @BotFather. |
XALGORIX_TELEGRAM_CHAT_ID | none | ID de chat/canal Telegram (numérique ou @username). |
XALGORIX_TELEGRAM_MIN_SEVERITY | none | Sévérité minimale envoyée à Telegram. |
XALGORIX_NOTIFY_SCAN_COMPLETE | false | Envoyer les résumés de fin de scan aux destinations Discord/Telegram configurées. Ceci est en opt-in et n'affecte pas les alertes par vulnérabilité. |
CAIDO_PORT | 0 | Port du proxy Caido. 0 signifie détection automatique. |
CAIDO_API_TOKEN | none | Token API Caido. |
🚦 Limites de débit, proxy et runtime
| Variable | Défaut | Description |
|---|---|---|
XALGORIX_RATE_LIMIT_REQUESTS | 60 | Requêtes du tableau de bord par fenêtre. |
XALGORIX_RATE_LIMIT_WINDOW | 60 | Fenêtre de limite de débit du tableau de bord en secondes. |
XALGORIX_RATE_RPS | 10 | Débit de requêtes sortantes soutenu. |
XALGORIX_RATE_BURST | 20 | Taille de rafale sortante. |
XALGORIX_USE_PROXY | false | Activer le routage par proxy. |
XALGORIX_PROXY_REQUIRED | false | Exiger un proxy amont pour les chemins HTTP/navigateur cibles sans repli direct. |
XALGORIX_PROXY_URL | none | URL de proxy unique. Remplace le fichier de proxy. |
XALGORIX_PROXY_FILE | none | Fichier contenant un proxy par ligne. |
XALGORIX_PROXY_ROTATION | roundrobin | Stratégie de rotation des proxys : roundrobin ou random. |
XALGORIX_TLS_SKIP_VERIFY | false | Ignorer la vérification TLS pour le trafic de test. |
XALGORIX_DISABLE_BROWSER | false | Désactiver l'automatisation du navigateur. |
XALGORIX_BROWSER_PATH | auto | Chemin d'exécutable Chrome/Chromium personnalisé. |
XALGORIX_ALLOW_AUTO_INSTALL | root only | Autoriser l'installation automatique de paquets. |
XALGORIX_AUTO_INSTALL_SUDO | false | Autoriser les installations automatiques préfixées par sudo. |
🔤 Préfixes de fournisseur
Lorsque XALGORIX_API_BASE est vide, Xalgorix déduit les valeurs par défaut du fournisseur à partir du préfixe du modèle.
| Préfixe | Base API par défaut |
|---|---|
openai/ | https://api.openai.com/v1 |
anthropic/ | https://api.anthropic.com |
deepseek/ | https://api.deepseek.com/v1 |
groq/ | https://api.groq.com/openai/v1 |
google/ | https://generativelanguage.googleapis.com/v1 |
gemini/ | https://generativelanguage.googleapis.com/v1 |
ollama/ | http://localhost:11434/v1 |
minimax/ | https://api.minimax.io/v1 |
Les noms de modèles ne sont pas codés en dur selon cette liste. La page Paramètres accepte les ID de modèles saisis afin que les modèles de fournisseurs plus récents puissent être utilisés sans attendre une mise à jour de la liste déroulante de l'interface.
💻 Référence CLI
| Flag | Alias | Description |
|---|---|---|
--web | -w | Démarrer l'interface Web. |
--port <port> | -p | Port de l'interface Web. Défaut : 9137. |
--bind <addr> | none | Adresse de liaison. Défaut : 127.0.0.1. |
--target <target> | -t | URL, hôte, IP ou chemin cible. Répétable. |
--instruction <text> | -i | Instructions de scan personnalisées. |
--model <model> | -m | Remplacer XALGORIX_LLM pour cette exécution. |
--update | -up | Mettre à jour vers la dernière version. |
--version | -v | Afficher la version. |
--start | none | Installer et démarrer le service système. |
--stop | none | Arrêter le service système. |
--restart | none | Redémarrer le service système. |
--uninstall | none | Supprimer le service système. |
--help | -h | Afficher l'aide. |
📡 Résumé de l'API
| Méthode | Endpoint | Objectif |
|---|---|---|
POST | /api/scan | Démarrer ou enregistrer un scan. |
POST | /api/stop | Arrêter tous les scans en cours. |
GET | /api/status | Statut global actuel. |
GET | /api/scans | Lister les scans. |
GET | /api/scans/:id | Obtenir le détail d'un scan. |
DELETE | /api/scans/:id | Supprimer un scan et ses données de rapport. |
GET | /api/findings | Lister tous les constats (dédupliqués entre les scans). |
GET | /api/findings/summary | Décompte de sévérité sur tous les scans. |
GET | /api/report/:id | Télécharger un rapport PDF. |
GET | /api/instances | Lister les instances actives et historiques. |
GET | /api/instances/:id/events | Obtenir l'historique des événements mis en mémoire tampon. |
POST | /api/instances/:id/stop | Arrêter une instance spécifique. |
POST | /api/instances/:id/start | Démarrer un scan enregistré ou terminé comme nouvelle exécution. |
POST | /api/instances/:id/restart | Redémarrer avec la même configuration. |
POST | /api/instances/:id/pause | Mettre en pause un scan en cours. |
POST | /api/instances/:id/resume | Reprendre un scan en pause. |
POST | /api/upload-logo | Téléverser un logo de rapport. |
POST | /api/upload-targets | Téléverser une liste de cibles. |
GET | /api/settings/environment | Lister les paramètres d'environnement modifiables. |
POST | /api/settings/environment | Enregistrer les paramètres d'environnement. |
GET | /api/settings/llm | Obtenir les paramètres LLM. |
POST | /api/settings/llm | Enregistrer les paramètres LLM. |
GET | /api/settings/agentmail | Obtenir les paramètres AgentMail. |
POST | /api/settings/agentmail | Enregistrer les paramètres AgentMail. |
GET | /ws | Flux d'événements en direct WebSocket. |
💾 Stockage des données
Les données de scan en mode Web sont stockées sous :```text
~/xalgorix-data/
|-- _saved/
|-- logos/
|-- queue_state.json
-- <target>/ -- /
-- <scan-id>/ |-- scan.json -- report.pdf
Le serveur conserve les enregistrements de scans historiques sur disque afin que l'interface utilisateur puisse récupérer après un rafraîchissement ou un redémarrage.
## 🧪 Développement
| Tâche | Commande |
| --------------------------- | ----------------------------- |
| 📦 Installer les dépendances de l'interface Web | `make webui-install` |
| 🔨 Tout compiler | `make build` |
| ✅ Exécuter les tests | `go test ./...` |
| 🖥️ Exécuter l'interface Web depuis les sources | `go run ./cmd/xalgorix --web` |
| ⚡ Exécuter le serveur de développement frontend | `make webui-dev` |
## 🚨 Notes de sécurité
- Utilisez Xalgorix uniquement contre des cibles autorisées.
- Ne lancez pas de tests actifs contre des systèmes tiers sans autorisation.
- Vérifiez les instructions de scan avant de lancer.
- Configurez les limites de débit et les paramètres de proxy en fonction des règles de l'engagement.
- Exposer le tableau de bord à l'extérieur nécessite une authentification.
- L'installation automatique est désactivée par défaut pour les utilisateurs non-root et ne doit être activée que si vous faites confiance à l'environnement.
## 📜 Licence
Xalgorix est publié sous la licence Apache License 2.0. Voir [LICENSE](https://github.com/xalgord/xalgorix/blob/main/LICENSE).
## 🔗 Liens
| Ressource | Lien |
| ------------- | -------------------------------------------------------------------------------- |
| ☁️ Hébergé (Cloud) | [www.xalgorix.com](https://www.xalgorix.com/) |
| 📖 Documentation | [docs.xalgorix.com](https://docs.xalgorix.com) |
| 🐛 Problèmes | [github.com/xalgorix/xalgorix/issues](https://github.com/xalgorix/xalgorix/issues) |
| ☕ Soutien | [buymeacoffee.com/xalgord](https://buymeacoffee.com/xalgord) |


