Bot Discord pour le serveur d'Axtazer — et projet d'apprentissage personnel.
| Commande | Description |
|---|---|
/bot |
Informations sur le bot (uptime, ping, etc.) |
/ping |
Latence WebSocket du bot |
/list |
Liste toutes les commandes disponibles |
/wake |
Réveille le PC via Wake-on-LAN (owner only) |
| Commande | Description |
|---|---|
/hug @user |
Fait un câlin à quelqu'un |
/kiss @user |
Fait un bisou à quelqu'un |
/nasa AAAA-MM-JJ |
Image astronomique NASA du jour (APOD) |
| Commande | Description |
|---|---|
/morpion @user |
Joue au morpion contre un autre joueur |
- Node.js 22+
- Un bot Discord (guide)
git clone https://github.com/Axtazer/Axtazia.git
cd Axtazia
npm installCopie .env.exemple en .env et remplis les variables :
cp .env.exemple .env# Discord
DISCORD_TOKEN= # Token du bot
CLIENT_ID= # ID de l'application
GUILD_ID= # ID du serveur Discord
OWNER_ID= # Ton ID utilisateur Discord
# NASA APOD
NASA_APOD_KEY= # Clé API NASA (https://api.nasa.gov)
# Wake-on-LAN
WOL_API_URL= # URL de l'API WoL
WOL_API_TOKEN= # Token d'auth de l'API WoL
# Twitch EventSub
TWITCH_CLIENT_ID= # App Client ID (https://dev.twitch.tv/console)
TWITCH_CLIENT_SECRET= # App Client Secret
TWITCH_BROADCASTER_ID= # ID du streamer à surveiller
TWITCH_WEBHOOK_SECRET= # Secret HMAC aléatoire (openssl rand -hex 32)
TWITCH_WEBHOOK_URL= # URL publique du bot (ex: https://bot.exemple.com)
TWITCH_WEBHOOK_PORT=3000 # Port du serveur webhook
TWITCH_NOTIFY_CHANNEL_ID= # ID du salon Discord pour les notifs# Enregistrer les commandes slash
npm run deploy
# Lancer le bot
npm start
# Développement (hot-reload)
npx nodemon index.jsdocker build -t axtazia .
docker run --env-file .env axtaziaL'image est aussi publiée automatiquement sur le GitHub Container Registry à chaque push sur main :
docker pull ghcr.io/axtazer/axtazia:latestLe bot inclut un serveur webhook HTTP pour recevoir les événements Twitch EventSub. Quand le streamer configuré passe en live, une notification est envoyée dans le salon Discord défini.
Prérequis : le bot doit être accessible depuis internet (URL publique). En développement, utilise ngrok :
ngrok http 3000
# puis renseigne l'URL dans TWITCH_WEBHOOK_URL.
├── commands/
│ ├── games/ # Jeux (morpion)
│ ├── interactions/ # Commandes fun (hug, kiss, nasa)
│ └── utility/ # Utilitaires (ping, bot, list, wake)
├── events/ # Gestionnaires d'événements Discord
├── src/
│ └── twitch/ # Webhook EventSub Twitch
├── index.js # Point d'entrée
└── deploy-commands.js # Enregistrement des commandes slash
MIT — Axtazer