fix: Add config.yml support for Docker deployment
Mount config.yml into Docker container and provide example template. Changes: - Mount config.yml as read-only volume in docker-compose.yml - Create config.example.yml template for users - Add config.yml to .gitignore (contains sensitive settings) - Update README.md with config file setup instructions Fixes 'Config file not found' error in Docker deployment. Users should: 1. Copy config.example.yml to config.yml 2. Edit config.yml with their settings 3. Run docker compose up -d
This commit is contained in:
3
.gitignore
vendored
3
.gitignore
vendored
@@ -37,6 +37,9 @@ env/
|
|||||||
.env
|
.env
|
||||||
.env.local
|
.env.local
|
||||||
|
|
||||||
|
# Configuration (contains sensitive data)
|
||||||
|
config.yml
|
||||||
|
|
||||||
# Data
|
# Data
|
||||||
data/
|
data/
|
||||||
*.db
|
*.db
|
||||||
|
|||||||
16
README.md
16
README.md
@@ -60,10 +60,15 @@ A lightweight, cost-conscious Discord moderation bot focused on essential protec
|
|||||||
cd guardden
|
cd guardden
|
||||||
```
|
```
|
||||||
|
|
||||||
2. Create your environment file:
|
2. Create your configuration files:
|
||||||
```bash
|
```bash
|
||||||
|
# Environment variables
|
||||||
cp .env.example .env
|
cp .env.example .env
|
||||||
# Edit .env and add your Discord token
|
# Edit .env and add your Discord token
|
||||||
|
|
||||||
|
# Bot configuration
|
||||||
|
cp config.example.yml config.yml
|
||||||
|
# Edit config.yml with your settings
|
||||||
```
|
```
|
||||||
|
|
||||||
3. Start with Docker Compose:
|
3. Start with Docker Compose:
|
||||||
@@ -84,10 +89,15 @@ A lightweight, cost-conscious Discord moderation bot focused on essential protec
|
|||||||
pip install -e ".[dev,ai]"
|
pip install -e ".[dev,ai]"
|
||||||
```
|
```
|
||||||
|
|
||||||
3. Set up environment variables:
|
3. Set up configuration:
|
||||||
```bash
|
```bash
|
||||||
|
# Environment variables
|
||||||
cp .env.example .env
|
cp .env.example .env
|
||||||
# Edit .env with your configuration
|
# Edit .env with your Discord token
|
||||||
|
|
||||||
|
# Bot configuration
|
||||||
|
cp config.example.yml config.yml
|
||||||
|
# Edit config.yml with your settings
|
||||||
```
|
```
|
||||||
|
|
||||||
4. Start PostgreSQL (or use Docker):
|
4. Start PostgreSQL (or use Docker):
|
||||||
|
|||||||
67
config.example.yml
Normal file
67
config.example.yml
Normal file
@@ -0,0 +1,67 @@
|
|||||||
|
# GuardDen Configuration
|
||||||
|
# Single YAML file for bot configuration
|
||||||
|
|
||||||
|
# Bot Settings
|
||||||
|
bot:
|
||||||
|
prefix: "!"
|
||||||
|
owner_ids:
|
||||||
|
# Add your Discord user ID here
|
||||||
|
# Example: - 123456789012345678
|
||||||
|
|
||||||
|
# Spam Detection (No AI cost)
|
||||||
|
automod:
|
||||||
|
enabled: true
|
||||||
|
anti_spam_enabled: true
|
||||||
|
message_rate_limit: 5 # Max messages per window
|
||||||
|
message_rate_window: 5 # Window in seconds
|
||||||
|
duplicate_threshold: 3 # Duplicate messages trigger
|
||||||
|
mention_limit: 5 # Max mentions per message
|
||||||
|
mention_rate_limit: 10 # Max mentions per window
|
||||||
|
mention_rate_window: 60 # Mention window in seconds
|
||||||
|
|
||||||
|
# AI Moderation (Images, GIFs only)
|
||||||
|
ai_moderation:
|
||||||
|
enabled: true
|
||||||
|
sensitivity: 80 # 0-100, higher = stricter
|
||||||
|
nsfw_only_filtering: true # Only filter sexual/nude content
|
||||||
|
|
||||||
|
# Cost Controls (Conservative: ~$25/month for 1-2 guilds)
|
||||||
|
max_checks_per_hour_per_guild: 25 # Very conservative limit
|
||||||
|
max_checks_per_user_per_hour: 5 # Prevent user abuse
|
||||||
|
max_images_per_message: 2 # Check max 2 images per message
|
||||||
|
max_image_size_mb: 3 # Skip images larger than 3MB
|
||||||
|
|
||||||
|
# Feature Toggles
|
||||||
|
check_embed_images: true # Check GIFs from Discord picker (enabled per user request)
|
||||||
|
check_video_thumbnails: false # Skip video thumbnails (disabled per user request)
|
||||||
|
url_image_check_enabled: false # Skip URL image downloads (disabled per user request)
|
||||||
|
|
||||||
|
# User Blocklist (No AI cost)
|
||||||
|
# Block all images, GIFs, embeds, and URLs from these users
|
||||||
|
# Add Discord user IDs here
|
||||||
|
blocked_user_ids:
|
||||||
|
# Example: - 123456789012345678
|
||||||
|
|
||||||
|
# NSFW Video Domain Blocklist (No AI cost)
|
||||||
|
# These domains are blocked instantly without AI analysis
|
||||||
|
nsfw_video_domains:
|
||||||
|
- pornhub.com
|
||||||
|
- xvideos.com
|
||||||
|
- xnxx.com
|
||||||
|
- redtube.com
|
||||||
|
- youporn.com
|
||||||
|
- tube8.com
|
||||||
|
- spankwire.com
|
||||||
|
- keezmovies.com
|
||||||
|
- extremetube.com
|
||||||
|
- pornerbros.com
|
||||||
|
- eporner.com
|
||||||
|
- tnaflix.com
|
||||||
|
- drtuber.com
|
||||||
|
- upornia.com
|
||||||
|
- perfectgirls.net
|
||||||
|
- xhamster.com
|
||||||
|
- hqporner.com
|
||||||
|
- porn.com
|
||||||
|
- sex.com
|
||||||
|
- wetpussy.com
|
||||||
@@ -22,6 +22,7 @@ services:
|
|||||||
volumes:
|
volumes:
|
||||||
- guardden_data:/app/data
|
- guardden_data:/app/data
|
||||||
- guardden_logs:/app/logs
|
- guardden_logs:/app/logs
|
||||||
|
- ./config.yml:/app/config.yml:ro
|
||||||
networks:
|
networks:
|
||||||
- guardden
|
- guardden
|
||||||
healthcheck:
|
healthcheck:
|
||||||
|
|||||||
Reference in New Issue
Block a user