Eine Domain auf der Synology zu Hause hosten

  • Vom Datengrab zum Server: Warum sich ein Synology NAS (wie die DS 923+) als kostengünstige und private Alternative zu Google Photos & Co. lohnt
  • Docker & Apps: Mit dem Container Manager Tools wie WordPress, PiHole oder Zeiterfassung direkt zu Hause hosten
  • Erreichbarkeit: Der Weg von der DynDNS-Adresse zur eigenen Domain
  • Die A-Record-Hürde: Mit deSec.io und einem kleinen Shell-Script die wechselnde IP-Adresse des Heimanschlusses in den Griff kriegen
  • Automatisierung: Ein Blick auf mein GitHub-Script, das dein DNS-Update vollautomatisch übernimmt

Vor zwei Jahren habe ich mir nach vielen Jahren wieder ein NAS zugelegt, die Wahl fiel auf die Synology DS 923+1, weil ich gerne einen einigermaßen fähigen Prozessor haben wollte und die Möglichkeit, von den typischerweise kläglichen RAM-Ausstattungen noch zu upgraden. Spätestens mit Kind werden die Foto- und Heimvideo-Mengen so unglaublich groß, dass man schnell bei den großen Cloud-Providern in einen monatlichen Tarif von >10 Euro rutscht. Dafür kann man dann gerne auch die eigene Cloud zu Hause 24/7 laufen lassen.

Na klar, wenn die Anschaffungspreise mit rein rechnet, den Aufwand für Pflege, Konfiguration und Backups ja dann überlegt man sich schon, ob 10 Euro für Apple oder Google Photos nicht gut investiertes Geld sind. Auf der anderen Seite hat man mit der Kiste auf dem Schrank zu Hause auf einmal nicht nur eine große Netzwerkplatte für alle Fotos, sondern auch einen einigermaßen potenten Server rumstehen.

Mehr als nur eine Festplatte mit LAN-Kabel

Der AMD Ryzen-Prozessor (und wahrscheinlich alle Prozessoren in allen NAS auf dem Markt) ist natürlich jetzt nicht für hoch-rechenintensive Serverlasten ausgelegt, wie sie zum Beispiel bei AI-Workloads wie dem Betrieb von OpenClaw anfallen. Aber für das ein oder andere Open-Source-Tool, das man schon immer mal ausprobieren wollte, eignet sich die Hardware ganz hervorragend.

Mit der Zeit habe ich einen gewissen Ehrgeiz darin entwickelt, Anwendungsfälle zu identifizieren, für die ich bislang Cloud-SaaS-Lösungen von Firmen wie Apple oder Google in Anspruch genommen und gegebenenfalls bezahlt habe, und herauszufinden, wie ich die durch Softwarepakete auf der „Heimcloud“ ersetzen kann. Die offiziellen Apps aus dem Synology-Store bringen dafür schon eine ganze Reihe an Funktionalitäten mit: Foto-Verwaltung, Mail-Server, VPN-Client, einen iCloud-Drive-Clon und noch vieles mehr.

Und da Diskstation Manager (DSM), das Betriebssystem des NAS, eine Linux-Variante ist, sind die Möglichkeiten noch weit vielfältiger. Denn auf dem System kann man ohne Probleme Docker-Container deployen. Mit dem Container Manager gibt es sogar eine offizielle Synology-App, die für das Verwalten von Projekten sogar noch direkt eine Benutzeroberfläche mitbringt.

Projekte und Funktionen, die ich auf der Synology umgesetzt habe oder noch umsetzen will, in einer Mindmap.
Projektübersicht meiner Synology-Projekte (umgesetzt und geplant) als Mindmap in meinen Obsidian-Notizen

So hoste ich beispielsweise meinen eigenen Bookmark-Manager, ein PiHole und eine Webanwendung zur Zeiterfassung, die ich täglich nutze und auf die mittlerweile sogar Anwender aus dem Freundeskreis zugreifen. Auch mit dabei: zwei WordPress-Installationen. Die Site, die du gerade liest, wird über meine Synology ausgespielt. Und dann liegt da noch meine Portfolio-Website für die freiberufliche Arbeit.

Nach Hause telefonieren

Klingt also ganz gut, den eigenen Server zu Hause zu haben. Allerdings kriegt man in diesem Land als Privatkunde schon lange keine feste IP-Adresse mehr zugewiesen. Du sollst gefälligst konsumieren, Knecht! Deswegen ja auch immer noch die Unsitte, Internetanschlüsse asymmetrisch, also mit mehr Down- als Upload anzubieten. Technisch gibt es dafür, gerade bei moderneren Übertragungstechnologien, schon lange keinen Grund mehr.

Nun wechselt also die Adresse meines Heimservers etwa alle 24 Stunden. Das Problem ist altbekannt und vielfach gelöst, nämlich über ein dynamisches DNS. Das ist ein Drittanbieterservice, der dafür sorgt, dass sich ein Heimserver immer mal melden kann, wenn sich seine IP-Adresse ändert und die neue dann beim Service in eine Art Telefonbuch einträgt. Die Dyn-DNS-Adresse2 ist dann menschenlesbar, hat z.B. die Form meinserver.synology.me und leitet die Anfragen dann zuverlässig an die eigentliche, sich ändernde Adresse weiter.

Wie man an meinem Beispiel sieht, bietet Synology selbst diesen Service an, und ein Account kommt auch for free mit dem NAS. Das reicht, um die Kiste easy zu erreichen, entweder eben über die Synology.me oder Quickconnect.to Adresse, oder man wird fancy und schaltet seine eigene Domain so auf, dass man auch auf dem Heimserver landet.

Custom Domains auf der Synology

Nennt man eine Domain sein Eigen, z.B. meinname.de, kann man bei seinem DNS-Provider Subdomains, also beispielsweise blog.meinname.de über einen sogenannten CNAME-Eintrag auf die dynamische DNS-Adresse der Synology zeigen lassen. Denn der CNAME-Eintrag ist dafür da, einen Alias zu vergeben. Und das kann eben auch der Aliasname sein, hinter dem die sich dynamisch ändernde IP des NAS verbirgt (oder, wie im folgenden Beispiel, auch eine ganz andere Domain – blog.kopenetz.de führt dich zu kopinion.de).

Einige CNAME DNS-Records für Subdomains
Einige CNAME DNS-Records für Subdomains

Auf der Synology ist das Gegenstück der sogenannte Reverse Proxy, also eine Komponente, die (sofern der Router zu Hause entsprechend konfiguriert ist und die Requests an das NAS weiterleitet) schaut, welche Subdomain da aus dem Web angefragt wird und an den entsprechenden Service oder Docker-Container weiterleitet. So landet jede Anfrage aus dem Screenshot oben zwar immer bei meinem NAS, aber dort wird noch einmal unterschieden, welche Software-Komponente dann auf die Anfrage antwortet.

Das Problem mit den A-Records

So weit so einfach. Wäre da nicht die Beschränkung, dass der Adresseintrag für die Domain selbst, also z.B. kopenetz.de ein A-Record sein muss und kein CNAME sein darf. Irgendwo muss also auch mal eine „echte“ Adresse stehen. Und da beginnen die Probleme: Denn wenn sich die IP-Adresse zu Hause alle Nase lang ändert, muss auch der Eintrag im „Telefonbuch“, also im DNS-System entsprechend angepasst werden. Das wiederum hat zwei Bedingungen: Der DNS Eintrag muss sich von außen entsprechend anpassen lassen, und das sollte irgendwie automatisch vonstatten gehen (niemand will sich alle 24 Stunden im Portal einloggen müssen und manuell IP-Adressen updaten).

Zu Problem 1: Meine Domain liegt bei Domainfactory. Dort kann man im Portal händisch DNS-Records verändern, aber einen API-Endpunkt dafür stellen die nicht zur Verfügung. Nach einigem Suchen bin ich auf den DNS Provider deSec.io gestoßen, der genau dies aber sehr wohl tut. Das ist allerdings kein Registrar, man kann und muss also gar nicht die Domain dorthin „umziehen“. Stattdessen kann man im Portal seines Domainhosters einfach konfigurieren, dass alle Anfragen zur Adresse der eigenen Domain bitte nicht mehr von den eigenen Servern, sondern von deSec beantwortet werden mögen.

Einstellung im Domainfactory-Portal, die alternative Nameserver für die Domain konfiguriert.
Einstellung für Alternative DNS-Server im Domainfactory-Portal

Für das zweite Problem habe ich ein Shell-Script geschrieben und hier auf GitHub gestellt. Es checkt, ob sich die externe IP-Adresse geändert hat. Ist das der Fall ändert das Script über die deSec-API automatisch für alle hinterlegten Domains den DNS-Eintrag. Das funktioniert natürlich auch für IPv6 (also den AAAA-Record).

Da die Synology ja nunmal ein Linux ist, hat sie auch eine Crontab, in der periodisch auszuführende Services hinterlegt werden können. Dort kann man das Update-Script dann hinterlegen – das geht sogar über den DSM-Task Scheduler in der Benutzeroberfläche. Oder eben klassisch übers Terminal.

GitHub Page des Scripts für dynamisches DNS Update.
Das Update-Script steht auf GitHub. Feel free to use, comment, contribute.

Bei mir checkt das Script alle 5 Minuten, ob sich was an der IP geändert hat. Wenn nicht, passiert nichts. Wenn doch, werden die DNS-Einträge automatisch aktualisiert und meine Websites sind unter ihren Domains wieder erreichbar. Vielleicht hat ja jemand von euch ein ähnliches Szenario und findet das kleine Stück Software und diese Anleitung hilfreich.

Für mich war es auf jeden Fall eine interessante Abendbeschäftigung, bei der ich an vielen verschiedenen Themen, für die ich mich interessiere, aber für die ich normalerweise keine Zeit habe, vorbeikam. Von DNS-Records über Portfreigaben und Reverse Proxies bis hin zu automatisierten Shell-Scripten.

Notizen

  1. Übrigens probiere ich hier gerade Affiliate-Links von Amazon aus, wenn du also ein NAS oder etwas anderes für dieses Setup kaufen möchtest, dann tue das gerne über die Links auf der Seite
  2. Dyndns.org war mal der bekannteste und eigentlich namensgebende Service für diese Technik. Das Tempo-Taschentuch unter den dynamischen DNS. Beim Nachschauen habe ich gerade festgestellt, dass das wohl zu Oracle gehört mittlerweile. Oder war das schon immer so?

Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert