mirror of
https://github.com/skylanix/MamieHenriette.git
synced 2026-02-06 23:10:36 +01:00
175 lines
3.5 KiB
Markdown
Executable File
175 lines
3.5 KiB
Markdown
Executable File
|
|
# 👵 Mamie Henriette - Discord Status Bot 🤖
|
|
|
|
## 📖 Description
|
|
|
|
Mamie Henriette est un bot Discord intelligent qui change automatiquement de statut, surveillant et gérant votre serveur avec une touche d'humour et de caractère.
|
|
|
|
## ✨ Fonctionnalités
|
|
|
|
- Changement cyclique automatique des statuts
|
|
- Configuration flexible via variables d'environnement
|
|
- Gestion des erreurs et logging
|
|
- Support multi-statuts Discord
|
|
- Déploiement simplifié avec Docker
|
|
- 📊 Surveillance optionnelle avec Zabbix
|
|
|
|
## 🛠 Prérequis
|
|
|
|
- Docker et Docker Compose
|
|
- Compte Discord et Token du bot
|
|
- (Optionnel) Serveur Zabbix pour la surveillance
|
|
|
|
## 📦 Installation
|
|
|
|
1. Clonez le dépôt
|
|
```bash
|
|
git clone https://git.favrep.ch/lapatatedouce/MamieHenrriette
|
|
cd MamieHenrriette
|
|
```
|
|
|
|
2. Copiez le fichier de configuration
|
|
```bash
|
|
cp .env.example .env
|
|
```
|
|
|
|
3. Éditez le fichier `.env` avec vos paramètres
|
|
```bash
|
|
nano .env
|
|
```
|
|
|
|
4. Démarrez le conteneur Docker
|
|
|
|
**Mode développement (avec logs):**
|
|
```bash
|
|
docker-compose up --build
|
|
```
|
|
|
|
**Mode production (en arrière-plan):**
|
|
```bash
|
|
docker-compose up --build -d
|
|
```
|
|
|
|
**Voir les logs:**
|
|
```bash
|
|
docker-compose logs -f discord-bot
|
|
```
|
|
|
|
**Arrêter le conteneur:**
|
|
```bash
|
|
docker-compose down
|
|
```
|
|
|
|
## 🔧 Configuration
|
|
|
|
### Variables d'environnement principales
|
|
|
|
- `TOKEN`: Votre token Discord (obligatoire)
|
|
- `STATUS`: Statut initial (défaut: online)
|
|
- `INTERVAL`: Intervalle de changement de statut (défaut: 3600 secondes)
|
|
|
|
### 📊 Configuration Zabbix (optionnelle)
|
|
|
|
- `ENABLE_ZABBIX`: Activer la surveillance Zabbix (défaut: false)
|
|
- `ZABBIX_SERVER`: Adresse du serveur Zabbix
|
|
- `ZABBIX_HOSTNAME`: Nom d'hôte pour identifier le bot
|
|
- `ZABBIX_PORT`: Port d'exposition Zabbix (défaut: 10050)
|
|
|
|
#### Métriques surveillées par Zabbix
|
|
|
|
- Statut du bot Discord
|
|
- Temps de fonctionnement (uptime)
|
|
- Utilisation mémoire
|
|
- Erreurs et avertissements dans les logs
|
|
- Connectivité à Discord
|
|
|
|
#### Activation de Zabbix
|
|
|
|
Dans votre fichier `.env` :
|
|
```bash
|
|
ENABLE_ZABBIX=true
|
|
ZABBIX_SERVER=votre-serveur-zabbix.com
|
|
ZABBIX_HOSTNAME=MamieHenriette
|
|
```
|
|
|
|
### Fichier `statuts.txt`
|
|
|
|
Créez un fichier `statuts.txt` avec vos statuts, un par ligne.
|
|
|
|
Exemple :
|
|
```
|
|
Surveiller le serveur
|
|
Mamie est là !
|
|
En mode supervision
|
|
```
|
|
|
|
## 📋 Dépendances
|
|
|
|
- discord.py==2.3.2
|
|
- python-dotenv==1.0.0
|
|
|
|
---
|
|
|
|
# 🖥️ Installation environnement de développement
|
|
|
|
## Installation des dépendances système
|
|
|
|
```bash
|
|
sudo apt install python3 python3-pip
|
|
```
|
|
|
|
## Création de l'environnement Python local
|
|
|
|
Dans le dossier du projet :
|
|
|
|
```bash
|
|
python3 -m venv .venv
|
|
```
|
|
|
|
Puis activer l'environnement :
|
|
|
|
```bash
|
|
source .venv/bin/activate
|
|
```
|
|
|
|
## Installation des dépendances Python
|
|
|
|
```bash
|
|
pip install -r requirements.txt
|
|
```
|
|
|
|
## Exécution
|
|
|
|
```bash
|
|
python3 run-web.py
|
|
```
|
|
|
|
# Structure du projet
|
|
|
|
```
|
|
.
|
|
|-- database : module de connexion à la BDD
|
|
| |-- __init.py__
|
|
| |-- models.py : contient les pojo représentant chaque table
|
|
| |-- schema.sql : contient un scrip sql d'initialisation de la bdd, celui-ci doit être réentrant
|
|
|
|
|
|-- discordbot : module de connexion à discord
|
|
| |-- __init.py__
|
|
|
|
|
|-- webapp : module du site web d'administration
|
|
| |-- static : Ressource fixe directement accessible par le navigateir
|
|
| | |-- css
|
|
| | |-- ...
|
|
| |
|
|
| |-- template : Fichier html
|
|
| | |-- template.html : structure globale du site
|
|
| | |-- commandes.html : page de gestion des commandes
|
|
| | |-- ...
|
|
| |
|
|
| |-- __init.py__
|
|
| |-- index.py : controller de la page d'acceuil
|
|
| |-- commandes.py : controller de gestion des commandes
|
|
| |-- ...
|
|
|
|
|
|-- run-web.py : launcher
|
|
``` |