Deploying RSS2Email
Introduction
RSS2Email is a simple yet powerful tool that monitors RSS and Atom feeds and sends new entries directly to your email inbox. Instead of checking multiple websites or using a separate feed reader, you receive updates as emails that integrate with your existing workflow.
Key features of RSS2Email include:
- Feed to Email: Convert RSS/Atom feeds to email messages
- Multiple Feeds: Subscribe to unlimited feeds
- HTML or Text: Receive emails in HTML or plain text format
- Email Filtering: Use your email client’s filters to organize feeds
- SMTP Support: Send through any SMTP server
- Configurable Scheduling: Set update frequency per feed
- OPML Import: Import feeds from other RSS readers
- Lightweight: Minimal resource requirements
- Python-Based: Easy to customize and extend
This guide walks through deploying RSS2Email on Klutch.sh using Docker and configuring email delivery for your feeds.
Prerequisites
Before deploying RSS2Email on Klutch.sh, ensure you have:
- A Klutch.sh account
- A GitHub account with a repository for your RSS2Email configuration
- SMTP credentials for sending emails
- Basic familiarity with Docker and RSS concepts
Deploying RSS2Email on Klutch.sh
- Select HTTP as the traffic type
- Set the internal port to 8080 (placeholder)
Create Your Dockerfile
Create a Dockerfile in your repository:
FROM python:3.11-alpine
# Install dependenciesRUN apk add --no-cache git
# Install rss2emailRUN pip install --no-cache-dir rss2email
# Create configuration directoryRUN mkdir -p /root/.config/rss2email
WORKDIR /app
# Copy configuration if presentCOPY config.py /root/.config/rss2email/config.py 2>/dev/null || trueCOPY feeds.txt /app/feeds.txt 2>/dev/null || true
# Create entrypoint scriptRUN echo '#!/bin/sh' > /entrypoint.sh && \ echo 'while true; do' >> /entrypoint.sh && \ echo ' r2e run --no-send || r2e run' >> /entrypoint.sh && \ echo ' sleep 3600' >> /entrypoint.sh && \ echo 'done' >> /entrypoint.sh && \ chmod +x /entrypoint.sh
ENTRYPOINT ["/entrypoint.sh"]Create Configuration File
Create a config.py for RSS2Email settings:
# RSS2Email configuration
# Email settings[DEFAULT]from = rss2email@yourdomain.comto = your-email@example.com
# SMTP settingssmtp-server = smtp.example.comsmtp-port = 587smtp-auth = Truesmtp-username = your-usernamesmtp-password = your-passwordsmtp-ssl = Falsesmtp-starttls = True
# Email formatemail-protocol = smtphtml-mail = TruePush Your Repository to GitHub
Commit and push your files to your GitHub repository.
Create a New Project on Klutch.sh
Navigate to the Klutch.sh dashboard and create a new project named “rss2email”.
Create a New App
Create a new app within your project and connect your GitHub repository.
Configure HTTP Traffic
RSS2Email doesn’t require HTTP access, but you can configure it as a background worker:
Set Environment Variables
Configure the following environment variables:
| Variable | Value |
|---|---|
SMTP_HOST | Your SMTP server |
SMTP_PORT | 587 |
SMTP_USER | Your SMTP username |
SMTP_PASSWORD | Your SMTP password |
EMAIL_TO | Your destination email |
Attach Persistent Volumes
Add persistent storage:
| Mount Path | Recommended Size | Purpose |
|---|---|---|
/root/.config/rss2email | 1 GB | Configuration and feed state |
/root/.local/share/rss2email | 1 GB | Feed database |
Deploy Your Application
Click Deploy to build and start your RSS2Email instance.
Managing Feeds
Adding Feeds
Connect to your running container and use the r2e command:
r2e add "Feed Name" https://example.com/feed.rssListing Feeds
r2e listRemoving Feeds
r2e delete "Feed Name"Additional Resources
Conclusion
Deploying RSS2Email on Klutch.sh provides a simple way to receive RSS feed updates directly in your email inbox. Integrate content consumption with your existing email workflow and never miss updates from your favorite sources.