• Stars
    star
    213
  • Rank 178,801 (Top 4 %)
  • Language
    Dockerfile
  • License
    MIT License
  • Created about 4 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Self-host your own Feedbin RSS reader in Docker

Feedbin in Docker

Self-host Feedbin with Docker. Feedbin is a web based RSS reader. It's an open-source Ruby on Rails software.

Feedbin's main goal is not to be easily self-hostable, and it was quite hard getting all of the services to work. During the process of creating feedbin-docker, I made a few contributions to the upstream project to make it self-hostable ready. Other have taken other approaches by forking it, but all the projects I found on GitHub were abandonned and weren't working anymore.

I chose to run it in Docker because of all the services required to run Feedbin.

Here is a breakdown of all the containers:

  • web: the puma rails app
  • workers: some of the sidekiq workers for background processing
  • refresher: sidekiq worker for refreshing feeds
  • image: sidekiq worker to find thumbnails
  • extract: nodejs service to extract article content from full web pages
  • camo: a node reverse proxy to prevent mixed content
  • minio: object storage for images, favicons, imports
  • redis: cache, store sidekiq queues and stats
  • memcached: cache
  • postgresql: database
  • elasticsearch: full text search
  • caddy: https-enabled reverse proxy

As you can see it's a lot. Technically, you can give up on a few of them without breaking Feedbin:

  • image: you won't have thumbnails, which is not that important depending on your appearance settings.
  • camo: your browser will make the requests directly to the websites. Less privacy and risk or mixed content.
  • elasticsearch: you won't have full text search

You can also replace caddy with another reverse proxy, but caddy is really handy.

Setup

I recommend a server with more than 2 GB of RAM. Otherwise you will likely have OOM kills.

Clone the repo:

git clone https://github.com/angristan/feedbin-docker.git
  • Copy .env.example to .env and fill ALL the variables
  • Copy docker-compose-example.yml to docker-compose.yml. If you want to disable a service this is the place.
  • Copy caddy/example.Caddyfile to caddy/Caddyfile and update the configuration if you need.

Run the database migrations:

docker-compose run --rm feedbin-web rake db:setup

Launch everything:

docker-compose up -d

You can check if everything is going well with docker-compose logs -f or docker-compose ps.

Now go to feedbin.domain.tld and create a new account. You're set!

You can make yourself an admin to manage users and to view the Sidekiq web interface.

To do so, run:

docker-compose exec feedbin-web rake feedbin:make_admin[[email protected]]

Once you're done, you can prevent new users from registering by modifying Caddy config and uncommenting the respond directive for /signup and /users routes.

More Repositories

1

openvpn-install

Set up your own OpenVPN server on Debian, Ubuntu, Fedora, CentOS or Arch Linux.
Shell
10,394
star
2

wireguard-install

WireGuard VPN installer for Linux servers
Shell
5,660
star
3

nginx-autoinstall

Compile NGINX from source with custom modules and patches on Debian and Ubuntu
Shell
605
star
4

docker-pleroma

Docker image for the Pleroma federated social network
Elixir
328
star
5

awesome-stars

A curated list of my GitHub stars!
150
star
6

arch-linux-install

My Arch Linux installation notes
86
star
7

local-dns-resolver

Script to install a local Unbound DNS resolver on your Linux machine with DNSSEC support
Shell
77
star
8

ansible-roles

My Ansible roles for Debian/Ubuntu
67
star
9

awesome-lxc-lxd

A curated list of awesome LXC and LXD tools, libraries and related projects.
43
star
10

Casper-XYZ

Custom Ghost theme for my blog, based on Casper
CSS
37
star
11

ansible-restic

Ansible role for restic
Jinja
31
star
12

palette

Extract color palette from an image with k-means and k-NN // Project for the AI/ML class at Hanyang University
Python
28
star
13

firstfm-ios

The alternative last.fm client for iOS made with SwiftUI
Swift
26
star
14

gitlab-repo-dl

Mass repositories downloader for GitLab
Shell
25
star
15

ansible-wireguard

Ansible role for Wireguard - setup a mesh private network for your servers
Jinja
22
star
16

php-xdebug-docker

Debug PHP with Xdebug inside Docker. Tested with PhpStorm and VS Code.
Dockerfile
21
star
17

back-to-the-future

🚀 No more empty squares on your GitHub profile.
Shell
19
star
18

nixos-config

My NixOS configuration files
Nix
16
star
19

node-chat-app

A simple node chat app to train with socket.io
JavaScript
16
star
20

larafeed

Feed reader for the web, built with Laravel and Vue
PHP
14
star
21

docker-diaspora

A Docker image for the Diaspora* federated social network
Dockerfile
14
star
22

dockerfiles

Dockerfiles 🐋
Dockerfile
13
star
23

ansible-base

Ansible "base" role
Jinja
13
star
24

trakt-cli

A CLI for trakt.tv
Go
13
star
25

hiveway-fix

A chrome extension to fix Hiveway
JavaScript
13
star
26

GNU-Linux

Put RMS in your browser.
JavaScript
12
star
27

server-status

A little Bash script that checks if a server is up or down with ICMP, and sends a mail with status update.
Shell
12
star
28

ansible-php-fpm

Ansible role for PHP-FPM
11
star
29

youtube-dl-mp3

Simply convert a Youtube video into a .mp3 audio file using youtube-dl
Shell
11
star
30

sqlite3-c-examples

SQLite 3 examples in C
C
11
star
31

ansible-caddy

Ansible role for Caddy
Jinja
8
star
32

angristan

✨special ✨ repository
Python
8
star
33

OpenNIC-cli

Set the nearest OpenNIC servers as your DNS resolvers on you GNU/Linux machine
Shell
6
star
34

firstfm-android

Android client for Last.fm written in Kotlin. School project.
Kotlin
6
star
35

LinuxKernelBuild

Sccript to compile and install the Linux Kernel from source
Shell
6
star
36

docker-isso

Alpine-based docker image for the Isso Python commenting system
Dockerfile
6
star
37

AngristanRPiBot

Quelques scripts pour faire un bot Twitter en Python/Bash sur un Raspberry Pi.
Python
5
star
38

Cours-de-japonais

Fiches de japonais pour débutant (WIP)
5
star
39

docker-searx

Alpine-based Docker image for the Searx metasearch engine
Dockerfile
4
star
40

ansible-prometheus

Ansible role for Prometheus
Jinja
4
star
41

meetndo

Meetup website made with Ruby on Rails // Project for the Software Engineering class at Hanyang University
Ruby
4
star
42

spark-project-esgi

Python
3
star
43

OpenVPN-install-old

OpenVPN installation script for Debian 8 - discontinued
Shell
3
star
44

electron-cat-poly-pdf

Electron app to draw polygons on a cat and export it to PDF
JavaScript
3
star
45

spotify-search-proxy

API that proxies Spotify's search API with cache
Go
3
star
46

bsport-exporter

An exporter for bsport.io to track workouts sessions 💪
Go
3
star
47

isso-to-disqus

This tool generates an Disqus-compatible WXR-like XML file from an Isso SQLite database file.
Python
3
star
48

ansible-docker

Ansible role for Debian and Docker
3
star
49

ansible-kibana

Ansible role for Kibana
Jinja
3
star
50

s3-destroyer

Empty an S3 bucket as fast as possible 💨
Go
3
star
51

ansible-node-exporter

Ansible role for Node exporter
Jinja
3
star
52

ai-assign-2

Assignment for the Introduction to Artificial Intelligence class at Hanyang University
Python
3
star
53

bsport-charts

Generate graphs to visualize Bsport sessions over time 💪
Go
3
star
54

docker-hastebin

Alpine-based Docker image for Hastebin, the node.js paste service
JavaScript
3
star
55

docker-ghost

Alpine-based Docker image for the Ghost publishing platform
Dockerfile
3
star
56

ansible-yarn

Ansible role to install Yarn
2
star
57

openfoodfacts-api-c

Simple program to get product information from the Open Food Facts API, in C.
C
2
star
58

twitter-pic-bot

A very simple Ruby bot that tweets random pictures from a directory
Ruby
2
star
59

ansible-alertmanager

Ansible role for Prometheus Alertmanager
2
star
60

sample-socket-io-server

Basic websocket server with node.js and socket.io
JavaScript
2
star
61

ansible-blackbox-exporter

Ansible role for Prometheus Blackbox exporter
2
star
62

go-wallet-bdd-test

School assignment: Simple wallet using Behavior-driven development
Go
2
star
63

ansible-varnish

Simple Ansible role for Varnish on Debian/Ubuntu
2
star
64

advent-of-code-2021

Advent of Code 2021 with Go
Go
2
star
65

ansible-elasticsearch

Ansible role for Elasticsearch
Jinja
2
star
66

gist-stats-cron

1
star
67

node-weather-app

A basic CLI aysnc node weather app to train with promises
JavaScript
1
star
68

ansible-netdata

Simple Ansible role for Netdata
1
star
69

ansible-grafana

Ansible role for Grafana
1
star
70

julia-playground

Damn, Julia
Julia
1
star
71

java-ram-simulation

Java
1
star
72

ansible-postgres-exporter

Ansible role for postgres_exporter
Jinja
1
star
73

docker-riot

Alpine-based Docker images for Riot, the web Matrix client
Dockerfile
1
star
74

solid-library-kata

Go
1
star
75

ansible-powershell

Installs Powershell on Debian from the Microsoft APT repository
1
star
76

vuejs-hello-world

Discovering Vue
JavaScript
1
star
77

advent-of-code-2023

Go
1
star
78

ansible-redis

Ansible role for Redis
1
star
79

ansible-redis-exporter

Ansible role for redis-exporter
Jinja
1
star
80

ansible-zfs-auto-snapshot

zfs-auto-snapshot Ansible role
Shell
1
star
81

bitcoin-telegram-bot

Telegram bot that sends the BTC price every minute. (Assignment)
Python
1
star
82

bool2-crystal

Crystal
1
star
83

node-web-server

A simple node web server to train with express and handlebars
JavaScript
1
star