Deploying Newspipe
Introduction
Newspipe is a web-based news aggregator and feed reader that helps you stay informed by collecting content from your favorite RSS and Atom feeds. Built with Python and Flask, Newspipe provides a clean, modern interface for reading news with features like categorization, full-text search, and bookmarking.
Focusing on simplicity and ease of use, Newspipe offers essential feed reading functionality without unnecessary complexity. It’s perfect for users who want a straightforward way to follow blogs, news sites, and other RSS sources without the overhead of more complex solutions.
Key highlights of Newspipe:
- Clean Interface: Modern, responsive design that works on all devices
- Feed Management: Organize feeds into categories
- Full-Text Search: Find articles across all your subscriptions
- Bookmarking: Save articles for later reading
- OPML Support: Import and export your feed subscriptions
- Multi-User: Support for multiple user accounts
- REST API: Programmatic access to your feeds and articles
- Python/Flask: Easy to extend and customize
- PostgreSQL: Reliable database backend
This guide walks through deploying Newspipe on Klutch.sh using Docker.
Why Deploy Newspipe on Klutch.sh
Deploying Newspipe on Klutch.sh provides several benefits:
Simplified Feed Reading: A focused reader without feature bloat.
Always Available: Access your feeds from anywhere, anytime.
Data Privacy: Your reading habits and subscriptions stay on your infrastructure.
Simplified Deployment: Push to GitHub and Klutch.sh handles the rest.
HTTPS by Default: Secure access with automatic SSL certificates.
Persistent Storage: Subscriptions and articles persist across restarts.
Prerequisites
Before deploying Newspipe on Klutch.sh, ensure you have:
- A Klutch.sh account
- A GitHub account with a repository for your configuration
- A PostgreSQL database
- Basic familiarity with Docker and Python applications
Understanding Newspipe Architecture
Newspipe has a straightforward architecture:
Flask Application: Main web application handling user interface and API.
PostgreSQL Database: Stores users, feeds, articles, and settings.
Feed Fetcher: Background process that periodically fetches feed updates.
Celery Workers: Handle asynchronous tasks like feed fetching.
Redis: Optional, for Celery task queue.
Preparing Your Repository
Create a GitHub repository for your Newspipe deployment.
Repository Structure
newspipe-deploy/├── Dockerfile├── .dockerignore└── instance/ └── config.pyCreating the Dockerfile
FROM cedricbonhomme/newspipe:latest
# Environment configurationENV NEWSPIPE_CONFIG=/app/instance/config.pyENV DATABASE_URL=${DATABASE_URL}
# Copy custom configurationCOPY instance/config.py /app/instance/config.py
EXPOSE 5000
CMD ["python", "runserver.py"]Configuration File
Create instance/config.py:
import os
# DatabaseSQLALCHEMY_DATABASE_URI = os.environ.get('DATABASE_URL', 'postgresql://user:pass@localhost/newspipe')SQLALCHEMY_TRACK_MODIFICATIONS = False
# SecuritySECRET_KEY = os.environ.get('SECRET_KEY', 'change-this-secret-key')WTF_CSRF_ENABLED = True
# ApplicationDEBUG = FalseTESTING = FalseCSRF_ENABLED = True
# Feed fetchingCRAWLING_METHOD = "default"DEFAULT_MAX_ERROR = 6FEED_REFRESH_INTERVAL = 60 # minutes
# User registrationSELF_REGISTRATION = True
# LoggingLOG_LEVEL = 'INFO'Creating the .dockerignore File
.git.github*.mdLICENSE.gitignore.DS_Store__pycache__/*.pycDeploying Newspipe on Klutch.sh
- Select HTTP as the traffic type
- Set the internal port to 5000
Set Up PostgreSQL
Ensure you have a PostgreSQL database available for Newspipe.
Push Your Repository to GitHub
Initialize and push your repository with the Dockerfile and configuration.
Create a New Project on Klutch.sh
Navigate to the Klutch.sh dashboard and create a project named “newspipe” or “news-reader”.
Create a New App
Create a new app and connect your GitHub repository.
Configure HTTP Traffic
Newspipe serves its web interface over HTTP:
Set Environment Variables
Configure the application:
| Variable | Value |
|---|---|
DATABASE_URL | postgresql://user:pass@host/newspipe |
SECRET_KEY | Secure random string |
Attach Persistent Volumes
Configure storage:
| Mount Path | Recommended Size | Purpose |
|---|---|---|
/app/instance | 100 MB | Configuration files |
/app/logs | 1 GB | Application logs |
Deploy Your Application
Click Deploy to build and start your Newspipe instance.
Initialize Database
After first deployment, initialize the database schema.
Access Newspipe
Visit https://your-app-name.klutch.sh to access your feed reader.
Initial Setup
Creating Your Account
On first access:
- Click Register or Sign Up
- Enter email and password
- Confirm your account
- Log in to start using Newspipe
Adding Your First Feed
Subscribe to a feed:
- Click “Add Feed” or similar
- Enter the feed URL
- Optionally assign to category
- Save subscription
Importing Subscriptions
Migrate from other readers:
- Go to Settings > Import
- Upload OPML file
- Review imported feeds
- Organize into categories
Feed Management
Creating Categories
Organize feeds:
- Go to Settings > Categories
- Create new category
- Name and optionally describe
- Assign feeds to categories
Feed Settings
Configure individual feeds:
- Custom title
- Category assignment
- Fetch frequency
- Enable/disable
Bulk Operations
Manage multiple feeds:
- Select multiple feeds
- Assign to category
- Delete selected
- Mark all as read
Reading Articles
Article List
Browse your articles:
- Chronological list view
- Filter by category
- Filter by feed
- Unread only filter
Reading View
Read articles:
- Clean article display
- Original link access
- Bookmark for later
- Mark as read/unread
Search
Find specific content:
- Use the search bar
- Search across all articles
- Filter results by date or feed
- Quick navigation to results
Bookmarking
Saving Articles
Bookmark for later:
- Open article
- Click bookmark icon
- Article saved to bookmarks
- Access via Bookmarks section
Managing Bookmarks
Organize saved articles:
- View all bookmarks
- Remove bookmarks
- Search bookmarks
- Export bookmarks
API Access
REST API
Programmatic access:
GET /api/v1/feeds - List feedsGET /api/v1/articles - List articlesPOST /api/v1/feeds - Add feedAuthentication
API authentication:
- Token-based auth
- Generate API key in settings
- Include in request headers
Use Cases
API applications:
- Mobile apps
- Desktop notifications
- Integration with other tools
- Custom clients
Multi-User Features
User Accounts
Multiple users supported:
- Independent subscriptions
- Separate read states
- Individual settings
- Personal bookmarks
Registration Settings
Control user registration:
- Enable/disable self-registration
- Require email confirmation
- Admin approval option
Production Best Practices
Security
Secure your installation:
- Use strong SECRET_KEY
- Keep dependencies updated
- Enable CSRF protection
- Use HTTPS (automatic on Klutch.sh)
Performance
Optimize performance:
- Configure appropriate fetch intervals
- Index database for search
- Monitor database size
- Archive old articles
Backup Strategy
Protect your data:
- Regular PostgreSQL backups
- Export OPML for feed list
- Export bookmarks
- Test restore procedures
Troubleshooting
Feeds Not Updating
- Check feed URL is valid
- Verify feed fetcher is running
- Check for HTTP errors
- Review fetch logs
Database Errors
- Verify PostgreSQL connection
- Check credentials
- Run migrations if needed
- Check available disk space
Login Issues
- Verify account exists
- Check password
- Clear session cookies
- Review authentication logs
Slow Performance
- Optimize PostgreSQL queries
- Check article retention settings
- Index search tables
- Increase resources if needed
Alternative Feed Readers
Consider based on needs:
| Reader | Best For |
|---|---|
| Newspipe | Simple, Python-based |
| FreshRSS | Full-featured, PHP |
| Miniflux | Minimal, Go |
| Tiny Tiny RSS | Plugin ecosystem |
| NewsBlur | Intelligence training |
Additional Resources
Conclusion
Deploying Newspipe on Klutch.sh gives you a clean, functional feed reader without unnecessary complexity. The Python/Flask foundation makes it easy to understand and customize, while the PostgreSQL backend provides reliable storage for your articles.
Whether you’re following a handful of blogs or managing a larger collection of feeds, Newspipe on Klutch.sh provides a straightforward, privacy-respecting way to stay informed on your own terms.