Skip to content

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

    Create Your Dockerfile

    Create a Dockerfile in your repository:

    FROM python:3.11-alpine
    # Install dependencies
    RUN apk add --no-cache git
    # Install rss2email
    RUN pip install --no-cache-dir rss2email
    # Create configuration directory
    RUN mkdir -p /root/.config/rss2email
    WORKDIR /app
    # Copy configuration if present
    COPY config.py /root/.config/rss2email/config.py 2>/dev/null || true
    COPY feeds.txt /app/feeds.txt 2>/dev/null || true
    # Create entrypoint script
    RUN 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.com
    to = your-email@example.com
    # SMTP settings
    smtp-server = smtp.example.com
    smtp-port = 587
    smtp-auth = True
    smtp-username = your-username
    smtp-password = your-password
    smtp-ssl = False
    smtp-starttls = True
    # Email format
    email-protocol = smtp
    html-mail = True

    Push 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:

    • Select HTTP as the traffic type
    • Set the internal port to 8080 (placeholder)

    Set Environment Variables

    Configure the following environment variables:

    VariableValue
    SMTP_HOSTYour SMTP server
    SMTP_PORT587
    SMTP_USERYour SMTP username
    SMTP_PASSWORDYour SMTP password
    EMAIL_TOYour destination email

    Attach Persistent Volumes

    Add persistent storage:

    Mount PathRecommended SizePurpose
    /root/.config/rss2email1 GBConfiguration and feed state
    /root/.local/share/rss2email1 GBFeed 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:

Terminal window
r2e add "Feed Name" https://example.com/feed.rss

Listing Feeds

Terminal window
r2e list

Removing Feeds

Terminal window
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.