Punkt „How to SSH into Umbrel on a Raspberry Pi“
Ich denke, dass dein User falsch ist. Der „Username“, den du in Umbrel eingibst, ist lediglich für Dich und die Anzeige. Der Username im Betriebssystem ist umbrel
.
Danke @surenic für deine Ausführungen. Das mit dem SSH Zugang hat sich geklärt. Man muss bei PuTTY unter Host-Name die IP der Node eintragen und Port 22 wählen. Dann als User Name: „umbrel“ und als nächstes das Passwort, welches man auch für den Webzugang benötigt. Soweit habe ich das gestern Abend noch rausgefunden und getestet.
Da ich seit rund 10 Jahren meinen eigenen WordPress/Woocommerce Webshop betreibe, der bei Strato gehostet ist, habe ich mir dort eine Subdomain eingerichtet. Soweit so gut. Dann habe ich ein Portweiterleitung über meine Friz.Box eingerichtet. Auch das hat geklappt. Wenn ich also die Subdomain aufrufe, lande ich auf der Anmeldeseite von Umbrel. Nun sind eigentlich nur noch zwei Dinge zu klären. 1. Wie gelange ich auf die BTCPay Seite und 2. wie bekomme ich SSL Zertifikat.
Daran arbeite ich aktuell noch. Aber ich schaue mir auch mal deinen Lösungsvorschläge an.
Wenn ich das richtig verstehe, hast du eine Subdomain bei strato an deine Fritzbox geleitet (CNAME?) und in der fritzbox eine HTTP/HTTPS Port 80/443 Weiterleitung an deine Node eingerichtet, oder?
Dann könntest du einfach Port 3003 ebenfalls an deine Node weiterleiten und du würdest unter subdomain.xyzdomain.de:3003 deine BTCPay-Oberfläche erreichen.
Aaaaaber nicht mit korrektem SSL-Zertifikat. Beim Versuch mir ein solches direkt auf den RaspiBlitz zu installieren, hab ich mir regelmäßig den internen WebServer (nginx) zerschossen. Ich vermute dass das bei umbrel ähnlich automatisiert abläuft. Falls du selbst schauen willst, wären die Stichwörter ‚letsencrypt, certbot, acme‘ hier was du googlen kannst. Du musst ein Zertifikat erstellen und das in den WebServer von umbrel einbinden.
Der Vorteil bei Caddy als voranstehenden WebServer auf nem VPS ist, dass er sich sämtliche SSL-Zertifikate selbst erstellt und aktuell hält. So muss man nicht an der Node-Struktur direkt rumpfuschen.
Weiterhin kannst du definieren, dass beim Aufruf von subdomainXYZ.meine.domain direkt intern der Port aufgegriffen wird:
subdomainXYZ.meine.domain {
reverse_proxy * {
to 10.8.0.2:3003
}
So würde eine solche Caddy-Conf-File aussehen, mit dem Resultat, dass du beliebig viele Subdomain DIREKT auf den jeweiligen Service lenken kannst. Sieht 1. schöner aus, wenn du bspw. https://btcpay.meine.domain benutzen kannst und beugt 2. Firewall-Problemen vor, wenn du die Services zum Beispiel aus nem Firmennetzwerk oder sonstigen gesperrten Netzwerken erreichen möchtest
Aber vllt findest du ja was
Yes - genau so habe ich es gemacht und wollte es auch so umsetzen. Ich habe diese Anleitung genommen:Installing the NGINX reverse proxy with an SSL certificate for Umbrel / BTCPay Server
Scheitere aber gerade an Schritt 4 - oder besser gesagt einem Teil davon. Der Typ hat die SSH Befehle nicht sauber getrennt, und mit den Ports die er verwendet komme ich aktuell noch nicht wirklich klar.
Hallo @surenic,
ich habe jetzt einige Tage versucht meinen BTCPay Server via Subdomain öffentlich zugänglich zu machen. In der Fritz.Box habe ich einen entsprechende Umleitung eingefügt. Soweit so gut. Offensichtlich funktioniert die Umleitung auf den Port: 3003 - allerdings nur unter https. Und hier scheitert das ganz letztlich. Auch wenn im Internet immer wieder beschrieben wird, das man das via NGINX reverse proxy with an SSL certificate hinbekommt, aber es steht nichts davon drin, das NGINX keine SSL Zertifikat auf Subdomains vergibt. Also endet das ganze Prozedere in einer Fehlermeldung. Was mich jetzt wider zu deinem Beitrag führt.
Also habe ich mir Caddy einmal angeschaut. Bin aber hoffnungslos überfordert damit. Vielleicht beschäftige ich mich auch schon zu lange damit und den Kopf dermaßen voll mit Server Regeln und allem was ich bislang gelesen und ausprobiert habe, das da momentan nix mehr geht. Kannst du mir dabei helfen?
Hier noch mal meine Voraussetzungen. Ich habe eine laufende Umbrel BTC und Lightning Node. Alles ist synchronisiert und kann intern über den Browser (Brave) aufgerufen und gestartet werden. Das ganze läuft auf einem Raspberry PI Modell 4 mit 8 GB Ram und einer 1 TB SSD Festplatte. Verpackt ist das ganze im Argon One Gehäuse inkl. Festplatten Erweiterung. Angeschlossen ist die Node an meine Fritz.Box 6490 Cable via LAN Kabel. Aktuell hat Umbrel eine Feste IP.
Die Subdomain auf Strato lautet btcpay-server.meinedomain.de und kann unter http: aufgerufen werden. Sie wird aktuell über die Fritz.Box allerdings nur auf die Umbrel Anmeldeseite geleitet. Wie bereits gesagt, geht eine Umleitung auf den Port: 3003 bei der Fritz.Box offenbar nur in Kombination mit https: - eine andere Möglichkeit habe ich nicht gefunden. Ich hatte evtl. in Erwägung gezogen das Wircard-Zertifikat von Strato, welches auch auf Sudmonains SSL Zertifikate vergibt frei zu schalten. Dann las ich aber, das auf interne Umleitungen das SSL Zertifikat nicht durchgereicht wird und somit nicht funktioniert.
Also wird das auch nichts. Selbst wenn ich eine Subdomain: btcpay-server.meinedomain.de:3003 anlegen würde, diese mit einem Wircard-Zertifikat zu https mache und dann über CNAME das ganze zu btcpay-server.meinedomain.de auflöse, dann würde das wohl nicht ganz funktionieren. Wie du bereits geschrieben hast - alles steht und fällt mit dem SSL Zertifikat.
Kannst du mich durch die Installation mit Caddy leiten? Serverkonfiguration ist für mich derzeit echt ein rotes Tuch.
Hallo
Ich hab auch mal rumprobiert, um mein LN-Bits auf https erreichbar zu machen. Schlussendlich hab ich es geschafft mit dieser Anleitung:
Cloudflare richtet alles selber ein, du brauchst nicht mal ne statische IP.
Mein BTC-Pay-Server war zu testzwecken auch mal online mit dieser Variante, dies hat aber den Raspy-CPU an den Anschlag gebracht.
Ich bin mir auch nicht sicher, was Cloudflare für einen Einfluss auf die Node bekommt, wenn man das installiert. Kann ich nicht einschätzen…
Viel Erfolg beim Einrichten, liebe Grüsse
Wiesel
Melde mich bald mal zu Wort. Wochenende ist leider voll kann dann auch halbwegs detailliert schreiben, wie du caddy installierst. Wichtig wäre hierbei ein zweiter Server. RaspberryPi oder was anderes was 24/7 online ist
So, also im Grunde ist das nicht so schwierig. Voraussetzung sollte aber meines Wissens nach wie im letzten Post beschrieben ein zweites Gerät sein. Caddy ist ein WebServer und nimmt daher Port 80 in Beschlag, den umbrel aber für seine Zwecke bereits selbst nutzt. Um also nichts zu zerschießen, schnapp dir ein weiteres Gerät. Auch sei gesagt, dass folgende Befehle unter Ubuntu laufen, ich gehe davon aus, dass es bei einem Raspberry Pi und seinem arm Chip problemlos läuft, dennoch wollte ich das sagen.
Weitere Anmerkung: Sobald caddy läuft, solltest du auf der fritzbox Port 80 und 443 auf die Caddy-Maschine umleiten. Sämtliche Weiterleitung von caddy an die Node erfolgt lokal und bedarf keines weiteren Eingriffes. Caddy wirkt also wie eine Webweiterleitung und baut direkt das SSL Zertifikat mit ein. Man nennt das auch Reverse Proxy (eine von vielen Funktionen von caddy).
Also los geht’s:
Caddy installieren
$ cd ~
$ sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https
$ curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg
$ curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-stable.list
$ sudo apt update
$ sudo apt install caddy
Caddyfile bearbeiten
$ sudo caddy stop
$ sudo nano /etc/caddy/Caddyfile
Im folgenden ein Beipiel für deinen btcpayserver, die lokale IP deiner Node sowie die Domain muss entsprechend eingetragen/angepasst werden:
btcpay-server.meine.domain {
reverse_proxy LOKALEIP:3003 {
header_up X-Forwarded-Host btcpay-server.meine.domain
transport http {
tls_insecure_skip_verify
}
}
}
Strg +, Y, Enter zum speichern und beim nächsten Start (sudo caddy start
) zieht sich Caddy das SSL-Zertifikat und die Durchreichung sollte schon funktionieren.
EDIT:
In diese caddyfile kannst du beliebig viele weitere Weiterleitung eintragen, bspw. lnbits.meine.domain → LOKALEIP:5001, mempool.meine.domain → LOKALEIP:4003, was auch immer. Die Welt steht dir frei. Es ändern sich nur hin und wieder googelbare Extra-Settings die mit eingetragen werden müssen. WIe gesagt muss caddy nicht nur als reverse proxy dienen. Du kannst auch die Weiterleitung auf lokale html-files erzeugen und somit Webpages bauen. Alles denkbar
Ich habe weiter gesucht und war kurz davor endgültig aufzugeben. @Wiesel - deine Methode habe ich mir auch angeschaut. Dabei stieß ich aber auf einen - für mich - sehr beunruhigenden Fakt. In einem Trade wurde sehr ausführlich über Claudflare berichtet. Dabei wurde unter anderem erwähnt, das Claudflare alles was über deren Tunnel geht, mit lesen und auch manipulieren kann. Was bei mir sofort dazu führte, das alle Alarmglocken angingen und ich diese Methode sicherlich nicht verwenden werde.
Aber ich habe dennoch einige Neuigkeiten, die erklären warum meine Installationsanleitung bei mir nicht funktionierte und möglicherweise auch bei anderen nicht funktioniert. Die sowohl einfache als auch eigentlich logische Antwort darauf ist, auf meiner Hauptdomain bei meinem Hoster, liegt ein SSL-Zertifikat meines Hosters. Diese unterstützt jedoch keine Subdomain. Dazu kommt - ich habe bei Strato einen Managed-Server gebucht. Das heißt, ich habe keinen Zugriff auf das Root-Verzeichnis und kann nicht mit SSH darauf zugreifen. Und - letztlich - unterstützt Strato Let’s Encrypt Zertifikate nicht in Verbindung mit Managed-Servern. Deshalb funktioniert die Anleitung nicht, die ich oben in meinem Post mal erwähnt hatte. Das ganze wurde mir von Strato bestätigt, als ich dort anrief um herauszufinden wie ich meine Node konfigurieren muss, damit es funktioniert.
Also - damit es funktioniert, muss ich als erstes ein Wildcard-SSL-Zertifikat buchen. Das muss nicht von Strato kommen - darf aber auch keins sein, welches sich nur per SSH installieren lässt. Strato bietet ein Wildcard-SSL-Zertifikat für eine Hauptdomain und x-beliebige Subdomain, für 72 € pro Jahr an. Wobei die ersten drei Monate aktuell für je 1 € im Angebot sind. Im Vergleich zu anderen Anbietern, durchaus ein fairer Preis, was eine kurze Recherche ergab. Der Vorgang ist recht einfach. 1. Wildcard-SSL-Zertifikat für die Hauptdomain buchen. Dann das vorhandene Zertifikat mit dem Wildcard Zertifikat ersetzen. Einfach durch überschreiben. Dann aktivieren - alles auf der Seite des Hosters. 2. Das Wildcard-Zertifikat auf meiner Node inkl. der notwendigen Parameter installieren. (Da ich kein Linux Nerd bin - habe ich keinen Plan wie das geht.) Das Zertifikat wird in einer Datei ausgeliefert, mit der Endung „pem“. Diese soll sich aber mit einem x-beliebigen Editor öffnen lassen können. 3. Nach erfolgreicher Installation auf der Node, mit den noch fehlenden Schritten der o.g. Installationsanleitung fort fahren.
Im Anschluss daran, sollte der BTCPay Server via https:// aus dem Internet aufrufbar sein. Man kann ja über den Hoster Strato sagen und denken was man will - aber manchmal hat man das Glück und bekommt einen IT Mitarbeiter an die Stippe, der offenbar sein Handwerk beherrscht und Ahnung von der Materie hat. Aber ein wehrmutstropfen hat die ganze trotzdem. Es gibt leider keine Möglichkeit das ganze vor der Buchung des Wildcard-Pakets durch einen Test zu überprüfen. In den sauren Apfel wird man wohl beißen müssen, wenn man mit einer solchen Server Konstellation zutun hat.
Hat jemand einen Plan, wie man das Wildcard-Zertifikat unter Umbrel mit den richtigen Parametern installiert?
Hupps surenic - da haben sich unsere beiden Post wohl überschnitten. Danke für deine Ausführliche Anleitung und die Arbeit die du dir gemacht hast. Das hört sich alles recht gut an, auch wenn ich da aktuell ein paar Schwierigkeiten sehe, die aber nichts mit deinem Vorschlag oder deiner Arbeit als solches zutun haben. Außer vielleicht der zweiten Maschine - wie du es nennst. Die zu beschaffen ist aktuell schon ein Problem. Ersten sind die Dinge extrem teuer geworden und zweitens bekommt man aktuell fast nirgendwo mehr eine.
Sicher ist deine Methode auf Dauer die günstigere - weil nur einmalig anzuschaffen. Aber da ich ich das ganze für mein Geschäft nutzen will, kann ich die Kosten - egal von welcher Seite sie kommen - absetzen. Sollte die Methode die Strato mir empfohlen hat, machbar sein, dann würde ich - so glaube ich - zuerst testen wollen. Hast du einen Plan wie man ein Wildcard-Zertifikat richtig unter Umbrel installiert. Soweit ich weiß, basiert Umbrel OS ja auch auf Ubuntu!?
Nein, das weiß ich nicht und ist auch mit ein Grund, warum ich caddy nutze. Ich habe mir beim Versuch Zertifikate in das bestehende RaspiBlitz-System zu installieren so oft die Node zerschossen, dass ich da frustriert aufgegeben habe. So muss ich nicht am Node-System rumbasteln.
OK - danke für die Info. Dann sollte ich deine Methode vielleicht doch besser anwenden. Kannst du mir eine Auflistung machen, welche techn. Teile ich benötige. Raspberry PI - welches Modell - wieviel Ram - Größe der SD Karte - evtl. eine SSD nötig? LAN Kabel für die Verbindung zur Fritz.Box? Was noch…?
Der Service benötigt kaum Ressourcen, das läuft sicherlich problemlos sogar auf nem Pi Zero. Kein Special RAM, keine SSD, 16GB SD reicht, wirklich Minimum
Hier ist nochmal ein längeres Tutorial zum Aufsetzen auf nem Pi.