Discord RSS Bot
Automated bot that monitors RSS feeds and posts updates to Discord channels via webhook. Fully configurable with custom feeds and categories. Features timeout handling to prevent hanging on slow RSS feeds.

About Discord RSS Bot
Discord RSS Bot is an automated bot that monitors RSS feeds and posts updates to Discord channels via webhook. Fully configurable with custom feeds and categories, it features timeout handling to prevent hanging on slow RSS feeds.
Key Features
- Automatic RSS monitoring with configurable intervals
- Elegant Discord formatting with category emojis
- Smart caching to prevent duplicate posts
- Timeout handling prevents hanging on slow feeds
- Robust error handling for network issues
- Fully containerized with Docker support
- Pre-built images available on Docker Hub & GHCR
- Multi-platform (AMD64, ARM64)
- Flexible configuration - universal or category-based feeds
- Multiple deployment options (Docker, System Service)
- Comprehensive logging and health checks
- Security-focused with non-root containers
Quick Start
Using Pre-built Container (Recommended)
Container Images
Pre-built images are available from multiple registries:
- Docker Hub:
isyuricunha/discord-news-rss-bot:latest|isyuricunha/discord-news-rss-bot:2.0.8 - GitHub Container Registry:
ghcr.io/isyuricunha/discord-news-rss-bot:latest|ghcr.io/isyuricunha/discord-news-rss-bot:2.0.8
Supported Architectures
linux/amd64(x86_64)linux/arm64(ARM64/AArch64)
Automatic Versioning
The project uses automated CI/CD that:
- Auto-creates Git tags on every push to
main(e.g.,v2.0.8) - Creates a GitHub Release for each tag
- Uses the triggering commit message as the release title and body
- Publishes to both registries simultaneously
- Maintains version consistency across Docker Hub and GHCR
- Updates both
latestand specific version tags
Deployment Options
1. Standard Docker Compose (with .env file)
2. Inline Environment Variables
3. Pre-built Image (from .env file)
4. Testing with All Default Feeds
System Service Installation
For production deployments, you can install the bot as a system service:
Debian/Ubuntu
Fedora/RHEL/CentOS
Alpine Linux
Windows
Configuration
Required Variables
| Variable | Description |
|---|---|
DISCORD_WEBHOOK_URL | Required: Discord webhook URL |
Paths (recommended)
| Variable | Default (Docker image) | Description |
|---|---|---|
RSS_BOT_DATA | /app/data | Directory where the SQLite database is stored |
RSS_BOT_LOGS | /app/logs | Directory where log files are written |
RSS_BOT_PID | /tmp/discord-news-rss-bot.pid | PID file path (avoid /var/run in non-root containers) |
Advanced overrides (optional)
| Variable | Description |
|---|---|
DB_FILE | Explicit SQLite DB file path (overrides RSS_BOT_DATA) |
LOG_FILE | Explicit log file path (overrides RSS_BOT_LOGS) |
DATA_DIR | Legacy alias for RSS_BOT_DATA |
Optional Bot Settings
| Variable | Default | Description |
|---|---|---|
CHECK_INTERVAL | 300 | Interval between checks (seconds) |
POST_DELAY | 3 | Delay between posts (seconds) |
COOLDOWN_DELAY | 60 | Delay after rate limit (seconds) |
MAX_POST_LENGTH | 1900 | Maximum message length |
MAX_CONTENT_LENGTH | 800 | Maximum content length |
FEED_TIMEOUT | 30 | RSS feed request timeout (seconds) |
RSS Feeds Configuration
The bot supports two configuration methods with automatic priority handling:
Option 1: Universal Feeds (Simple)
Use a single variable for all your RSS feeds:
Option 2: Category-Based Feeds (Organized)
Use separate variables for different categories:
Priority System
- RSS_FEEDS (universal) - takes priority if set
- RSS_FEEDS_CATEGORY (categories) - used if no universal feeds
- Default feeds - Brazilian news feeds if no custom configuration
Automatic Category Emojis
- News/Noticias/General โ ๐ฐ
- Technology/Tecnologia โ ๐ป
- Politics/Politica โ ๐๏ธ
- Sports/Esportes โ โฝ
- Business/Economia โ ๐ผ
- Other categories โ ๐ข
Monitored Feeds
๐ฐ General News
- G1
- UOL
- Band
- CNN Brasil
- Folha de S.Paulo
๐๏ธ Politics & Conservative
- Gazeta do Povo
- Jovem Pan
- Diรกrio do Poder
- Pragmatismo Polรญtico
- Conexรฃo Polรญtica
- Poder 360
- Revista Crusoรฉ
- Veja
- Metrรณpoles
- O Antagonista
- Terra Politics
๐ป Technology
- Canaltech
- Olhar Digital
- Tecnoblog
- Meio Bit
- ShowMeTech
- TecMundo
- Adrenaline
- Hardware.com.br
- Tudo Celular
- Oficina da Net
Development
Run Locally (without Docker)
Customize Feeds
You can customize feeds in two ways:
-
Environment Variables (Recommended) Use the
RSS_FEEDS_CATEGORY_NAMEformat as described in the Configuration section above. -
Code Modification Edit the
parse_feeds_from_env()function inbot_service.pyto modify default feeds.
Technology Stack
- Python for the main bot logic
- Discord webhooks for posting updates
- Docker for containerization and deployment
- SQLite for data persistence and caching
- RSS parsing for feed monitoring
- Systemd for Linux service management
Discord RSS Bot is a complete solution for automatically posting RSS feed updates to Discord channels, with robust error handling, flexible configuration, and multiple deployment options.