Runtipi mit Cloudflare-Tunnel

  Olaf Dreßler   Lesezeit: 4 Minuten  🗪 8 Kommentare Auf Mastodon ansehen

Wie ich mir einen Homeserver ohne Portfreigabe im Router eingerichtet habe.

runtipi mit cloudflare-tunnel

Es gibt viele Möglichkeiten, einen Homeserver mit Webdiensten aufzusetzen. Eine bekannte Lösung dafür ist z.B. Yunohost - auf Basis eines klassischen Webservers. Doch es gibt eine andere Technik, die mich besonders gefixt hat: Docker bzw. docker-compose.

Dazu gibt es auch schon passende Lösungen, wie CasaOS, Yacht, Runtipi und mehr. Ich habe mich für Runtipi entschieden. Der Grund liegt darin, dass es momentan laut github aktiv entwickelt wird und es bei mir sofort funktioniert hat.

Ein geschmeidiger Vorteil hat solch eine Lösung, dass man nicht in einem Terminal arbeiten muss, sondern die Installation und Verwaltung der Docker-Container auf einer Weboberfläche bedienen kann, die auch noch von extern über eine URL erreichbar ist.

Hinweis: Bevor es wieder Kommentare hagelt zwecks Datenschutz und -sicherheit: Dieser Aspekt wird hier nicht beleuchtet. Es ist eine rein technische Information, wie ich mir mein eigenes Webportal aufsetze. Ich werde keine sensiblen Daten darauf ablegen.

Es gibt viele Möglichkeiten, einen Homeserver mit Webdiensten aufzusetzen. Eine bekannte Lösung dafür ist z.B. Yunohost - auf Basis eines klassischen Webservers. Doch es gibt eine andere Technik, die mich besonders gefixt hat: Docker bzw. docker-compose.

https://runtipi.io/next/static/media/hero-dark.680dee5f.png

Lioh Möller hat auf Ihrem Youtube-Kanal zwei Videos präsentiert, die mich sehr neugierig gemacht und mich auf eine Idee gebracht haben: Kann ich einen Cloudflare-Tunnel nutzen, um Runtipi in meinem Heimnetzwerk laufen zu lassen, ohne dafür Portfreigaben in meinem Router zu setzen und kann ich über eine URL darauf zugreifen?

Long story short: Ja, es funktioniert.

Hier möchte ich Euch meine Lösung vorstellen.

Basisvideos

Diese beiden Videos von Lioh dienten mir als Basis.

Cloudflare: https://yewtu.be/watch?v=deUY5a2r3xI

Hinweis:

Zum Ende wir Apache2 zum Testen installiert -> das habe ich NICHT gemacht, da ich nicht weiß, wie sich das auf runtipi auswirken könnte.

Runtipi: https://yewtu.be/watch?v=sgs_4j-OhTs

Hinweise:

Zu Beginn stellt Lioh eine Dyndns-Wildcart-Möglichkeit vor. Diese benötige ich nicht, da ja ein Cloudflare-Tunnel vorhanden ist.

Ab Min 5:50 zeigt Lioh die Bearbeitung der Einstellungen des tipi. Diese brauchte ich nicht vornehmen - außer die Sprache auf Deutsch.

Hardware

Als Hardware dient mir ein Lenovo Z50 mit AMD A10 und 16 GB RAM (hatte ich noch übrig, ich denke 8 GB hätten auch ausgereicht).

Den Akku habe ich entfernt, da ich mir nicht sicher bin, ob das ständige Aufladen des Akkus diesen beschädigen oder sogar aufblähen lassen könnte (hier ein Dankeschön für den Hinweis von Christian (lupinix)).

Betriebssystem aufsetzen und anpassen

Installation tuxwiz

Ich habe mich für Lioh's Debian-Blend Tuxwiz mini stable entschieden und installiert. Warum? Weil ich mich mit einer Desktopoberfläche (hier der Windowsmanager IceWM) noch etwas sicherer fühle, als nur über ssh und Terminal zuzugreifen. Ich bin noch so ein visueller Typ ;-).

Bei der Installation habe ich den automatischen Login ausgewählt, da ich später headless darauf zugreifen möchte. Weiter unten erkläre ich, wie ich das mache.

Installation xfce Powermanager

Da ich den Laptopdeckel geschlossen halten möchte, IceWM sich dabei aber abschaltet und abmeldet und dann nicht mehr erreichbar ist, habe ich das Paket xfce4-power-manager installiert und gestartet und folgende Einstellungen vorgenommen, damit der Laptop immer läuft und bloß nicht in irgendeinen Ruhezustand geht:

  • Beim Schließen des Laptopdeckels: Monitor ausschalten
  • Sämtliche Stromsparmodi ausgeschaltet

Installtion für Headless-Betrieb

Um den Laptop später headless zu betreiben, habe ich mich für die Lösung x2go entschieden.

Also wurden die Pakete openssh-server und x2goserver installiert.

Auf dem Client-PC, mit dem ich dann hierauf zugreifen möchte, wird x2goclient installiert.

Dazu gibt es genug Anleitungen im Internet oder auf https://x2go.org.

Startup-Datei von IceWM anpassen

In der startup-Datei von IceWM habe ich noch folgende Anpassungen vorgenommen:

  • Den Start von nitrogen habe ich auskommentiert
  • In der letzten Zeile habe ich xfce4-power-manager & eingefügt, damit dieser bei einem notwendigen Neustart direkt aktiviert wird

Domain auf Cloudflare einrichten und Tunnel erstellen

In diesem Video wird gezeigt und erklärt, wie Cloudflare eingerichtet wird. Bitte beachtet, dass ich apache2 zum Testen NICHT installiert habe, da ich nicht weiß, wie es sich auf runtipi auswirken könnte.

runtipi installieren

Und in diesem Video wird gezeigt und erklärt, wie runtipi installiert wird.

Auch hier bitte Folgendes beachten:

  • Zu Beginn stellt Lioh eine Dyndns-Wildcart-Möglichkeit vor. Diese benötige ich nicht, da ja ein Cloudflare-Tunnel vorhanden ist.
  • Ab Min 5:50 zeigt Lioh die Bearbeitung der Einstellungen des tipi. Diese brauchte ich nicht vorzunehmen - außer die Sprache auf Deutsch.
  • Nach der Installation wurde mir direkt ein Link mit einer internen IP angezeigt (wie im Video). Darüber habe ich den ersten Seitenaufruf gemacht und meine Zugangsdaten angelegt.

Die externe URL, die ich bei Cloudflare eingerichtet habe, war sofort aufrufbar und hat mir den Login-Screen von Runtipi angezeigt.

Ich hoffe, ich konnte euch eine Anregung zum Einsatz der beiden Technologien in Kombination geben.

Ich bin auf jeden Fall begeistert.


Titelbild: https://runtipi.io/\_next/static/media/hero-dark.680dee5f.png

Quellen:

Tags

Homeserver, Webhosting, Docker, Cloudflare, Runtipi

Apu
Geschrieben von Apu am 8. Mai 2025 um 13:33

Hast du keine Bedenken wegen der Abwärme, wenn du den Laptop geschlossen hälst?

Olaf
Geschrieben von Olaf am 9. Mai 2025 um 06:17

Die Abwärme geht über den Lüfter nach hinten raus. Zur Not kann ich den Deckel wieder aufklappen. Der Laptop steht jederzeit zugänglich und in einem kühlen Raum.

Phillip
Geschrieben von Phillip am 8. Mai 2025 um 16:41

"Den Start von nitrogen habe ich auskommentiert" Was ist "nitrogen" und warum auskommentiert? https://www.nitrogen.org/ ?

Vermute ich richtig, dass man ein Konto bei Cloudflare und eine Art Coudflare-Client benötigt? Der gesamte Traffic läuft dann immer über Cloudflare, oder? SSL/TLS Zertifikate (HTTPS) funktionieren aus dem internen Netz heraus problemlos und verhindern das Mitlesen von Cloudflare?

Art
Geschrieben von Art am 8. Mai 2025 um 17:45

Dazu müssest Du mMn explizit E2EE für Deine Services verwenden. Cloudflare agiert als Reverse Proxy und standardmäßig werden HTTPS Verbindungen bei Cloudflare aufgebrochen/enden dort -> Du kannst die Verbindung Deiner Services zu Cloudflare zusätzlich verschlüsseln, um den Datentransport gegen Dritte zu sichern.

Wenn Du Cloudflare nicht vertraust (ich halte die für ein NSA Vehikel), solltest Du Cloudflare nicht nutzen. Selbst mit E2EE bieten Metadaten viel Einsicht (wer, wann, wohin/mit wem, etc.). Alternativen wären selfhosted Traefik Proxy, Nginx Proxy Manager, etc.

Olaf
Geschrieben von Olaf am 9. Mai 2025 um 06:23

Danke für deine Erklärung.

Olaf
Geschrieben von Olaf am 9. Mai 2025 um 06:15

Nitrogen ist für die Darstellung von Desktop Hintergrundbildern (https://packages.debian.org/bookworm/nitrogen) und beliebt bei Windowmanagern wie IceWM.

In der verwendeten Distribution Tuxwiz (spacefun.ch) wird standardmäßig nitrogen gestartet in der sogenannten startup-Datei. Und damit das nicht startet, habe ich mit einem #-Zeichen auskommemtiert. Kannst dir ja mal https://ice-wm.org/ an.

Im verlinkten Video wird gezeigt, wie ein cloudflare-tunnel erstellt wird, auch der verwendete client dazu.

Und eine weitere Frage hat Art bereits beantwortet.

kamome
Geschrieben von kamome am 8. Mai 2025 um 20:56

Danke für den Einblick!

> ob das ständige Aufladen des Akkus diesen beschädigen

Das kann ich in Bezug auf Dein Gerät nicht sagen, aber ein längerfristiges Nicht-Aufladen (also eine Tiefenentladung) schadet auf jeden Fall (zerstört).

Olaf
Geschrieben von Olaf am 9. Mai 2025 um 06:19

Ich kann ja den Akku hin und wieder mal einbauen und aufladen lassen. Bei einem Kernelupdate starte ich den Laptop sowieso neu.