Newsblur

NewsBlur is a personal news reader that brings people together to talk about the world. A new sound of an old instrument.
Alternatives To Newsblur
Project NameStarsDownloadsRepos Using ThisPackages Using ThisMost Recent CommitTotal ReleasesLatest ReleaseOpen IssuesLicenseLanguage
Mall66,557
2 days ago35apache-2.0Java
mall项目是一套电商系统,包括前台商城系统及后台管理系统,基于SpringBoot+MyBatis实现,采用Docker容器化部署。 前台商城系统包含首页门户、商品推荐、商品搜索、商品展示、购物车、订单流程、会员中心、客户服务、帮助中心等模块。 后台管理系统包含商品管理、订单管理、会员管理、促销管理、运营管理、内容管理、统计报表、财务管理、权限管理、设置等模块。
Strapi54,06122111317 hours ago281May 11, 2022381otherJavaScript
🚀 Strapi is the leading open-source headless CMS. It’s 100% JavaScript, fully customizable and developer-first.
Interview_internal_reference34,839
16 days ago30Python
2023年最新总结,阿里,腾讯,百度,美团,头条等技术面试题目,以及答案,专家出题人分析汇总。
Prisma31,73744218 hours ago4,993September 24, 20222,913apache-2.0TypeScript
Next-generation ORM for Node.js & TypeScript | PostgreSQL, MySQL, MariaDB, SQL Server, SQLite, MongoDB and CockroachDB
Mall Learning12,045
11 days ago25apache-2.0Java
mall学习教程,架构、业务、技术要点全方位解析。mall项目(50k+star)是一套电商系统,使用现阶段主流技术实现。涵盖了SpringBoot 2.3.0、MyBatis 3.4.6、Elasticsearch 7.6.2、RabbitMQ 3.7.15、Redis 5.0、MongoDB 4.2.5、Mysql5.7等技术,采用Docker容器化部署。
Migrate11,462594a day ago129March 17, 2022270otherGo
Database migrations. CLI and Golang library.
Mall Swarm9,716
5 months ago35apache-2.0Java
mall-swarm是一套微服务商城系统,采用了 Spring Cloud 2021 & Alibaba、Spring Boot 2.7、Oauth2、MyBatis、Docker、Elasticsearch、Kubernetes等核心技术,同时提供了基于Vue的管理后台方便快速搭建系统。mall-swarm在电商业务的基础集成了注册中心、配置中心、监控中心、网关等系统功能。文档齐全,附带全套Spring Cloud教程。
Coolify7,843
a day ago266apache-2.0Svelte
An open-source & self-hostable Heroku / Netlify alternative.
Blog7,403
2 days ago31gpl-2.0PLpgSQL
Everything about database,business.(Most for PostgreSQL).
Newsblur6,336
6 days ago130mitObjective-C
NewsBlur is a personal news reader that brings people together to talk about the world. A new sound of an old instrument.
Alternatives To Newsblur
Select To Compare


Alternative Project Comparisons
Readme

NewsBlur

Get it on F-Droid Get it on Google Play

Features

  1. Shows the original site (you have to see it to believe it).
  2. Hides stories you don't want to read based on tags, keywords, authors, etc.
  3. Highlights stories you want to read, based on the same criteria.

Technologies

Server-side

  • Python 3.7+: The language of choice.
  • Django: Web framework written in Python, used to serve all pages.
  • Celery & RabbitMQ: Asynchronous queueing server, used to fetch and parse RSS feeds.
  • MongoDB, Pymongo, & Mongoengine: Non-relational database, used to store stories, read stories, feed/page fetch histories, and proxied sites.
  • PostgreSQL: Relational database, used to store feeds, subscriptions, and user accounts.
  • Redis: Programmer's database, used to assemble stories for the river, store story ids, manage feed fetching schedules, and the minuscule bit of caching that NewsBlur uses.
  • Elasticsearch: Search database, use for searching stories. Optional.

Client-side and design

  • jQuery: Cross-browser compliant JavaScript code. IE works without effort.
  • Underscore.js: Functional programming for JavaScript. Indispensable.
  • Backbone.js: Framework for the web app. Also indispensable.
  • Miscellaneous jQuery Plugins: Everything from resizable layouts, to progress bars, sortables, date handling, colors, corners, JSON, animations. See the complete list.

Prerequisites

* Docker
* Docker-compose

Installation Instructions

  1. Clone this repo

  2. Run make nb to build all of the NewsBlur containers. This will set up all necessary databases, front-end django apps, celery tasks, node apps, flask database monitor and metrics, nginx, and a haproxy load balancer.

  3. Navigate to:

     https://localhost
    

    Note: You will be warned that you are using a self signed certificate. In order to get around this warning you must type "thisisunsafe" as per this blog post.

Using a custom domain

  1. Run the custom domain script

    bash ./utils/custom_domain.sh <domain name>
    

    This script will do the following:

    • Change NEWSBLUR_URL and SESSION_COOKIE_DOMAIN in newsblur_web/docker_local_settings.py
    • Change the domain in config/fixtures/bootstrap.json

You can also change domains: bash ./utils/custom_domain.sh <old domain> <new domain>

  1. If you're using a custom subdomain, you'll also want to add it to ALLOWED_SUBDOMAINS in apps/reader/views.py

  2. A way to make sure you updated all the correct places:

    • Go to the website address in your browser
    • Open developer tools and look at the network tab
    • Try to login
    • Look again at the developer tools, there should be a POST call to /login
    • Observe the Response headers for that call
    • The value of the "set-cookie" header should contain a "Domain=" string

    If the string after Domain= is not the domain you are using to access the website, then your configuration still needs your custom domain.

    You can also confirm that there is a domain name mismatch in the database by running make shell & typing Site.objects.all()[0] to show the domain that NewsBlur is expecting.

Making docker-compose work with your existing database

To make docker-compose work with your database, upgrade your local database to the docker-compose version and then volumize the database data path by changing the ./docker/volumes/ part of the volume directive in the service to point to your local database's data directory.

To make docker-compose work with an older database version, change the image version for the database service in the docker-compose file.

Contribution Instructions

  • Making Changes:

    • To apply changes to the Python or JavaScript code, use the make command.
    • To apply changes to the docker-compose.yml file, use the make rebuild command.
    • To apply changes to the docker/haproxy/haproxy.conf file, node packages, or any new database migrations you will need to use the make nb command.
  • Adding Python packages: Currently, the docker-compose.yml file uses the newsblur/newsblur_python3 image. It is built using the Dockerfile found in docker/newsblur_base_image.Dockerfile. Because of how the docker image is set up, you will need to create your own image and direct your docker-compose.yml file to use it. Please follow the following steps to do so.

    1. Add your new site-packages to config/requirements.txt.
    2. Add the following lines of code to your docker-compose.yml file to replace anywhere where it says image: newsblur/newsblur_python3
    build: context: . dockerfile: docker/newsblur_base_image.Dockerfile
    1. Run the make nb command to rebuild your docker-compose containers
  • Debugging Python

    • To debug your code, drop import pdb; pdb.set_trace() into the Python code where you would like to start debugging and run make and then make debug.
  • Using Django shell within Docker

    • Make sure your docker containers are up and run make shell to open the Django shell within the newsblur_web container.

Running unit and integration tests

NewsBlur comes complete with a test suite that tests the functionality of the rss_feeds, reader, and feed importer. To run the test suite:

`make test`

Running a performance test

Performance tests use the locust performance testing tool. To run performance tests via CLI, use make perf-cli users=1 rate=1 host=https://localhost. Feel free to change the users, rate, and host variables in the command to meet you needs.

You can also run locust performance tests using a UI by running make perf-ui and then navigating to http://127.0.0.1:8089. This allows you to chart and export your performance data.

To run locust using docker, just run make perf-docker and navigate to http://127.0.0.1:8089

Author

License

NewsBlur is licensed under the MIT License. (See LICENSE)

Popular Mongodb Projects
Popular Mysql Projects
Popular Data Storage Categories
Related Searches

Get A Weekly Email With Trending Projects For These Categories
No Spam. Unsubscribe easily at any time.
Python
Objective C
Mongodb
Mysql
Postgresql
Redis
Elasticsearch
Rss
Fabric
Rss Reader
Feed Reader