Was ist Inyoka?¶
Das gesamte ubuntuusers.de-Portal läuft auf einer Python-Web-Anwendung namens Inyoka. Es unterteilt sich in die folgenden unterschiedlichen Komponenten: Forum, Wiki, News, Planet und Paste-Service.
Idee der Entwicklung war es, eine Portalsoftware aus einem Guss zu haben. So haben wir über die gesamte Plattform hinweg ein Single-Sign-On verfügbar und auch die Syntax lässt sich problemlos zwischen den unterschiedlichen Bestandteilen übertragen.
Inyoka baut zu großen Teilen auf dem Python-Web-Framework Django 🇬🇧 auf. Eine unvollständige Übersicht mit verwendeten Programmen und Bibliotheken findet sich unter ubuntuusers.de/inyoka.
Wen die Entstehungsgeschichte hinter Inyoka interessiert, findet im Artikel von vor 10 Jahren ein wenig mehr Hintergrund. Seitdem hat sich aber auch einiges getan:
Redis wird als Cache (vor allem für gerenderte Artikel oder Beiträge) verwendet statt alles in der Datenbank zu speichern.
PostgreSQL ersetzt MySQL als Datenbank.
Ubuntuusers.de erhielt einen neuen optischen Auftritt.
Inyoka wurde von Python 2 auf Python 3 portiert.
Standardmäßig verwendet ubuntuusers.de Docker 🇬🇧.
Warum OSS?¶
Manche werden sich noch dran erinnern: Schon 2008 wurde versprochen Inyoka als Open-Source-Software (OSS) zu veröffentlichen. Darauf folgte 2014 auch ein Artikel, warum es länger dauert und Mitwirkende gesucht werden.
Warum gerade jetzt?¶
Inyoka ist in einem Zustand, wo man es unserer Meinung nach veröffentlichen kann. Der Zustand ist nicht perfekt, aber „perfekt“ wird es vermutlich auch nie sein. Dennoch passiert auch immer ein wenig was – selbst wenn es für viele teils nicht sichtbar ist. (Am Schluss haben wir für diese Erkenntnis „nur mal“ 10 Jahre gebraucht 😬.)
Von anderen Ideen wie einem anpassbaren Theme haben wir uns auch schlicht verabschiedet. Hier wurde daran gearbeitet und auch ein Stand für alle zugänglich gemacht. Mittlerweile arbeitet aber niemand mehr daran. Das git-Repository ist archiviert.
Zuletzt ist 2024 generell ein „Jubiläumsjahr“: Die Ankündigung zur Mitarbeit an Inyoka für OSS ist mittlerweile 10 Jahre alt. Außerdem wird ubuntuusers.de 20 Jahre alt – wie Ubuntu selbst. Welche bessere Gelegenheit kann es geben, um dann die Veröffentlichung von Inyoka als OSS zu feiern?
Inyoka ist OSS¶
Ab sofort steht Inyoka auf GitHub öffentlich zur Verfügung. Dort findet ihr das Hauptprojekt Inyoka. Das dort enthaltene Theme basiert auf dem, das ubuntuusers.de verwendet, wurde aber für die OSS-Veröffentlichung etwas bereinigt.
Somit sind alle wichtigen Bausteine für neue Mitwirkende öffentlich. Die Lizenz von Inyoka ist weiterhin die BSD 3-Clause-Lizenz 🇬🇧. Wir laden alle ein, sich Inyoka anzuschauen und zu verbessern!
Ich möchte Inyoka ausprobieren!¶
Die Dokumentation von Inyoka findet sich ebenfalls auf GitHub. Inyoka teilt sich dabei auf mehrerer Repositories auf:
Inyoka, wo sich der Python-Teil befindet
und docker-setup, um Inyoka mit Docker auszuführen
Der einfachste Weg Inyoka auszuprobieren oder daran zu basteln, führt dabei über Docker. Die README im docker-setup erklärt die Schritte im Detail. (Alle Daten werden damit in Docker-Volumes gespeichert. Der Docker-Setup bringt zum Beispiel eine eigene PostgreSQL-Datenbank mit.)
Die Struktur von Inyoka und Theme sollte es konzeptionell einfacher machen, ein eigenes Theme zu verwenden oder das Bestehende an die eigenen Bedürfnisse anzupassen.
Wie kann man mithelfen?¶
Idealerweise ist man direkt in der Lage, Fehler im Code von Inyoka auszubessern. Pull Requests auf Github sind willkommen. Dafür sind aber Kenntnisse in Python, JavaScript, HTML/Jinja oder CSS nötig.
Es muss aber nicht immer Code sein. Auch Verbesserungen an der Dokumentation sind gerne gesehen.
Teilweise hilft es auch schon, ein Issue zu eröffnen, damit andere über Fehler Bescheid wissen. Alternativ kann auch schon eine Reaktion hilfreich sein; beispielsweise dass das Problem im Issue mittlerweile schon behoben ist.