Voraussetzungen
-
Linux: Radicle ist nicht mit Windows kompatibel
Software:
Folgende Software muss auf Linux installiert sein:
-
curl
-
git -OpenSSH Server
Unter Ubuntu oder Debian Linux kann die fehlende software mit diesem Befehl installiert werden:
sudo apt install curl git openssh-server -y
Radicle Setup
Radicle installieren
Radicle kann mit folgendem Befehl auf Linux installiert werden:
curl -sSf https://radicle.xyz/install | sh
Nun mit folgendem Befehl authentifizieren:
rad auth
Benutzername und Passwort sind frei wählbar. Sie gelten nur lokal. Nicht vergessen, das Passwort zu hinterlegen!
Nun wird überprüft, ob radicle richtig läuft:
rad self
Der Output sollte in etwa so aussehen:
Alias paxel
DID did:key:z6Mkhp7VUnuufpvuQ3PdysShAjL86VDRUpPpkesqiysDBGs9
└╴Node ID (NID) z6Mkhp7VUnuufpvuQ3PdysShAjL86VDRUpPpkesqiysDBGs9
SSH running (3817)
├╴Key (hash) SHA256:YCmRe6BkDOp45lYg0m5DeYxgRcPKftQZb4RmQD1nkjQ
└╴Key (full) ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIO9xo9DHlsZJeZWnZaaawsnKFjcQxN4LQ…
Home /home/paxel/.radicle
├╴Config /home/paxel/.radicle/config.json
├╴Storage /home/paxel/.radicle/storage
├╴Keys /home/paxel/.radicle/keys
└╴Node /home/paxel/.radicle/node
Falls SSH nicht den Status "running" hat oder die ID in Klammern nicht angezeigt wird, kann dies mit folgendem Befehl behoben werden:
eval "$(ssh-agent -s)"
Radicle konfigurieren
Die Konfiguration ist als json in folgendem Ordner abgelegt:
~/.radicle/config.json
"~" steht hier für das Benutzer-Verzeichnis. Es verweist auf /home/%Username% und %username% ist der Name des eingeloggten Benutzers.
Das json kann mit folgendem Befehl geöffnet werden:
nano ~/.radicle/config.json
Folgende Einträge müssen befüllt werden:
-
node:listen
-
externalAddresses
-
seedingPolicy:default
node:listen muss alle Ports auflisten, auf die radicle für pull requests hören soll (die müssen mit dem Port-Forwarding in der Firewall abgestimmt werden). Sie haben die Form "0.0.0.0:<PORT>"
externalAddresses listet alle Adressen, an denen dieser Radicle Server erreichbar ist. Sie haben die Form: "<DOMAIN>:<PORT>" also z.b. "osisaftp.no-ip.com:1234". Ebenso ist "<IP>:<PORT>" möglich.
seedingPolicy:Default ist standardmässig "allow". Wenn der Wert auf "block" geändert, werden nur Repositories geteilt, die explizit auf allow gesetzt werden.
Ein Beispiel ist im in hier im Repository in radicle/config.json abgelegt.
Nodes miteinander verbinden
Jeder Computer mit radicle hat eine Node ID und eine DID, sie können mit folgendem Befehl abgeholt werden:
rad self
Die Node ID ist mit "Node ID (NID)" angeschrieben und die DID ist als "DID" angeschrieben
Wenn Computer A sich mit Computer B verbinden will, um dort privaterepositoreis zu pullen muss auf Computer A die Verbindung zu Computer B hergestellt werden mit folgendem Befehl:
rad node connect <NID Computer B>@<ExternalAddress Computer B>
Also z.B.
rad node connect z6M...hA@osisaftp.no-ip.com:1234
Zusätzlich muss im Private Repository auf Computer B der Computer A als "Delegate" hinterlegt werden. Dafür werden folgende zwei Befehele im radicle rpository ausgeführt:
rad id update --title "Updated Delegates" --delegate <DID Computer A>
rad id update --title "Updated Allowlist" --allow <DID Computer A>
Also z.B.
rad id update --title "Updated Delegates" --delegate did:key:z6Mkh...
rad id update --title "Updated Allowlist" --allow did:key:z6Mkh...
Mit folgendem Befehl kann ein Delegate entfernt werden
rad id update --title "Removed Delegate" --rescind did:key:z6Mkh...
Node clonen
Wenn alles eingerichtet ist, kann mit folgendem Befehl eine Node geklont werden:
rad clone <Repository ID>
Alternativ kann der Seed angegeben werden (wohher gepullt werden soll):
rad clone <Repository ID> --seed <NID des Computers, von dem gepullt werden soll>