π° Newspipe
July 6, 2026 Β· View on GitHub
π° Newspipe
A self-hosted web news aggregator β own your feeds, your data, and your reading.
Built with Flask Β· asyncio Β· SQLAlchemy

β¨ Features
- π₯ Multi-user β a single Newspipe instance serves many users
- π API β manage feeds programmatically and plug in your own crawler
- π¦ Data liberation β export and import your whole account as JSON
- π OPML β import and export your feeds with OPML files
- π Search & favorites β find and bookmark the articles that matter
- π€ Inactive feed detection β keep your feed list clean
- π Bookmarks β full bookmark management, with import from Pinboard
- π Notes β write notes on articles and review them all on a dedicated page
- π Internationalization β available in English, French, and German
- π LDAP β optional LDAP authentication (see the example config)
- π Themes β light and dark interfaces out of the box
π Quick start
Assuming you already have git, poetry, npm, and Python >= 3.13 installed:
git clone https://github.com/cedricbonhomme/newspipe
cd newspipe/
npm ci
poetry install
poetry shell
pybabel compile -d newspipe/translations
export NEWSPIPE_CONFIG=sqlite.py
flask db_init
flask db stamp head
flask create_admin --nickname <nickname> --password <password>
flask run --debug
Then open http://127.0.0.1:5000 and sign in. π
π Using PostgreSQL
Customize the provided example configuration file (instance/config.py):
sudo apt-get install postgresql
cp instance/config.py instance/postgresql.py
vim instance/postgresql.py # customize it
export NEWSPIPE_CONFIG=postgresql.py
flask db_create
flask db_init
For production, serve Newspipe with Gunicorn or mod_wsgi.
π Updates and migrations
cd newspipe/
git pull origin master
poetry install
poetry run flask db upgrade
poetry run pybabel compile -d newspipe/translations
β±οΈ Retrieving feeds automatically
A dedicated Flask command runs the RSS/Atom feed importer. Schedule it with cron, for example every three hours:
0 */3 * * * poetry run flask fetch_asyncio
When using cron it is usually best to be explicit about the command location:
0 */3 * * * FLASK_APP=app.py /home/cedric/.cache/pypoetry/virtualenvs/newspipe-19mdZ4UL-py3.13/bin/flask fetch_asyncio
π License
Newspipe is released under the GNU Affero General Public License v3.
π Donations
If you enjoy Newspipe, you can support its development:
β¦or with Bitcoin: bc1q56u6sj7cvlwu58v5lemljcvkh7v2gc3tv8mj0e
Thank you! π
π¬ Contact
Made by CΓ©dric Bonhomme.