GitHub zu Codeberg spiegeln

Im Rahmen digitaler Souveränität ist das Hosten auf GitHub eine zwiespältige Sache. Während die zugrundeliegenden Werkzeuge wie Git frei verfügbar sind, trifft dies auf Plattformen wie GitHub nicht zu.

Allerdings existieren auch Alternativen, wie Codeberg. Dabei handelt es sich um eine gemeinnützige, community-getriebene Plattform für die Entwicklung und das Hosting von Open-Source-Softwareprojekten. Betrieben wird sie vom eingetragenen Verein Codeberg e.V. mit Sitz in Berlin. Die Plattform bietet eine datenschutzfreundliche Alternative zu kommerziellen Diensten wie GitHub und richtet sich an Entwickler:innen, die Wert auf Transparenz, Offenheit und digitale Souveränität legen.

Die Plattform Codeberg

Nun ist ein vollständiger Wechsel für viele Nutzer nicht unbedingt immer möglich. Eine Alternative ist dann unter Umständen die Nutzung zweier Plattformen wie GitHub und Codeberg und eine entsprechende Spiegelung. Die der Codeberg zugrundeliegende Plattform Forgejo beherrscht die Spiegelung von Repositories. Allerdings ist dieses Feature auf der Plattform mit Absicht deaktiviert.

Wer eine solche Synchronisation nutzen möchte, ist damit auf weitere Werkzeuge angewiesen. Eines dieser Werkzeuge ist Gickup. Nach der Installation:

brew install gickup

sollte eine Konfigurationsdatei mit dem Namen conf.yml angelegt werden. Eine Minimalkonfiguration könnte folgendermaßen aussehen:

source:
  github:
    - token: topsecret-github-token
      includeorgs:
        - Entitaet
        - seeseekey
      wiki: true
      issues: true
destination:
  gitea:
    - url: https://codeberg.org/
      token: topsecret-codeberg-token
      createorg: true
      mirror:
        enabled: true

Diese Konfiguration stellt sicher, dass nur gewünschte Organisationen synchronisiert werden und dass Repositories von Organisationen, als solche in Codeberg angelegt werden. Die Token müssen auf GitHub und Codeberg angelegt werden und anschließend in der Konfiguration hinterlegt werden. Für GitHub wird dieses Token in den Einstellungen erzeugt. Hier sollte ein Classic-Token erzeugt werden und die Rechte für repo sollten zugewiesen werden.

Für GitHub werden die repo-Berechtigungen benötigt

Unter Codeberg wird das neue Token ebenfalls in den Einstellungen unter Anwendungen angelegt.

Das Token für Codeberg wird erzeugt

Nachdem die Token in der Konfiguration hinterlegt worden sind, kann der Prozess mittels gickup gestartet werden:

2025-05-20T21:18:50+02:00 INF Reading conf.yml file=conf.yml
2025-05-20T21:18:50+02:00 INF Configuration loaded destinations=1 pairs=1 sources=1
2025-05-20T21:18:50+02:00 INF Backup run starting
2025-05-20T21:18:50+02:00 INF grabbing my repositories stage=github url=https://github.com
2025-05-20T21:19:20+02:00 INF starting backup for https://github.com/Entitaet/autoxylophon.git stage=backup
2025-05-20T21:19:20+02:00 INF mirroring autoxylophon to https://codeberg.org/ stage=gitea url=https://codeberg.org/
2025-05-20T21:19:21+02:00 INF already up-to-date stage=gitea url=https://github.com/Entitaet/autoxylophon.git

Je nach Größe der eigenen Repositories kann die Spiegelung einige Minuten in Anspruch nehmen. Ist eine Aktualisierung gewünscht, so kann der Prozess einfach erneut angestoßen werden. Neben dieser Möglichkeit existieren weitere Möglichkeiten, um eine Spiegelung von Repositories zu Codeberg zu realisieren.

Backupfunktionalität unter Joplin deaktivieren

In den neueren Versionen von Joplin existieren Erweiterungen. Eine diese Erweiterungen dient dem Backup und ist standardmäßig aktiviert. Unschön an dieser Erweiterung ist das sie unter macOS, direkt im Nutzerordner einen Ordner anlegt, welcher den Namen JoplinBackup trägt. In den Einstellungen der Erweiterung kann dieser Ordner geändert werden.

In den Einstellungen kann die Erweiterung deaktiviert werden

Alternativ kann die Erweiterung in den Einstellungen von Joplin komplett deaktiviert werden. Dazu findet sich dort der Punkt Erweiterungen, in welchem die einzelnen Erweiterungen aktiviert bzw. deaktiviert werden können. Anschließend ist ein Neustart der Applikation notwendig.

Selfhosting in fünfter Auflage erschienen

Vor einigen Tagen ist mein Buch Selfhosting: Server aufsetzen und betreiben in der fünften Auflage erschien. Die erste Auflage des Buches erschien im Jahr 2015. Im Gegensatz zu den Vorgängerausgaben, erscheint diese Ausgabe, neben der E-Book-Variante, auch gedruckt als Soft- und Hardcover-Ausgabe. Behandelt wird im Buch der Betrieb eines eigenen Servers mitsamt entsprechender Dienste unter der Nutzung der Linux-Distribution Ubuntu. Neben den bisherigen Inhalten wurde viele Kapitel um entsprechende Hintergründe erweitert.

Selfhosting

Nach einer kurzen Einleitung behandelt das Buch die Beschaffung eines Servers, die anschließende Installation und Grundeinrichtung. Dabei wird auch das Setup von verschlüsselten Servern behandelt. Nach der Vermittlung von Linux– und Netzwerk-Grundlagen, wird anschließend die Einrichtung unterschiedlichster Servertypen, wie Mail-, Game- oder Webserver behandelt. Neben diesen werden Dienste wie Git und XMPP besprochen. In weiteren Abschnitten des Buches wird auf Themen wie das Backup von Servern, die Sicherheit, Wartung und Verwaltung derselben eingegangen.

Die Hard- und Softcover-Ausgaben

Erhältlich ist das Buch als E-Book, sowie in einer Soft- und Hardcover-Variante. Es kann es unter anderem bei Amazon, Beam, Google Play, eBook.de und iTunes bezogen werden. Direkt bestellt werden kann das Buch über den Shop von Tredition.

Backup eines MikroTik-Routers erstellen

Auch wenn sie für die meisten privaten Zwecke wahrscheinlich etwas überkomplex sind, nutze ich gerne Geräte von MikroTik als Router und zum Aufspannen drahtloser Netze. Soll auf einem solchen Gerät ein Backup erstellt werden, so kann dies mit dem Terminal erledigt werden. Dieses kann unter anderem per SSH oder per Winbox aufgerufen werden. Anschließend kann der Befehl für das Backup abgesetzt werden:

/system backup save name=backup-2023-01 password=secretpassword

Hierbei ist zu beachten, das ein Passwort für das Backup gesetzt wird, damit wirklich alle Daten in das entsprechende Backup gepackt werden. Das erfolgreiche Backup wird mit einer Meldung quittiert:

Saving system configuration
Configuration backup saved

Unter Winbox kann die entsprechende Datei dann mit der File List auf den genutzten Rechner heruntergeladen werden.

Über die File List kann der Download durchgeführt werden

Auf dem Terminal können die Dateien mittels des Befehls:

/file print

aufgelistet werden. Soll ein Backup wieder eingespielt werden, muss der Befehl:

/system backup load name=backup-2023-01

genutzt werden. Nach einer Passwortabfrage wird das Backup eingespielt und das Gerät befindet sich auf dem Stand des Backups.

Browser für Restic-Repositories

Für Backups nutze ich gerne Restic. Restic bietet neben dem Backup selbstverständlich auch eine Funktionalität zum Wiederherstellen eines Backups an. Allerdings gibt es mit dem Restic Browser ein grafisches Werkzeug zum Anschauen der durch Restic erstellten Repositorys.

Die Restic-Installation wurde nicht gefunden

Beim Start des Restic Browser kann es vorkommen, das dieser die Restic-Installation nicht findet. Dort muss dann der Pfad manuell definiert werden. Wurde Restic unter macOS, mittels Homebrew installiert, so lautet der Pfad:

/opt/homebrew/bin/restic

Der entsprechende Pfad wird sich leider nicht gemerkt, sodass er beim nächsten Mal wieder eingegeben werden muss. Nachdem die Installation definiert wurde, kann mit der Applikation ein Restic-Repository geöffnet und durchsucht werden.

Die Applikation in Aktion

Ordner als auch Dateien können anschließend über die Oberfläche wieder hergestellt werden. Während dies für lokale Repositorys gut funktioniert, sieht es bei Repositorys welche per SFTP eingebunden werden anders aus. Hier nimmt der Ladevorgang, zur Anzeige der Dateien in einem Snapshot, sehr viel Zeit in Anspruch.

Zu finden ist der Restic Browser auf GitHub. Lizenziert ist er unter der MIT-Lizenz und damit freie Software. Die Releases sind für Linux, macOS und Windows verfügbar.