Deploying Readflow
Introduction
Readflow is a powerful, self-hosted news reader that goes beyond simple RSS aggregation. With built-in workflow automation, you can filter, categorize, and route articles to various destinations including Pocket, Wallabag, and Kindle, making it a central hub for your reading workflow.
Key features of Readflow include:
- Feed Aggregation: Subscribe to RSS and Atom feeds
- Workflow Rules: Automate content processing with rules
- Multiple Outputs: Send articles to Pocket, Wallabag, Kindle, and more
- Categories: Organize feeds and articles
- Full-Text Fetching: Retrieve complete article content
- Webhook Support: Integrate with external services
- GraphQL API: Powerful API for custom integrations
- Progressive Web App: Install on mobile devices
- Offline Support: Read articles without internet
- Lightweight: Go-based with minimal resources
This guide walks through deploying Readflow on Klutch.sh using Docker and setting up your news reading workflow.
Prerequisites
Before deploying Readflow on Klutch.sh, ensure you have:
- A Klutch.sh account
- A GitHub account with a repository for your Readflow configuration
- A PostgreSQL database
- Basic familiarity with Docker and RSS concepts
Deploying Readflow on Klutch.sh
- Select HTTP as the traffic type
- Set the internal port to 8080
Create Your Dockerfile
Create a Dockerfile in your repository:
FROM ncarlier/readflow:latest
# Environment configurationENV READFLOW_SERVER_LISTEN_ADDR=:8080ENV READFLOW_DATABASE_URI=${DATABASE_URI}
# Expose the web interfaceEXPOSE 8080Push Your Repository to GitHub
Commit and push your Dockerfile to your GitHub repository.
Create a New Project on Klutch.sh
Navigate to the Klutch.sh dashboard and create a new project named “readflow”.
Create a New App
Create a new app within your project and connect your GitHub repository.
Configure HTTP Traffic
In the deployment settings:
Set Environment Variables
Configure the following environment variables:
| Variable | Value |
|---|---|
READFLOW_SERVER_LISTEN_ADDR | :8080 |
READFLOW_DATABASE_URI | postgres://user:password@host:5432/readflow |
READFLOW_SECRET_KEY | A secure random string |
READFLOW_HASH_KEY | A 32-byte hex string for hashing |
READFLOW_BLOCK_KEY | A 32-byte hex string for encryption |
Attach Persistent Volumes
Add persistent storage:
| Mount Path | Recommended Size | Purpose |
|---|---|---|
/data | 5 GB | Article cache and temporary files |
Deploy Your Application
Click Deploy to build and start your Readflow instance.
Access Readflow
Once deployment completes, access your Readflow instance at https://your-app-name.klutch.sh.
Setting Up Workflows
Creating Categories
- Navigate to Settings > Categories
- Create categories like “Tech”, “News”, “Must Read”
- Assign feeds to categories
Adding Rules
Rules automate article processing:
- Go to Settings > Rules
- Create a new rule with conditions (title contains, source is, etc.)
- Define actions (categorize, send to service, mark as read)
Example rules:
- Articles containing “important” -> Move to “Must Read”
- Articles from specific source -> Send to Pocket
- Long-form articles -> Send to Kindle
Output Services
Configure destinations for your articles:
- Pocket: Save for offline reading
- Wallabag: Self-hosted read-it-later
- Kindle: Send directly to your e-reader
- Webhook: Custom HTTP endpoints
Additional Resources
Conclusion
Deploying Readflow on Klutch.sh provides a powerful news reader with workflow automation, automatic builds, persistent storage, and secure HTTPS access. Aggregate your feeds, filter content automatically, and route articles to your preferred reading destinations.