base on A nice place to read on the web. Feedbin
=======
Feedbin is a simple, fast and nice looking RSS reader.
![Feedbin Screenshot](https://user-images.githubusercontent.com/133809/192301669-ffc7f86e-ad0a-434d-9b76-219f41b62f4b.png)
Support
-------
Support is available to Feedbin customers by emailing [
[email protected]](mailto:
[email protected]). This is also the best way to [submit feature requests](https://feedbin.com/help/making-a-feature-request/).
No support is provided for installing the open-source project.
Introduction
------------
Feedbin is a web based RSS reader. It provides a user interface for reading and managing feeds as well as a [REST-like API](https://github.com/feedbin/feedbin-api) for clients to connect to.
Feedbin's goal is to be a great web-based RSS service. This goal is at odds with being a great self-hosted RSS reader. There are a lot of moving parts and things to configure, and for that reason I do not recommend that you run Feedbin in production unless you have plenty of time to get it properly configured.
If you're looking for a self-hosted RSS reader check out:
- [yarr](https://github.com/nkanaev/yarr)
- [Tiny Tiny RSS](https://tt-rss.org)
- [Fresh RSS](https://freshrss.org)
And if you really want to run the whole Feedbin stack, take a look at this [Docker version](https://github.com/angristan/feedbin-docker). If you would like to try Feedbin out you can [sign up](https://feedbin.com/) for an account.
The main Feedbin project is a [Ruby on Rails](https://rubyonrails.org/) application. In addition to the main project there are several other services that provide additional functionality. None of these services are required to get Feedbin running locally.
**Optional Extras**
- [**Privacy Please:**](https://github.com/feedbin/privacy-please)
Privacy Please is an https image proxy. In production Feedbin is https only. One issue with https is all assets must be served over https as well or the browser will show insecure content warnings. Privacy Please proxies all image requests through an https enabled host to prevent this. Using a proxy has the added benefit of providing privacy while using Feedbin.
- [**extract:**](https://github.com/feedbin/extract)
Extract is a Node.js service that extract content from web pages. It is used to extract the full content of an article when a feed only provide excerpts.
- [**pigo:**](https://github.com/esimov/pigo/releases)
pigo provides face detection for better [preview image cropping](https://feedbin.com/blog/2015/10/22/image-previews/). Make sure it's available in your PATH or provide a PIGO_PATH environment variable.
Requirements
------------
- Linux or macOS
- [Ruby 3.3](http://www.ruby-lang.org/en/)
- [Postgres 11](http://www.postgresql.org/)
- [Redis 6](http://redis.io/)
- [Elasticsearch 8.5](https://www.elastic.co/downloads/past-releases/#elasticsearch)
Installation
-------------
Ultimately, you'll need a Ruby environment and a Rack compatible application server.
First, install the dependencies listed under requirements.
Next clone the repository and install the application dependencies
git clone https://github.com/feedbin/feedbin.git
cd feedbin
bundle
If you encounter any errors after running `bundle` there is a problem installing one of the dependencies. You must find out how to get this dependency installed on your platform.
**Configure**
Feedbin uses environment variables for configuration. Feedbin will run without most of these, but various features and functionality will be turned off.
Rename [.env.example](.env.example) to `.env` and customize it with your settings.
**Setup the database**
rake db:setup
**Start the processes**
bundle exec foreman start
", Assign "at most 3 tags" to the expected json: {"id":"5117","tags":[]} "only from the tags list I provide: [{"id":77,"name":"3d"},{"id":89,"name":"agent"},{"id":17,"name":"ai"},{"id":54,"name":"algorithm"},{"id":24,"name":"api"},{"id":44,"name":"authentication"},{"id":3,"name":"aws"},{"id":27,"name":"backend"},{"id":60,"name":"benchmark"},{"id":72,"name":"best-practices"},{"id":39,"name":"bitcoin"},{"id":37,"name":"blockchain"},{"id":1,"name":"blog"},{"id":45,"name":"bundler"},{"id":58,"name":"cache"},{"id":21,"name":"chat"},{"id":49,"name":"cicd"},{"id":4,"name":"cli"},{"id":64,"name":"cloud-native"},{"id":48,"name":"cms"},{"id":61,"name":"compiler"},{"id":68,"name":"containerization"},{"id":92,"name":"crm"},{"id":34,"name":"data"},{"id":47,"name":"database"},{"id":8,"name":"declarative-gui "},{"id":9,"name":"deploy-tool"},{"id":53,"name":"desktop-app"},{"id":6,"name":"dev-exp-lib"},{"id":59,"name":"dev-tool"},{"id":13,"name":"ecommerce"},{"id":26,"name":"editor"},{"id":66,"name":"emulator"},{"id":62,"name":"filesystem"},{"id":80,"name":"finance"},{"id":15,"name":"firmware"},{"id":73,"name":"for-fun"},{"id":2,"name":"framework"},{"id":11,"name":"frontend"},{"id":22,"name":"game"},{"id":81,"name":"game-engine "},{"id":23,"name":"graphql"},{"id":84,"name":"gui"},{"id":91,"name":"http"},{"id":5,"name":"http-client"},{"id":51,"name":"iac"},{"id":30,"name":"ide"},{"id":78,"name":"iot"},{"id":40,"name":"json"},{"id":83,"name":"julian"},{"id":38,"name":"k8s"},{"id":31,"name":"language"},{"id":10,"name":"learning-resource"},{"id":33,"name":"lib"},{"id":41,"name":"linter"},{"id":28,"name":"lms"},{"id":16,"name":"logging"},{"id":76,"name":"low-code"},{"id":90,"name":"message-queue"},{"id":42,"name":"mobile-app"},{"id":18,"name":"monitoring"},{"id":36,"name":"networking"},{"id":7,"name":"node-version"},{"id":55,"name":"nosql"},{"id":57,"name":"observability"},{"id":46,"name":"orm"},{"id":52,"name":"os"},{"id":14,"name":"parser"},{"id":74,"name":"react"},{"id":82,"name":"real-time"},{"id":56,"name":"robot"},{"id":65,"name":"runtime"},{"id":32,"name":"sdk"},{"id":71,"name":"search"},{"id":63,"name":"secrets"},{"id":25,"name":"security"},{"id":85,"name":"server"},{"id":86,"name":"serverless"},{"id":70,"name":"storage"},{"id":75,"name":"system-design"},{"id":79,"name":"terminal"},{"id":29,"name":"testing"},{"id":12,"name":"ui"},{"id":50,"name":"ux"},{"id":88,"name":"video"},{"id":20,"name":"web-app"},{"id":35,"name":"web-server"},{"id":43,"name":"webassembly"},{"id":69,"name":"workflow"},{"id":87,"name":"yaml"}]" returns me the "expected json"