Skip to content

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.py

Creating the Dockerfile

FROM cedricbonhomme/newspipe:latest
# Environment configuration
ENV NEWSPIPE_CONFIG=/app/instance/config.py
ENV DATABASE_URL=${DATABASE_URL}
# Copy custom configuration
COPY instance/config.py /app/instance/config.py
EXPOSE 5000
CMD ["python", "runserver.py"]

Configuration File

Create instance/config.py:

import os
# Database
SQLALCHEMY_DATABASE_URI = os.environ.get('DATABASE_URL', 'postgresql://user:pass@localhost/newspipe')
SQLALCHEMY_TRACK_MODIFICATIONS = False
# Security
SECRET_KEY = os.environ.get('SECRET_KEY', 'change-this-secret-key')
WTF_CSRF_ENABLED = True
# Application
DEBUG = False
TESTING = False
CSRF_ENABLED = True
# Feed fetching
CRAWLING_METHOD = "default"
DEFAULT_MAX_ERROR = 6
FEED_REFRESH_INTERVAL = 60 # minutes
# User registration
SELF_REGISTRATION = True
# Logging
LOG_LEVEL = 'INFO'

Creating the .dockerignore File

.git
.github
*.md
LICENSE
.gitignore
.DS_Store
__pycache__/
*.pyc

Deploying Newspipe on Klutch.sh

    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:

    • Select HTTP as the traffic type
    • Set the internal port to 5000

    Set Environment Variables

    Configure the application:

    VariableValue
    DATABASE_URLpostgresql://user:pass@host/newspipe
    SECRET_KEYSecure random string

    Attach Persistent Volumes

    Configure storage:

    Mount PathRecommended SizePurpose
    /app/instance100 MBConfiguration files
    /app/logs1 GBApplication 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:

  1. Click Register or Sign Up
  2. Enter email and password
  3. Confirm your account
  4. Log in to start using Newspipe

Adding Your First Feed

Subscribe to a feed:

  1. Click “Add Feed” or similar
  2. Enter the feed URL
  3. Optionally assign to category
  4. Save subscription

Importing Subscriptions

Migrate from other readers:

  1. Go to Settings > Import
  2. Upload OPML file
  3. Review imported feeds
  4. Organize into categories

Feed Management

Creating Categories

Organize feeds:

  1. Go to Settings > Categories
  2. Create new category
  3. Name and optionally describe
  4. 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

Find specific content:

  1. Use the search bar
  2. Search across all articles
  3. Filter results by date or feed
  4. Quick navigation to results

Bookmarking

Saving Articles

Bookmark for later:

  1. Open article
  2. Click bookmark icon
  3. Article saved to bookmarks
  4. 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 feeds
GET /api/v1/articles - List articles
POST /api/v1/feeds - Add feed

Authentication

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:

  1. Regular PostgreSQL backups
  2. Export OPML for feed list
  3. Export bookmarks
  4. 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:

ReaderBest For
NewspipeSimple, Python-based
FreshRSSFull-featured, PHP
MinifluxMinimal, Go
Tiny Tiny RSSPlugin ecosystem
NewsBlurIntelligence 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.