Complete ecosystem of Discord bots and tools for the
Communauté du RP FRDiscord server
Welcome to the Communauté du RP FR GitHub organization! We develop and maintain several Discord bots and tools to help manage the server.
Main bot for managing the roleplay server listing.
Features:
- Roleplay server registration and management
- Server search by criteria
- Member and player management
- Boost system
- Statistics and leaderboards
Technologies: Python, discord.py Documentation: Sphinx
Advanced moderation bot with a verification system and ticket management.
Features:
- Comprehensive moderation tools
- Ticket system
- Automated user verification
- Mini-games
- List and configuration management
- Automated tasks (loops)
Technologies: Python, discord.py Documentation: Sphinx
Private messaging system between users and the moderation team.
Features:
- Private conversations between a user and staff
- History and archiving
- Notifications
Technologies: Python, discord.py Documentation: Sphinx
Discord server backup and restoration bot.
Features:
- Partial database restoration
- Configuration restoration
- SQL database
Technologies: Python, discord.py, SQL Documentation: Sphinx
Shared library of utility functions for all bots.
Contents:
- Custom Discord client
- Database manager
- Generic views and UI components
- Text and emote utilities
- Centralized configuration
Technologies: Python Documentation: Sphinx
Privacy policy and terms of use for each bot.
Contents:
- Data privacy policy for all four bots
- Terms of use for all four bots
- Links to published versions
Python CLI for sending service status notifications to Discord.
Features:
- Formatted Discord notifications via webhooks
- Automatic timestamping
- @everyone mention to notify Admins
- Clean interface using native Discord components
Technologies: Python, discord.py, requests Documentation: Sphinx
Installation:
uv pip install git+https://github.com/Communaute-du-RP-FR/alerts.gitUsage:
export DISCORD_WEBHOOK_URL="https://discord.com/api/webhooks/..."
alerts my_service STARTEDPostgreSQL backup and restoration system with encryption and remote storage.
Features:
- Encrypted backups with age encryption
- Compressed PostgreSQL dumps (custom format, level 9)
- Remote storage via SCP
- Automatic cleanup (keeps the last 30 backups)
- Secure restoration with clean and if-exists options
Technologies: Bash, PostgreSQL, age encryption
Usage:
# Create a backup
./scripts/backup.sh
# Restore from a backup
./scripts/restore.sh backup-file.dump.age- Python 3.10+ and uv for managing the bots' environments/dependencies
- Git
- PostgreSQL
# 1. Clone the repository
git clone https://github.com/Communaute-du-RP-FR/[BOT-NAME].git
cd [BOT-NAME]
# 2. Create the environment with uv
uv venv .venv
# 3. Install dependencies from pyproject
uv sync # uses pyproject.toml and uv.lock if present
# 4. Configure the systemd service (see "Running as a service" section)
# Environment variables are loaded via EnvironmentFile in the serviceAll four bots (Liste-du-RP-FR, Moderator, Modmail, Restore) run as systemd services. Example for Liste-du-RP-FR:
-
Create the environment file
/etc/liste/liste.envwith the required variables (see each bot's own README for details). -
Create the service file
/etc/systemd/system/liste.service:
[Unit]
Description=Liste du RP FR bot for Communauté du RP FR discord server.
StartLimitInterval=200
StartLimitBurst=5
After=network.target
[Service]
ExecStart=/opt/Liste-du-RP-FR/.venv/bin/python3 /opt/Liste-du-RP-FR/src/main.py
ExecStartPost=/opt/alerts/.venv/bin/alerts liste STARTED
ExecStopPost=/opt/alerts/.venv/bin/alerts liste STOPPED
Restart=always
RestartSec=60
User=debian
StandardOutput=journal
EnvironmentFile=/etc/liste/liste.env
NoNewPrivileges=true
ProtectSystem=full
ProtectHome=true
CapabilityBoundingSet=
[Install]
WantedBy=multi-user.target- Enable and start:
sudo systemctl daemon-reload
sudo systemctl enable liste.service
sudo systemctl start liste.service
sudo systemctl status liste.serviceEach bot's specifics are detailed in its own README.
# Option 1: Install from the repo
uv pip install git+https://github.com/Communaute-du-RP-FR/utils.git
# Option 2: Local install for development
git clone https://github.com/Communaute-du-RP-FR/utils.git
cd utils
uv pip install -e .PostgreSQL (Restore) before /init-db
To use /init-db (a Restore bot command), you first need to create the database and grant the debian user passwordless socket-connection privileges:
sudo -u postgres psql <<'SQL'
CREATE DATABASE listerp_db;
CREATE USER debian;
GRANT ALL PRIVILEGES ON DATABASE listerp_db TO debian;
ALTER DATABASE listerp_db OWNER TO debian;
SQL
# Make sure pg_hba.conf has a local trust or peer entry for the debian user on the listerp_db database
# Example:
# local listerp_db debian peer
# Reload PostgreSQL after making changes
sudo systemctl reload postgresqlThen run /init-db from the Restore bot to create the tables and seed data.
Commit types:
feat: New featurefix: Bug fixdoc: Documentationstyle: Formatting, no code changerefactor: Code refactoringtest: Adding/modifying testschore: Maintenance tasks
- Discord: Join the server
- Issues: Use each repository's issue tracker
- Email: virgile.devolder2@gmail.com or martin.devolder2@gmail.com
Each project has its own license (generally MIT). Check the LICENSE file in each repository.