Skip to main content
Hyper 8 Spacefun Videos

Miniflux - dein eigener RSS-Newsreader

Hallo liebe Orbit-Entdecker:innen. Geht es euch  auch manchmal so, dass ihr voll lauter Newsseiten   00:00
den Überblick verliert? Besonders wenn man im  Bereich Linux und Freie Software regelmäßig   00:06
informiert sein will, gibt es doch viele viele  Seiten, die man sich immer wieder angucken   00:12
müsste. Um das etwas übersichtlicher zu gestalten,  kann man einen sogenannten Newsreader verwenden.   00:17
Dieser Newsreader aggregiert diese ganzen Quellen  in einem bestimmten Format und macht sie für dich   00:25
lesbar. Das Ganze gibt es einerseits als Desktop  Apps, aber auch als Web-App, die du bei dir selbst   00:31
im Selfhosting betreiben kannst, und wie das  Ganze geht, das möchte ich dir in diesem Video   00:37
genau erklären. Doch zunächst erst einmal ein  paar Hintergrundinformationen zu diesem Format,   00:42
in dem die News tatsächlich dann abgerufen werden  können. Und zwar nennt sich das RSS. Ich gebe das   00:47
einfach mal hier in Google ein und dann sagt mir  die Wikipedia hier RSS, es steht für 'Rich Site   00:53
Summary'. Das sind Dateiformate für Webfeeds.  Das sagt mir natürlich auch nicht viel mehr,   00:59
aber dieses Logo, das hast du bestimmt schon das  ein oder andere Mal gesehen. Und das schauen wir   01:05
uns jetzt hier bei unserer Webseite gnulinux.ch.  Das ist deine Haupt-Ressource für Linux und News   01:11
zu Freier Software. Neben linuxnews.de sind wir  die größte deutschsprachige News-Community für   01:19
Freie Software und auch wir haben natürlich einen  sogenannten RSS-Feed. Und dann findest du ganz   01:26
unten auf der Webseite etwas versteckt,  und da siehst du wieder dieses Symbol,   01:31
das wir vorhin hier in Google auch schon gesehen  haben. Ich klicke jetzt da mal drauf. Vielleicht   01:36
hast du das auch sogar schon mal gemacht  und hast dann draufgeklickt und dann warst   01:41
vielleicht etwas verwirrt, was ist das hier? Da  hat sich jetzt irgendetwas Komisches geöffnet   01:45
und das ist sozusagen direkt dieser RSS-Feed.  Der wird im XML-Dateiformat ausgeliefert und   01:49
hat immer so einen bestimmten Aufbau, und  zwar steht hier z.B. der Titel, der Link,   01:57
die Sprache von der Webseite und dann stehen hier  die einzelnen Artikel in einer Zusammenfassung   02:02
drin. Dann gibt es noch Kategorien und so  weiter und so fort und dieser Newsreader,   02:09
der kann das jetzt übersichtlich für dich  darstellen und diese verschiedenen Quellen   02:14
zusammenführen. Und dazu möchten wir das  Ganze bei uns zu Hause installieren, und   02:19
zwar im Selfhosting. Und ich möchte das Ganze aus  dem Internet erreichbar machen, denn ich möchte   02:25
meine News überall abrufen können natürlich. Ich  muss mich jetzt hier einmal an meinem Router noch   02:28
mal neu anmelden. Denn im Router muss ich  natürlich erst einmal einige Einstellungen 02:34
vornehmen. Und zwar habe ich hier einmal bei mir.  Das ist jetzt ein Zyxel-Router. Falls du eine   02:40
Fritz!Box oder eine ähnliche Lösung hast, kannst  du das dort natürlich auch alles einrichten. Und   02:49
zwar gibt es hier verschiedene Bereiche. Es gibt  einmal den Bereich DNS. Da habe ich mir hier so   02:55
eine sogenannte DynDNS-Adresse eingerichtet, bei  dem Anbieter freedns.afraid.org. Den kann ich so   03:00
empfehlen, den nutze ich selbst seit Jahren und  diese Adresse heißt tuxwiz.mooo.com. Dann habe ich   03:07
natürlich hier noch in den Netzwerkeinstellungen  in dem Bereich NAT das Port-Forwarding für HTTP   03:13
und HTTPS eingerichtet. Das wäre hier  Port 80 und Port 443. Und zwar werden   03:19
die Anfragen auf die IP-Adresse von dieser VM  hier, diese Maschine, das ist eine TuxWiz-VM,   03:25
meine eigene Linux-Distribution, da werden die hin  weitergeleitet. Und zwar kannst du die IP-Adresse   03:31
mit 'hostname -I' herausfinden und da sagt er mir  hier schon 192.168.1.157. Das stimmt also. Also,   03:38
hier ist alles vorbereitet. Ich habe hier  Portforwarding eingerichtet, DynDNS eingerichtet,   03:47
wir sind auf jeden Fall startklar. Die  Lösung, die ich dir heute zeigen möchte,   03:52
die heißt Miniflux und Miniflux findest du hier  auf der Webseite miniflux.app. Dort kannst du   03:58
ein bisschen runterscrollen und da gibt es dann  einen Bereich Documentation. Das Ganze ist hier   04:05
in Englisch aber sehr einfach zu verstehen. Wie  üblich möchten wir das Ganze in Docker machen,   04:09
denn das bietet uns die absolute Flexibilität und  macht es wirklich einfach zur Installation und   04:15
zur Konfiguration. Wie das geht, wird hier in dem  Bereich 'Docker Installation' genau beschrieben.   04:22
Hier gibt es natürlich verschiedene  Möglichkeiten. Einmal die Möglichkeit,   04:28
das Ganze mit Docker Run zu machen. Das machen wir  in der Regel nicht, denn wir möchten Docke Compose   04:32
verwenden. Docker Compose arbeitet deklarativ  und bietet viele viele Vorteile. Dazu wird hier   04:38
schon eine Docker Compose Datei angeboten.  Wir schauen aber hier etwas weiter runter,   04:44
denn hier steht, es gibt noch weitere Beispiele,  wenn man z.B. Traefik oder Caddy verwenden möchte.   04:49
Was das genau das ist, erkläre ich euch jetzt  gleich auch. Ich klicke mal hier auf den Link,   04:55
dann öffnet sich natürlich hier das Git-Repository  von dem Projekt github.com/miniflux/v2 und hier   05:00
finde ich jetzt hier auch schon diese Datei. Da  gibt es einmal hier ein Caddy File ein README,   05:07
Basic, Caddy und Traefik. Caddy und Traefik sind  beides Reverse, sogenannte Reverse Proxies. Die   05:13
stellen sich vor die eigentliche Applikation  und stellen z.B. die SSL-Zertifikate sicher.   05:21
Also das Zertifikat, das wird dann von diesem  Reverse Proxy bezogen, in der Regel über Let's   05:27
Encrypt und dann kannst du dein System wirklich  sicher auch aus dem Internet erreichbar machen.   05:33
Wir entscheiden uns jetzt hier nicht für Traefik,  sondern für die Lösung Caddy. Ich habe euch auch   05:39
schon andere Reverse Proxies vorgestellt, wie  z.B. in meinem ownCloud Video den Nginx Proxy   05:43
Manager. Schau dir das unbedingt auch mal an. Wir  wählen jetzt hier Caddy. Caddy ist bekannt eher   05:50
aus dem Umfeld von dem Tomcat Application Server.  Das ist so ein Java-Application-Server. Caddy ist   05:56
relativ unüblich, nicht so weitverbreitet, aber  wirklich auch gut und sehr einfach einzurichten.   06:03
Wir benötigen dazu ebendiese zwei Dateien hier.  Hier verwenden wir jetzt nur dieses Caddy File und   06:09
das caddy.yaml. Das schauen wir uns mal an. Wir  klicken darauf und ich sage hier 'Download raw',   06:14
dann hat er das jetzt hier im Hintergrund  schon heruntergeladen. Das Gleiche mache   06:20
ich mit dem Caddy File und da sage ich auch wieder  'Download raw'. Jetzt muss ich natürlich das hier   06:23
noch installieren. Das mache ich  mit 'sudo apt install docker.io' und 06:29
'docker-compose'. Ich entscheide mich jetzt in  diesem Fall für die Docker-Variante direkt aus den   06:35
Debian-Repositories, denn meine Linux-Distribution  basiert auf Debian, in dem Fall nutze ich TuxWiz   06:42
in der Stable Variante. Das findest du auf  spacefun.ch, da kannst du das auch beziehen,   06:50
dann klickst du da auf TuxWiz, dann kannst du  das herunterladen. Es eignet sich halt super,   06:56
weil es halt wirklich sehr sehr stabil ist und  für einen Server trotzdem noch eine minimale GUI   07:01
mitbringt und dann macht das Ganze natürlich  umso angenehmer. Jetzt installiert er hier   07:08
Docker und da müsste ich jetzt noch den  Benutzer, mit dem ich jetzt hier arbeite,   07:14
zur Docker-Gruppe wie üblich hinzufügen.  'usermod -a- G docker tux' und dann User sudo 07:17
so, mit sudo natürlich. Das ist ein Systembefehl,  den kann ich nur mit Root-Rechten ausführen. Dann   07:30
müsste ich mich ab- und wieder anmelden. Das  habe ich jetzt hier schon mal für euch gemacht   07:35
und hier könnte ich mit 'id' jetzt sehen, dass  ich in der Gruppe Docker drin bin. Als Nächstes   07:38
schauen wir mal hier in meinem Home-Ordner,  da hatte ich jetzt hier ein Caddy-File,   07:44
das caddy.yml. Und hier habe ich noch ein  sogenanntes OPML-RSS-Feed-File abgelegt,   07:49
und dabei handelt es sich um eine Sammlung von  verschiedenen Quellen von Linux-Newsseiten,   07:57
die ich selber so abrufe. Denn das Ganze kann  man auch wieder exportieren und importieren,   08:03
damit arbeiten wir gleich. Das kann ich auch, wenn  ihr daran Interesse habt, gerne mit euch teilen.   08:08
Da sind schon ganz ganz viele tolle Newsseiten  auf Deutsch und Englisch mit drin. Wir machen   08:13
jetzt also einen Ordner 'mkdir ~/miniflux' und  wir verschieben jetzt mal das Caddy-File nach   08:18
miniflux und dann dieses caddy.xml auch nach  miniflux. Das hat aber noch eine Besonderheit,   08:27
das schauen wir uns gleich noch mal an, was  es damit auf sich hat. Denn wir möchten ja   08:34
jetzt gleich Docker Compose verwenden. Also ich  gehe jetzt hier in das Verzeichnis miniflux und   08:38
jetzt kann ich hier in das Caddy-File schon  mal reinschauen. Ich mache das jetzt mal mit   08:46
Nano kann ich das auch machen oder mit vi, was dir  da lieber ist, und da sehe ich jetzt hier schon,   08:50
hier muss ich erst einmal meine URL angeben. Wie  gesagt, ich verwende hier meine DynDNS-Domain 08:55
tuxwiz.mooo.com und das hier passt. Denn miniflux  läuft hier unter miniflux auf Port 8080 auf dem   09:01
localhost. Ich sage jetzt 'Ctrl+O' und 'Ctrl+X'  und das Ganze ist jetzt gespeichert. Dann gibt es   09:12
hier noch diese caddy.yml und das ist eigentlich  ein docker-compose.yml. Die müssen wir uns nachher   09:18
auch im Detail noch mal anschauen. Ich öffne die  jetzt mal mit 'nano caddy.yml' und hier können wir   09:23
auch noch mal schauen, hier exposed er noch ein  paar Ports und das ist der Caddy z.B. das ist eben   09:29
dieser Reverse Proxy. Dann kann ich hier sehen,  aha, da wird das Caddy-File nämlich in '$PWD',   09:35
also ein 'print working directory' heißt das,  das kann ich mal ausführen 'pwd', dann zeigt er   09:41
mir dieses Verzeichnis an, in dem ich jetzt gerade  bin. '/home/tux/miniflux' und dann das Caddy-File,   09:47
das wir eben bearbeitet haben. Dann gibt es hier  noch den Ordner 'caddy_data'. Ich möchte aber,   09:53
dass der nicht als Docker-Volume irgendwo  rumfliegt, sondern ich möchte das in meinem   09:59
Home-Verzeichnis haben, also in dem Verzeichnis,  wo er arbeitet. Da könnte ich jetzt auch wieder   10:02
Dollar '$PWD' oder einfach './' angeben, dann  ist das Ganze auch erledigt. Hier sehe ich   10:07
jetzt noch ein paar Sachen, und zwar den Database  Connection-String. Der verbindet sich da eben mit   10:13
dem Secret, das heißt einfach 'secret'. Das  könntet ihr bei Bedarf noch ändern und hier   10:18
kann ich in Default-Admin festlegen. Das ganze  könnte ich auch in eine sogenannte '.env'-Datei   10:22
auslagern. Ich gebe jetzt hier als ADMIN_PASSWORD  SpaceFun als Passwort ein. Und hier darf ich jetzt   10:28
auch noch mal meine Base URL angeben und  da gebe ich jetzt natürlich auch wieder 10:33
tuxwiz.mooo.com an. Dann habe ich hier meine  Datenbank, da ist das Secret falls du das   10:38
Secret für die Datenbank ändern möchtest, dann  müsstest du es hier einmal ändern und da oben   10:47
im Connection-String, denn auch da müsste das  entsprechend gleich sein. Und hier ist jetzt auch   10:52
noch mal ein Volume und zwar das Datenbank-Volume.  Da expose ich den Pfad auch wieder direkt in mein   10:57
Verzeichnis './miniflux-db'. Das hat den Vorteil,  dass ich dann einfach dieses Verzeichnis miniflux,   11:03
was ich vorhin angelegt habe, einfach archivieren  kann, mir weg kopieren kann, und auf irgendeinem   11:10
anderen Server wieder neu starten kann. Und  das ganze läuft einfach und ich muss mir nicht   11:14
mühselig diese Docker Volumes irgendwo raus  popeln. Wenn ich das so mache, dann ist diese   11:18
Angabe von den Volumes hier unten nicht mehr  nötig. Ich könnte die dann hier herauslöschen,   11:24
das ist aber auch überhaupt nicht schlimm, falls  du die jetzt da noch drinnen lässt. Also das habe   11:28
ich jetzt hier gemacht und das Ganze kann ich  jetzt auch wieder mit 'Ctrl+O' und 'Ctrl+X'   11:34
abspeichern. Und jetzt versuche ich das mal mit  'docker-compose up', weil diese Version, die   11:40
jetzt hier bei dieser Debian Stable Version dabei  ist, die verwendet noch ein altes Docker Compose.   11:47
Und da ist 'docker-compose' so geschrieben und  in den neueren Version wird 'docker compose'   11:52
angegeben, also wirklich wichtig für dich zur  Info. 'docker-compose up' ich probiere das jetzt   11:59
einfach mal und da sagt er mir jetzt schon, ah  hier stimmt irgendwas nicht. Und das ist das genau   12:05
das, was ich euch eben sagen wollte. Wir haben das  ganze ja einfach reinkopiert das heißt 'caddy.xml'   12:09
und da kann dieses Docker Compose gar nichts  mit anfangen. Wir müssen das also wegmoven. 'mv   12:14
caddy.xml' nach 'docker-compose.yml', nicht xml  'docker-compose.yml'. In diesem Format muss das   12:19
angegeben werden. Dann kann ich das Ganze noch mal  probieren, 'docker-compose up' und jetzt pullt er   12:30
mir hier im Hintergrund schon die Images. Also das  sind manchmal diese kleinen Fallstricke, die das   12:36
ganze insbesondere für Einsteiger:innen besonders  schwierig machen. Aber ich zeige dir hier bei   12:42
mir in meinen Videos immer ganz genau, worauf du  achten musst und wenn du trotzdem irgendwie Fragen   12:48
hast, dann komm einfach bei uns in die Community  und frag dort nach. Also er pulled jetzt hier die   12:53
Images. Einmal natürlich den Caddy, PostgreSQL  und er entpackt die dann und nachher, wenn   12:58
alles geklappt hat, sollte er eigentlich miniflux  bereits unter meiner DynDNS-Domain bereitstellen   13:03
und sogar mit Let's Encrypt ein Zertifikat für  HTTPS bezogen haben. Das schauen wir gleich mal,   13:11
ob das Ganze funktioniert. Jetzt erstellt er  diesen Container, hier als Erstes die Datenbank,   13:18
das ist eine PostgreSQL-Datenbank, die baut  er jetzt hier im Hintergrund für uns auf und   13:23
die Daten liegen ja wie angegeben bei uns  alle in diesem minifux Verzeichnis. Hier   13:28
siehst du jetzt auch in dem Log genau, was er  dann machen will. Hier versucht er jetzt eben   13:33
dann gleich dieses SIL-Zertifikat zu machen  'certificate obtain successfully'. Das heißt   13:37
er konnte das Zertifikat beziehen. Jetzt  schauen wir doch mal, ob vielleicht unter 13:43
tuxwiz.mooo.com ja schon unsere Applikation  erreichbar ist. Und da siehst du, da ist miniflux   13:47
bereits am Laufen. Ich melde mich hier an mit  Admin und mit dem Passwort, was ich vorher ja   13:55
in der Datei, also in der Docker-Compose-Datei  angegeben habe. Das ist jetzt erstmal miniflux,   14:01
so sieht das aus. Das ist wirklich sehr  sehr übersichtlich, einfach gehalten,   14:08
sehr leichtgewichtig, die Applikation. Ich  zeige dir jetzt mal ein paar Einstellungen,   14:11
die du da vornehmen kannst. Und zwar gehe ich  erstmal hier unter Settings. Dann kann ich hier   14:15
als allererstes z.B. mal die Sprache auf Deutsch  umstellen. Das mache ich mal hier. Da musst du   14:19
drauf achten, hier gibt es immer unterschiedliche  Update-Knöpfe, da klicke ich mal drauf und   14:24
das Ganze ist dann schon in Deutsch. Dann gibt es  hier noch weitere Einstellungen, z.B. 'Einträge   14:29
automatisch als gelesen markieren'. Das finde  ich jetzt noch wichtig. Die Zeitzone könnte ich   14:35
jetzt hier noch auf meine Zeitzone einstellen,  das wäre bei mir Europa/Zürich. Dann gibt es   14:40
hier 'Standard Startseite' ungelesen, Sortierung  und Einträge, da stelle ich mir gerne ein, dass   14:46
die neuen Einträge zuerst angezeigt werden. Das  musst du für dich herausfinden, was da für dich   14:52
passt. Das ganze kannst du natürlich auch über die  Tastatur bedienen, dieses ganze System. Das geht   14:58
wirklich sehr sehr gut und hier über Abonnements  kann ich jetzt hier einzelne RSS-Feeds hinzufügen.   15:04
Da könnte ich jetzt sagen 'Abonnement hinzufügen'  und da könnte ich jetzt z.B. hier diese URL von   15:11
gnulinux.ch mit diesem RSS-Feed hier tatsächlich  einfach reinpasten und dann würde das dann   15:16
hier schon angezeigt. Ich habe aber jetzt diese  OPML-Datei aufgebaut und die möchte ich jetzt hier   15:22
mal importieren, denn da sind gleich ganz ganz  viele Feeds drin. Und ich möchte die gerne alle   15:29
hier drin haben, also ich sage hier 'Durchsuchen',  sage hier meine RSS-Datei, RSS-Lioh importieren   15:34
und habe jetzt diese ganzen Feeds hier schon  drin. Dann kann ich jetzt im Hintergrund schon   15:41
mal alle diese Feeds aktualisieren. Das läuft in  Zukunft dann automatisch für dich und dann ruft   15:45
er wirklich die ganzen neuen Beiträge für dich  hier ab. Du kannst das ganze auch multiuserfähig   15:50
betreiben. Also wenn du halt z.B. für mehrere  Menschen das als kleinen Dienst anbieten möchtest,   15:57
dann kannst du hier in den Einstellungen einfach  neue Benutzer anlegen und die dürfen sich dann   16:02
hier auch anmelden und selber ihre Abonnements  verwalten. Das ist natürlich eine ganz ganz feine   16:07
Sache und hier unter ungelesen findest du jetzt  tatsächlich diese ganzen Feeds. Also hier das   16:12
ist jetzt z.B. Ubuntu Users der Planet von Ubuntu  Users, den ich da eingebaut habe und dann kann ich   16:17
mir hier diese Artikel anschauen. Und du siehst  jetzt hier die meisten RSS-Feeds haben immer   16:23
erst einmal nur so eine Zusammenfassung, also  einen kurzen Teaser, damit du dann nachher diesen   16:28
Artikel auch aufrufen kannst. Also, das wollen  die natürlich. Die möchten, dass du dann hier den   16:34
externen Link anklickst und dann darauf klickst.  Und je nachdem, was jetzt z.B. der Feed anbietet,   16:40
kannst du dann hier auf den Punkt herunterladen  gehen und dann lädt er hier diesen gesamten   16:48
Artikel für dich herunter. Und dann kannst  du wirklich die Artikel genau hier in deinem   16:54
Feedreader alle lesen und musst noch nicht mal  auf die Webseite gehen. Wir freuen uns natürlich,   16:59
wenn du auf die Webseite gnulinux.ch gehst oder  natürlich auch auf spacefun.ch, dort biete ich   17:04
aber keinen Feed an. Und so kannst du das ganze  natürlich super einfach für dich aufbauen und dir   17:09
deinen eigenen Feedreader hier zusammenstellen.  Das ist wirklich eine ganz tolle Sache, probier   17:15
es mal aus. Ich freue mich auf dein Feedback in  den Kommentaren oder bei uns in der Community. Die   17:21
findest du hier auf spacefun.ch und dann kannst  du hier auf Community klicken und dann scannst du   17:26
einfach diesen QR-Code oder klickst hier auf den  Bereich Telegram. Denk daran, ich habe bei mir in   17:32
YouTube auch einen Mitgliederbereich und viele  Videos sind exklusiv für Mitglieder erhältlich.   17:39
Also wenn du irgendwas suchst zu irgendeinem Thema  rund um Linux, Freie Software oder Selfhosting,   17:45
schau bei mir in dem Mitgliederbereich rein.  Ich habe alles rund um Nextcloud, SeaFile,   17:51
alles, was du dir vorstellen kannst, wirklich  das Video schon mal gemacht. Und du kannst   17:56
dir gerne auch eigene Videos bei uns in der  Community wünschen und wenn ich Zeit finde,   18:00
dann mache ich das sicherlich gerne. Ich freue  mich auf deinen Besuch und bis bald. Tschüss 18:04
Hello dear Orbit explorers. Do you sometimes find yourself 00:00
lost in the throes of news sites? Especially if you 00:06
want to stay regularly informed about Linux and free software, there are so many, many sites you 00:12
have to look at again and again. To make things a bit more manageable, you can use a so-called newsreader. 00:17
This newsreader aggregates all these sources in a specific format and makes them 00:25
readable for you. The whole thing is available as a desktop app, but also as a web app that you 00:31
can self-host, and I'd like 00:37
to explain exactly how it all works in this video. But first, a little background information on this format, 00:42
in which the news can actually be accessed. It's called RSS. I'll 00:47
just type it into Google, and then Wikipedia tells me RSS, which stands for 'Rich Site 00:53
Summary'. These are file formats for web feeds. Of course, that doesn't tell me much more than that, 00:59
but you've probably seen this logo once or twice. And that's what we're looking at 01:05
now here on our website gnulinux.ch. This is your main resource for Linux and news 01:11
about Free Software. Alongside linuxnews.de, we are the largest German-language news community for 01:19
Free Software, and of course we also have a so-called RSS feed. And then you'll find 01:26
something hidden at the very bottom of the website: there you'll see this symbol again, 01:31
which we saw earlier in Google. I'll click on it now. Maybe 01:36
you've even done that before, clicked on it, and then 01:41
maybe were a bit confused as to what this is. Something strange has now opened, 01:45
and that is, so to speak, this RSS feed. It's delivered in XML file format and 01:49
always has a specific structure: for example, the title, the link, 01:57
the language of the website, and then a summary of the individual articles 02:02
. Then there are categories and so on, and this newsreader 02:09
can display it all clearly for you and bring these various sources 02:14
together. We want to install the whole thing at home, 02:19
self-hosted. And I want to make it accessible from the internet, because I want to 02:25
be able to access my news from anywhere, of course. I need to log in to my router again now 02:28
. Because first, I have to configure a few settings on the router 02:34
. I have one here. This is a Zyxel router. If you 02:40
have a Fritz!Box or a similar solution, you can set everything up there, too. 02:49
There are various areas. First, there's the DNS area. I've 02:55
set up a so-called DynDNS address with the provider freedns.afraid.org. I can recommend it 03:00
; I've been using it myself for years, and the address is tuxwiz.mooo.com. And then, of course, I've 03:07
also set up port forwarding for HTTP 03:13
and HTTPS in the network settings under NAT. That would be port 80 and port 443. 03:19
The requests are forwarded to the IP address of this VM here, this machine, which is a TuxWiz VM, 03:25
my own Linux distribution. You can 03:31
find the IP address with 'hostname -I', and it tells me 192.168.1.157. So, that's correct. So, 03:38
everything is prepared here. I've set up port forwarding, DynDNS, 03:47
and we're definitely ready to go. The solution I want to show you today 03:52
is called Miniflux, and you can find Miniflux here on the website miniflux.app. You can 03:58
scroll down a bit and there's a Documentation section. The whole thing is 04:05
in English, but it's very easy to understand. As usual, we want to do everything in Docker, 04:09
because it offers us absolute flexibility and makes installation and 04:15
configuration really easy. How to do this is described in detail in the 'Docker Installation' section. 04:22
There are, of course, various options. Once the opportunity, 04:28
to do the whole thing with Docker Run. We don't usually do that because we want 04:32
to use Docker Compose. Docker Compose works declaratively and offers many, many advantages. 04:38
A Docker Compose file is already provided here for this. But let's look a bit further down 04:44
because it says there are further examples if you want to use Traefik or Caddy, for example. 04:49
I'll explain to you exactly what that is in a moment. I'll click on the link here and 04:55
the Git repository for the project github.com/miniflux/v2 will open and here 05:00
I can find this file. There's a Caddy file, a README, 05:07
Basic, Caddy and Traefik. Caddy and Traefik are both reverse proxies, so-called reverse proxies. They 05:13
sit in front of the actual application and, for example, secure the SSL certificates. 05:21
The certificate is then obtained from this reverse proxy, usually via Let's 05:27
Encrypt, and then you can make your system truly securely accessible from the internet. 05:33
We're not choosing Traefik here, but rather the Caddy solution. I've 05:39
already introduced you to other reverse proxies, such as the Nginx Proxy 05:43
Manager in my ownCloud video. Be sure to check that out, too. We're choosing Caddy here. Caddy is more well-known 05:50
from the Tomcat application server environment. It's a Java application server. Caddy is 05:56
relatively unusual, not that widespread, but really good and very easy to set up. 06:03
We need these two files for this. Here we're just using this Caddy file and 06:09
caddy.yaml. Let's take a look at that. We click on it and I say 'Download raw', 06:14
and it will then download it in the background. I do the same 06:20
with the Caddy file and say 'Download raw' again. Now, of course, I still have to install this 06:23
. I do this with 'sudo apt install docker.io' and 06:29
'docker-compose'. In this case, I'm opting for the Docker variant directly from the 06:35
Debian repositories, because my Linux distribution is based on Debian, so in this case, I'm using 06:42
the stable version of TuxWiz. You can find it on spacefun.ch, where you can also get it. 06:50
Then you click on TuxWiz and you can download it. It's great 06:56
because it's really, really stable and still 07:01
offers a minimal GUI for a server, which makes the whole thing all the more convenient. Now it installs 07:08
Docker here, and I just need to 07:14
add the user I'm currently working with to the Docker group as usual. 'usermod -a- G docker tux' and then user sudo 07:17
, with sudo, of course. This is a system command; I can only execute it with root privileges. Then 07:30
I would have to log out and log back in again. I've already done that for you 07:35
, and with 'id' I can now see that I'm in the Docker group. Next, 07:38
let's look in my home folder; I had a Caddy file here, 07:44
the caddy.yml. And here I've also stored a so-called OPML RSS feed file, 07:49
which is a collection of various sources from Linux news sites 07:57
that I access myself. The whole thing can be exported and imported, 08:03
so we'll work with that in a bit. I'd be happy to share it with you if you're interested. 08:08
There are already a lot of great news sites in German and English in there. 08:13
So we'll create a folder 'mkdir ~/miniflux' and move the Caddy file to 08:18
miniflux, and then this caddy.xml to miniflux as well. But there's one more special feature; 08:27
we'll take a look at what it's all about in a bit. Because we want 08:34
to use Docker Compose right now. So, I'm going to go to the miniflux directory here, and 08:38
now I can take a look at the caddy file. I'm doing 08:46
this with Nano, or with vi, whichever you prefer, and I can see here that 08:50
I first have to enter my URL. As I said, I'm using my DynDNS domain 08:55
tuxwiz.mooo.com, and this is fine. Because miniflux is running here under miniflux on port 8080 on the 09:01
localhost. I now say 'Ctrl+O' and 'Ctrl+X' and the whole thing is saved. Then there's 09:12
this caddy.yml, which is actually a docker-compose.yml. We'll have 09:18
to look at it in detail later. I'll open it with 'nano caddy.yml', and we can 09:23
take another look here. It exposes a few more ports, and this is the caddy, for example, 09:29
this reverse proxy. Then I can see here, aha, the caddy file is in '$PWD', 09:35
so it's called a 'print working directory'. I can run 'pwd', and then it shows 09:41
me the directory I'm currently in: '/home/tux/miniflux' and then the caddy file 09:47
we just edited. Then there's the 'caddy_data' folder. However, I do 09:53
n't want it to be floating around as a Docker volume; I want it in my 09:59
home directory, the directory where it's working. I could also 10:02
specify '$PWD' or simply './' there, and that's all done. Here I see 10:07
a few more things, namely the database connection string. This connects to 10:13
the secret, which is simply called 'secret'. You could change this if necessary, and 10:18
I can set it in the default admin. I could also 10:22
store the whole thing in a so-called '.env' file. I'm now entering SpaceFun as the password for ADMIN_PASSWORD. And here I can 10:28
also enter my base URL again, and of course I'm entering tuxwiz.mooo.com again 10:33
. Then I have my database here, and that's where the secret is. If you want to change the 10:38
secret for the database, you'd have to change it here and 10:47
in the connection string above , because it should be the same there too. And here's 10:52
another volume, the database volume. I'll expose the path directly to my 10:57
'./miniflux-db' directory. This has the advantage that I 11:03
can then simply archive the miniflux directory I created earlier, copy it away, and 11:10
start it up again on any other server. And the whole thing just works, and I don't have to 11:14
laboriously dig up these Docker volumes from somewhere. If I do it this way, then this 11:18
information about the volumes down here is no longer necessary. I could then delete them here, 11:24
but it's no problem at all if you leave them there. So, 11:28
I've done that here, and I can now 11:34
save the whole thing again with 'Ctrl+O' and 'Ctrl+X'. And now I'll try 'docker-compose up', because this version, which 11:40
is included in this Debian stable version, still uses an old Docker Compose. 11:47
And 'docker-compose' is written like this, and in the newer version it's 11:52
specified as 'docker compose', so this is really important for you. 'docker-compose up': I'll 11:59
just try that now, and it's already telling me, 'ah, something's wrong here.' And that's exactly 12:05
what I wanted to tell you. We just copied the whole thing in, which is called 'caddy.xml,' 12:09
and Docker Compose can't do anything with that. So we have to move it away. 'mv 12:14
caddy.xml' to 'docker-compose.yml,' not xml 'docker-compose.yml'. It has to 12:19
be specified in this format. Then I can try the whole thing again, 'docker-compose up,' and now it's 12:30
already pulling the images for me in the background. These are sometimes the little pitfalls that 12:36
make the whole thing particularly difficult, especially for beginners. But I 12:42
always show you exactly what to look out for in my videos, and if you still 12:48
have any questions, just join us in the community and ask there. So, he's now pulling the 12:53
images here. First, of course, the Caddy, PostgreSQL, and then he unpacks them. Afterward, if 12:58
everything went well, he should already have deployed miniflux under my DynDNS domain 13:03
and even obtained a certificate for HTTPS with Let's Encrypt. We'll see 13:11
if it all works. Now he's creating this container, first the database. 13:18
This is a PostgreSQL database, which it is now building for us in the background, and 13:23
as stated, all of the data is located in this minifux directory. Here, 13:28
you can see exactly what it wants to do. It is now attempting 13:33
to create this SIL certificate: 'certificate obtained successfully'. This means 13:37
it was able to obtain the certificate. Now let's see if 13:43
our application is already accessible at tuxwiz.mooo.com. And you can see that miniflux is 13:47
already running. I'm logging in here with admin rights and the password I previously 13:55
specified in the file, i.e., in the Docker Compose file. This is miniflux for now; 14:01
this is what it looks like. The application is really very clear, simple, and 14:08
very lightweight. I'll now show you a few settings 14:11
you can configure there. First, I'll go to Settings. Then, 14:15
the very first thing I can do is change the language to German, for example. I'll do that here. You have to 14:19
pay attention, there are always different update buttons here. I click on one and 14:24
the whole thing is then in German. Then there are other settings, for example ' 14:29
Automatically mark entries as read'. I think that's important. I could 14:35
set the time zone here to my time zone, which for me would be Europe/Zurich. Then there's 14:40
'Default start page' unread, sorting and entries, and I like to set it so that 14:46
the new entries are shown first. You have to find out for yourself what 14:52
works for you. You can of course also operate the whole system using the keyboard. It works 14:58
really, really well and here under subscriptions I can now add individual RSS feeds. 15:04
I could now say 'Add subscription' and then I could 15:11
simply paste in this URL from gnulinux.ch with this RSS feed, and then it would be 15:16
displayed here. I've now created this OPML file, and I'd like 15:22
to import it here, because it has a whole lot of feeds in it. And I'd like 15:29
to have them all in here, so I say 'Browse', say my RSS file, import RSS feed 15:34
, and now I have all these feeds in here. Then I can 15:41
update all these feeds in the background. This will run automatically for you in the future, and then 15:45
it will retrieve all the new posts for you. You can also 15:50
run the whole thing with multi-user capability. So if you want to offer this as a small service to several people, for example, 15:57
you can simply create new users here in the settings, and they can then 16:02
log in and manage their own subscriptions. That's a really nice 16:07
thing, and here under unread you can actually find all of these feeds. So here, for example, 16:12
is Ubuntu Users, the planet of Ubuntu Users that I've integrated, and then I can 16:17
look at these articles. And you can see that most RSS feeds 16:23
only have a summary, a short teaser, so that you 16:28
can then access the article later. Well, that's what they want, of course. They want you 16:34
to click on the external link here and then click on it. And depending on what the feed offers, for example, 16:40
you can then go to the "Download" point here, and it will 16:48
download the entire article for you. And then you can really 16:54
read all the articles right here in your feed reader and you don't even have to go to the website. We'd be happy 16:59
if you went to the website gnulinux.ch or, of course, to spacefun.ch, 17:04
but I don't offer a feed there. And so you can set it all up really easily for yourself and 17:09
put together your own feed reader here. It's really great, give 17:15
it a try. I look forward to your feedback in the comments or in our community. 17:21
You can find it here on spacefun.ch and then you can click on "Community" here and then scan. 17:26
Simply scan this QR code or click on the Telegram section here. Remember, I 17:32
also have a members' area on YouTube, and many videos are available exclusively to members. 17:39
So if you're looking for anything related to Linux, free software, or self-hosting, 17:45
check out my members' area. I've 17:51
done everything related to Nextcloud, SeaFile, anything you can imagine—really, literally, the video. And you're 17:56
welcome to request your own videos in our community, and if I find the time, 18:00
I'll be happy to do so. I look forward to your visit and see you soon. Bye. 18:04

In diesem Video zeige ich dir, wie du mit Miniflux deinen eigenen Web-RSS Newsreader auf deinem Homeserver im Selfhosting betreiben kannst. RSS-Feeds sind eine großartige Möglichkeit, um immer auf dem neuesten Stand zu bleiben und die Inhalte deiner Lieblingsseiten bequem an einem Ort zu sammeln.

Ich erkläre dir Schritt für Schritt, wie ein Newsreader funktioniert und führe dich durch den gesamten Prozess der Installation von Miniflux mit Docker. Außerdem zeige ich dir, wie du die Sicherheit deiner Anwendung gewährleistest, indem du einen Caddy Reverse-Proxy einrichtest, der mit Let's Encrypt SSL-Zertifikaten abgesichert ist. So kannst du sicherstellen, dass dein Newsreader auch von außerhalb deines Heimnetzwerks erreichbar ist.

Was du lernen wirst:

- Grundlagen von RSS und wie Newsreader funktionieren

- Installation von Miniflux mit Docker und Docker Compose

- Einrichtung eines Caddy Reverse-Proxys

- Absicherung mit Let's Encrypt SSL-Zertifikaten

Links und Ressourcen:

- Miniflux GitHub Repository: https://github.com/miniflux/miniflux

- Caddy Server: https://caddyserver.com/

Image by Michael Schwarzenberger on Pixabay

Navigation

Video Player