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>