NewsBlur is a personal news reader with intelligence. Self-host your own instance with Docker.
500K+
A personal news reader bringing people together to talk about the world. A new sound of an old instrument.

NewsBlur is a personal news reader with intelligence. It's an RSS feed reader and social news network that shows the original site while giving you powerful filtering tools. Train NewsBlur to learn what you like and dislike, and it will automatically highlight and hide stories.
NewsBlur is free to use at newsblur.com (up to 64 sites) with premium plans available, or you can self-host your own instance using this repository.
NewsBlur is a Django application (Python 3.7+) with a Backbone.js frontend. It uses:
This repository contains everything you need to run your own NewsBlur instance with complete control over your data.
Prerequisites: Docker and Docker Compose
git clone https://github.com/samuelclay/NewsBlur.git
cd NewsBlur
make
Visit https://localhost (type thisisunsafe to bypass the self-signed certificate warning).
Common commands:
make - Start/update and apply migrations (run after git pull)make log - View web and node logsmake logall - View all container logsmake shell - Django shell with auto-imported modelsmake bash - Bash shell in web containermake test - Run testsmake lint - Format code (isort, black, flake8)make down - Stop containersDatabase access:
make mongo - MongoDB shellmake redis - Redis CLImake postgres - PostgreSQL shellSee AGENTS.md for detailed development guidelines.
To customize your NewsBlur installation, create newsblur_web/local_settings.py to override settings from docker_local_settings.py.
Settings for self-hosted installations:
NEWSBLUR_URL - Your domain (default: https://localhost). Also used for Archive browser extension OAuth.SESSION_COOKIE_DOMAIN - Cookie domain for authenticationAUTO_PREMIUM - Give new users premium features (default: True)AUTO_ENABLE_NEW_USERS - Auto-activate new accounts (default: True)ENFORCE_SIGNUP_CAPTCHA - Require captcha on signup (default: False)OPENAI_API_KEY - AI features and Discover for related storiesDAYS_OF_UNREAD - Story retention for premium users in days (default: 30)DAYS_OF_UNREAD_FREE - Story retention for free users in days (default: 14)HOMEPAGE_USERNAME - Username shown on homepage to unauthenticated users (default: "popular")Uncommon settings (for running full newsblur.com):
EMAIL_BACKEND - Email delivery methodSTRIPE_SECRET / STRIPE_PUBLISHABLE - Stripe payment processingPAYPAL_API_CLIENTID / PAYPAL_API_SECRET - PayPal payment processingS3_* settings - AWS S3 bucket configuration for backups, icons, avatarsFACEBOOK_APP_ID / TWITTER_CONSUMER_KEY / YOUTUBE_API_KEY - Social API keysSee the full list in docker_local_settings.py and settings.py.
NewsBlur supports Git worktrees for working on multiple features simultaneously, with each worktree running on its own set of ports. This is ideal when working with AI coding assistants like Claude Code.
Create and start a worktree:
git worktree add .worktree/feature-name
cd .worktree/feature-name
make worktree
Each worktree automatically gets unique ports based on its directory name:
https://localhost (ports 80/443)https://localhost:XXXX (unique ports)View your worktree's URLs:
make worktree
Follow the worktree logs:
make worktree-log
Close a worktree:
make worktree-close # Stops containers and removes worktree if no uncommitted changes
All worktrees share the same database services (PostgreSQL, MongoDB, Redis, Elasticsearch), so you can test multiple features without duplicating data.
NewsBlur welcomes contributions! The development workflow:
make after git pull to apply migrationsAGENTS.md for code style and development conventionsAGENTS.md firstCreated by Samuel Clay • [email protected] • @samuelclay
MIT License - see LICENSE file for details
Content type
Image
Digest
sha256:33a578507…
Size
614.6 MB
Last updated
5 days ago
docker pull newsblur/newsblur_python3