Neues vom Selfhosting

Neues vom Selfhosting

Ein Serverrack und eine schwarze Person mit Laptop steht daneben

Ein Folgeartikel zum Thema Selfhosting, es kommen ja auch Dienste dazu, oder werden ersetzt. Ersetzt wurde aber diesmal nicht nur ein Account durch einen selbst gehosteten Dienst, sondern gleich 3 Dienste konnte ich auch durch einen ersetzen. Legen wir direkt los:

Redlib (Privacy Redditfrontend)

Redliboberfläche, Screenshot

Redlib kann über die Singlebinary laufen oder im Container und bietet im Grunde dasselbe wie Invidious für YouTube. Man kann Subreddits folgen und natürlich auch sämtliche Subreddits lesen. Da ich auf Reddit sowieso nur mitgelesen habe, hat dieser Dienst dafür gesorgt, dass ich meinen Redditaccount löschen konnte. Einstellungen und abonnierte Subreddits werden als Cookie auf dem PC gespeichert. In den Einstellungen findet sich ein langer Link, der alles wiederherstellen kann, sofern man die Cookies mal gelöscht hat. Das speicher ich als Lesezeichen. Man muss nur dran denken das Lesezeichen zu aktualisieren, wenn man neuen Subreddits folgt.

Notizen, Wiki, Dokumentation, Privates

Mittlerweile nutze ich für verschiedene Arten von Notizen 2 Dienste. Zuvor nutzte ich Nextcloud Notizen, jedoch unterstützt das viele Funktionen wie Highlighting nicht. Wenn man schon das grundlegende Markdown kennt, dann sollte das auch überall gleich gut funktionieren. So die Theorie…

Für tägliche Eintragungen nutze ich nun Memos als Art Tagebuch. Es bietet viele Funktionen, eine große Unterstützung vom Markdown-Syntax und ist auch als Notizsystem geeignet. Selbst Spoilertags werden unterstützt. Hashtags sind möglich und schaffen Übersicht, genau wie die Sortierfunktion. Man kann Beispiel alle Notizen mit Codesnippets oder mit Anhang anzeigen lassen. Gleichzeitig bietet es eine Timeline und ermöglicht auch öffentliche Notizen. Es ist aufgebaut wie Mastodon, man trötet sich quasi seine Notizen, sofern man dies wünscht. Im Hintergrund arbeitet es bei mir mit einer Postgres-Datenbank für die Notizen selbst, die Assets landen direkt im S3 Bucket. Zu beachten ist, dass ausschließlich der „vHost-Stil“ von MinIO und Co genutzt wird.

Für meine richtigen Notizen nutzte ich eine Zeit lang Joplin ebenfalls mit Postgres im Hintergrund. S3 wäre möglich, da hatte ich aber extrem wenige Assets drin, sodass sich ein eigener Bucket dafür nicht lohnte. Es lief aber der „richtige“ Joplinserver zur Synchronisation, nicht über Nextcloud oder ähnliches. Warum? Der Syncserver soll wohl deutlich schneller synchronisieren als über WebDAV. Joplin bietet mehrere Notizbücher zur übersichtlichen Sortierung und es synchronisiert sich flink inklusive E2E-Verschlüsselung. Die Markdownunterstützung ist durchweg gut, besser als in Nextcloud, wobei das nicht sonderlich schwer ist. Vorteil gegenüber Memos ist hier auch die Verfügbarkeit von plattformübergreifenden Apps. Alle großen Plattformen werden unterstützt.

Ursprünglich wollte ich TriliumNext verwenden, jedoch bietet das keine Multiuserunterstützung. Wer als Einzelnutzer arbeitet, findet da also eine gute Alternative, mit der auch eine Baumstruktur möglich ist. Jedoch sind keine Apps vorhanden. Es ist der offizielle Nachfolger von dem eingestellten Trillium.

Als Wiki nutzte ich bis dato immer noch WikiJS, Version 3 lässt leider immer noch auf sich warten. WikiJS bietet einen richtig guten WYSIWYG-Editor, aber eben auch einen guten Markdownmodus oder auch HTML. Die aktuelle Version 2.5 bietet auch einen Haufen Funktionen. Es lief auch mittels Postgres und speicherte die Daten sowohl lokal als auch gleichzeitig in einem Bucket. Automatisiert kamen noch Backups obendrauf, die WikiJS sehr schön selbst regelmäßig erstellt. Docmost wollte ich als Alternative benutzen, allerdings wollte das nicht ganz so laufen, weil es anscheinend Probleme mit IPv6 macht.
Bei einem V4-Container startet es einwandfrei, im IPv6-Container oder auf dem Host selbst direkt funktioniert es nicht. Da bekomme ich nur Fehlermeldungen. Ich hatte ja nach anderen Möglichkeiten gesucht, mein Wiki aufzustellen und bin dann auch über die App Affine gestolpert. Allerdings ist Affine wirklich noch in der Alpha-Stage. Es bietet einen ganzen Haufen Funktionen, hat aber auch noch teilweise jede Menge Bugs, ist relativ langsam, weil es ewig braucht, bis es eine Seite mal aufgemacht hat.
Aber dafür hat es eben einen großen Funktionsumfang. Es hat Tags, einen Edgeless-Modus,
in dem man zum Beispiel ein Mindmap noch mit anbringen kann, oder eben auch mit Pfeilen so verknüpfen kann, wie so ein Diagramm bei Draw.io.

Und was nutz’ ich nun, außer Memos für Notizen, Wiki und privatem Zeugs? Dazu komm’ ich gleich. Vorher aber noch das größte Projekt bisher:

Identitäten und SSO

Authentik Screenshot

Das größte Projekt, was ich in letzter Zeit hatte, das war Authentik. Authentik bietet Identitätsmanagement an und verschiedene Authentifizierungsmöglichkeiten wie z.B. OpenID Connect, (OIDC), SAML und noch weitere. Zusätzlich natürlich dann auch noch Single Sign-On, was dann auch wieder eine große Erleichterung ist für Selfhosting und es eröffnet damit auch neue Möglichkeiten. Bestehende Accounts lassen sich von vielen Diensten übernehmen, Paperless, Nextcloud und Immich, um ein paar Beispiele zu nennen. Leider nicht alle Dienste, Synapse und Mastodon wollen eigene Accounts via OIDC.

Wenn man das Prinzip einmal verstanden hat, dann geht das butterweich von der Hand, ist sicherer als Nutzername / Passwort in den Diensten einzeln und deutlich bequemer. Die Dokumentation mit Konfigurationshinweisen ist gut gemacht, Immich hat sogar eine eigene Anleitung auf der Homepage.

Paperless Screenshot mit SSO
Viele Dienste unterstützen auch das Passwort komplett zu deaktivieren, dann bleibt nur SSO

Outline (Wiki, Notizen und mehr)

Outline Screenshot

Aber dadurch, dass Authentik läuft mit Single Sign-On und eben auch OIDC, ist halt der große Vorteil, dass ich auch nun endlich mal Outline nutzen kann. Ich wollte das schon gerne ausprobieren, seit längerer Zeit. Allerdings fehlte mir dazu eben halt dieser Identitätsmanager. Ich wollte da nicht auf Sachen wie Google-Accounts oder GitHub zurückgreifen, ich hätte das schon ganz gerne bei mir. Outline ist in der Lage, Daten direkt in einen Bucket zu schreiben, unter der Haube läuft es mit Valkey (Valkey hat überall bei mir Redis komplett ersetzt) und Postgres, das Übliche also. Allerdings ist die Dokumentation etwas dürftig gewesen. Ich habe dann über ein GitHub-Issue herausgefunden, wie man den Bucket so konfiguriert, dass eben die Profilbilder und so weiter angezeigt werden, aber der Rest privat bleibt. Das ist ein bisschen aufwendiger, also umfangreicher eingestellt, als es zum Beispiel bei Mastodon der Fall ist. Funktioniert jetzt aber auch wunderbar.

Ich hatte kurz umher probiert innerhalb vom Outline und diesen Demo-Seiten, die da vorhanden sind. Ich war extrem schnell begeistert. Also von vornherein, das ging so schön von der Hand mit dem Erstellen. Es versteht Markdown-Syntax, bietet dir aber gleichzeitig noch einen Rich-Text-Editor und man kann sehr, sehr viele Sachen damit umsetzen. Ich war etwas enttäuscht, dass es keine Ordner in dem Sinne gibt, aber man kann in einer Sammlung ein Dokument erstellen und da wieder Unterdokumente. Das ist ja dann auch eine Verschachtelung, also wie ein Ordner, nur das Symbol ist anders. Ich habe zum Sammlungen sind eine Art Notizbücher, da habe ich zum Beispiel jetzt das Notizbuch WIKI und darin befindet sich mein Dokument Homeserver, in diesem wiederum Unterdokumente mit der Grundkonfiguration, Netzwerkkonfiguration und so weiter. Eine Volltextsuche erleichtert das wiederfinden.

Im Gegensatz zu Affine ist auch der Vorteil, dass man nicht immer in diesem Bearbeiten-Modus hängen muss. Bei Outline kann ich sagen, ich möchte jetzt extra auf den Knopf Bearbeiten klicken müssen, damit sich das bearbeiten lässt. So kann ich eben sonst nur bequem Copy und Paste nutzen oder eben einfach lesen. Das hat keinen Tag gedauert, bis ich das Wiki dann umgezogen hatte zu Outline und die Notizen von Joplin eben auch gleich noch mit rüber. Der Testlauf mit Affine war auch damit beendet.

Das Einzige, was ich damit nicht ersetzen möchte, ist mein Tagebuch, also Memos. Das ist mehr für so die privaten Sachen. Ich könnte das mit Outline auch realisieren. Es würde sich nicht viel nehmen, aber ich halte da Memos für die bessere Wahl. Alleine auch schon, weil es anzeigt, wann hast du was geschrieben.
Das sieht man in Outline zum Beispiel nicht und ich kann mir bei Memos einfach irgendwo was anwählen
und Memos unterstützt zum Beispiel auch Spoiler-Tags, das kann Outline nicht. Im Gegensatz zu Wikijs ist in Outline die Oberfläche aber deutlich aufgeräumter, moderner. Es lässt sich auch in der mobilen Variante deutlich angenehmer bedienen als es bei WikiJS je der Fall war. Schade ist, dass sich WikiJS mit der Version 3 schon mehrere Jahre lang Zeit lässt und der Entwickler möchte auch nicht wirklich, dass da die Leute mithelfen. Es wurde so viel Hilfe angeboten oder eben auch Geld, dass er Vollzeit daran arbeiten kann. Er möchte nicht. Ja gut, das ist seine persönliche Entscheidung. Genauso wie das meine Entscheidung ist, eben die Software zu wechseln, was ich ja dann auch gemacht habe.

Outline ist ja auch eine Wiki-Software und die Unterstützung mit SSO, die gefällt mir richtig gut.
Wenn man das natürlich nicht laufen hat, dann wünscht man sich Benutzername und Passwort,
was das ja nicht bietet. Da müsste man zurückgreifen auf GitHub oder Microsoft oder Google als Identitätsprovider. Das sind für mich alles keine Optionen.

Directus (Tabellen, CMS und mehr)

Meine Mangaübersicht als Screenshot in Directus

Directus habe ich mir hochgezimmert, denn mit den Nextcloud Tabellen sollte eine spezielle Ansicht erstellt werden. Ein Vorschaubild wäre schön gewesen, für Rezepte ja ganz praktisch. Man sieht die Donauwelle oder die Brötchen und dann hast du da drunter den Namen und den Link zum Rezept. Eine Übersicht über die vorhandenen Mangas wäre da auch super. Bilder unterstützt Nextcloud Tables nun gar nicht. Allerdings hatte Nextcloud auch jedes Mal einen Fehler beim Erstellen einer anderen Ansicht, selbst wenn es nur eine Filterung nach der letzten Änderung war. Das war mir dann irgendwann zu blöde. Ich wollte da die Spenden, die ich bisher getätigt hatte, sortieren nach der Höhe und selbst das hat er nicht gemacht. Also hatte ich dann erst NocoDB laufen, also No-Code-Database. Allerdings bietet es keine Versionierung und keinen Darkmode. Als Alternative fand ich sehr schnell Directus. Directus hat auch mehr Visualisierungsmöglichkeiten. Es ist möglich einen Verlauf anzuzeigen. Wann ging welche Spende an wen, in welcher Höhe, was war die bisher größte maximale Spende, oder was ist der durchschnittliche Spendenbetrag? Das sind so Dinge, das kann NocoDB nicht.

Whisper (Speech to Text, Transkription)

Whisper WebUI als Screeenshot

Und was ich jetzt absolut geil gefunden habe, womit ich auch diesen Text „schreibe“, ist eine vernünftige Web-Oberfläche für Whisper. Hammer, hammergeil, dass das so gut funktioniert und auch vernünftig aussieht. Für gelegentliche Sprachaufnahmen, so wie ich sie ja habe, ist das schon angenehmer, als ständig zu tippen. Vor allem ein aktives Projekt in diesem Bereich, mit einer angenehmen Oberfläche und das ohne lästige Datenbank oder Aufgeblähtheit. Die Oberfläche erklärt sich auch fast von alleine, so muss das

Sharkey (soziales Netzwerk)

Als Ergänzung zu Mastodon betreibe ich nun auch Sharkey. Die langsame Entwicklung bei Pixelfed fand ich suboptimal, der Entwickler arbeitet leider an zu vielen Baustellen gleichzeitig. Mit Sharkey habe ich eine Alternative gefunden, die Pixelfed sehr gut ersetzen kann und mir mehr Funktionen bietet. Einziger Nachteil: keine vernünftige App (nein, Aria für Android ist nicht vernünftig)

Dennoch kann ich die PWA sehr gut verwenden, wie bei Outline auch, nur bei Outline ist es noch besser angepasst.

Beszel (Servermonitoring)

Ein Screenshot des Dashboards von Beszel

Beszel ist noch relativ neu, aber es ist ein schönes Projekt. Es sammelt Daten, wie CPU, Speicher und RAM-Verbrauch und schiebt es über eine gesicherte SSH-Verbindung zu dem Hub. Auf jedem zu überwachenden Host läuft der Agent, der die Daten sammelt und per Minimal-SSH-Verbindung auf einem anderen Port zu dem Hub sendet. Bei einem Klick auf den Host sieht man noch deutlich mehr Informationen, wie Speicherbelegung, CPU Auslastung, Docker-Statistiken und mehr. Es lassen sich auch Alarme einrichten, beispielsweise ob ein Host down ist, eine gewisse CPU-Auslastung erfolgt, oder oder oder…

Auf lange Sicht mit wachsendem Funktionsumfang wird es wahrscheinlich Uptime-Kuma ersetzen. Uptime-Kuma bietet allerdings mehr Möglichkeiten zum Überwachen, mir reicht es jedoch schlicht, ich muss nicht wissen, ob und wann ein Prozess gefurzt hat.

Ich bin jetzt auch mal gespannt, denn worauf ich mich demnächst freue, ist das nächste größere Update von Lemmy. Da ist auch noch viel in der Mache drin (laut dem Githubverlauf), es sind ja mittlerweile drei Monate, vier Monate bald, wo das letzte Update kam. Aber da scheint auch mehr zu kommen.

Ich hoffe, ich konnte euch ein wenig inspirieren, oder Alternativen zeigen, die ihr vielleicht noch nicht kanntet 🙂

Kommentare sind geschlossen.