Un bot Discord.
- Rust 87.2%
- Lua 4.8%
- Dockerfile 4%
- Ruby 1.5%
- HCL 1.4%
- Other 1.1%
|
|
||
|---|---|---|
| .cargo | ||
| .devcontainer | ||
| .forgejo | ||
| .mise | ||
| .vscode | ||
| config | ||
| crates | ||
| Docker | ||
| scripts | ||
| src | ||
| supply-chain | ||
| .dockerignore | ||
| .editorconfig | ||
| .env.example | ||
| .gitignore | ||
| bot.code-workspace | ||
| cargo.toml | ||
| CHANGELOG.md | ||
| clippy.toml | ||
| CONTRIBUTING.md | ||
| cross.toml | ||
| DefLogoTactic2_upscayl_16x_digital-art-4x.png | ||
| docker-bake.hcl | ||
| docker-compose.yml | ||
| LICENSE | ||
| mise.lock | ||
| mise.toml | ||
| precious.toml | ||
| README.md | ||
| rust-toolchain.toml | ||
| rustfmt.toml | ||
| SECURITY.md | ||
🤖 Secretaire - Discord Bot de Modération
Bot Discord de modération et gestion de serveur écrit en Rust.
🚀 Déploiement Rapide (Docker)
# 1. Configuration
cp .env.example .env
nano .env # Ajoute ton DISCORD_TOKEN
# 2. Build & Run
docker-compose up -d
# 3. Logs
docker-compose logs -f
C'est tout ! 🎉
🏗️ Architecture
Projet Cargo Workspace modulaire :
secretaire/
├── crates/
│ ├── secretaire-core/ # Fonctionnalités communes
│ ├── secretaire-admins/ # Commandes d'administration
│ └── secretaire-utils/ # Commandes utilitaires
└── src/
└── main.rs # Point d'entrée
✨ Fonctionnalités
🛡️ Administration
ban/unban- Bannir/débannirkick- Expulserwarn- Avertissementsclear- Purge de messagesspy/delspy- Surveillancesay- Faire parler le botinvite- Gestion invitationsmp- Messages privésrule- Règles du serveur
🔧 Utilitaires
help- Aide interactiveping- Latencesystem- Infos systèmeuptime- Temps de fonctionnement
🐳 Docker (Recommandé)
Avec Docker Compose
# Démarrer
docker-compose up -d
# Arrêter
docker-compose down
# Logs
docker-compose logs -f
# Restart
docker-compose restart
# Rebuild
docker-compose build
docker-compose up -d
Avec Docker directement
# Build
docker build -f Dockerfile.rust -t secretaire:latest .
# Run
docker run -d \
--name secretaire \
--env-file .env \
--restart unless-stopped \
secretaire:latest
# Logs
docker logs -f secretaire
# Stop
docker stop secretaire && docker rm secretaire
Avec mise (développeurs)
# Build
mise run docker:build
# Run
mise run docker:run
# Logs
mise run docker:logs
# Deploy complet
mise run deploy
🛠️ Développement
Prérequis
Setup local
# Installation
mise install
mise run init
# Développement avec auto-reload
mise run dev
Commandes essentielles
# Tests
mise run test
# Vérifications complètes
mise run check # Format + Lint + Tests
mise run security:all # Audits de sécurité
# Build
mise run build # Build release
📋 Liste complète : mise tasks
🔒 Sécurité
- ✅
cargo-audit- Audit des vulnérabilités - ✅
cargo-deny- Vérification des licences - ✅
precious- Formatage uniforme - ✅ Image Docker minimale (Alpine)
- ✅ Utilisateur non-root dans le container
# Audit de sécurité
mise run security:all
⚙️ Configuration
Variables d'environnement dans .env :
# Requis
DISCORD_TOKEN=your_bot_token_here
# Optionnels
BOT_PREFIX=!
RUST_LOG=secretaire=info
📊 Performance
| Métrique | Valeur |
|---|---|
| Taille image Docker | ~15 MB |
| Mémoire (idle) | ~30 MB |
| CPU (idle) | ~0.5% |
| Temps de démarrage | ~200ms |
🔄 Mise à jour
# Pull les changements
git pull
# Rebuild et redéploie
docker-compose build
docker-compose up -d
# Ou avec mise
mise run deploy
📚 Documentation
- QUICKSTART.md - Guide de démarrage
- SECURITY_PERF.md - Sécurité & Performance
- .forgejo/COSIGN_SETUP.md - Signature Cosign
Générer la documentation
mise run docs:open
🐛 Dépannage
Le bot ne démarre pas
# Vérifier les logs
docker-compose logs secretaire
# Vérifier la config
cat .env
# Vérifier le token
echo $DISCORD_TOKEN
Le bot ne répond pas
- Vérifier les intents Discord
- Vérifier les permissions du bot
/helppour tester
Problème de mémoire
Ajuster les limites dans docker-compose.yml :
deploy:
resources:
limits:
memory: 512M # Augmenter si nécessaire
🤝 Contributing
- Fork le projet
- Crée une branche (
git checkout -b feature/amazing) - Commit (
git commit -m 'feat: add amazing') - Push (
git push origin feature/amazing) - Ouvre une Pull Request
Avant de commit :
mise run check
📝 Changelog
Voir CHANGELOG.md
📄 License
MIT License - voir LICENSE
🙏 Remerciements
Fait avec ❤️ en Rust 🦀 | Déployé avec 🐳 Docker