Installation
juist wird als Paket deines Systems installiert, auf jedem Gerät, das in ein Netz soll. Das Paket baust du mit einem Befehl aus dem Quellcode.
Worum es geht
juist läuft unter Linux und FreeBSD. Auf Debian und Ubuntu ist es ein .deb,
auf Fedora ein RPM und auf FreeBSD ein pkg-Paket. Fertige Pakete gibt es noch
nicht; du baust das Paket aus dem Quellcode und installierst es dann.
Zum Bauen brauchst du Go 1.26. make holt und verwendet dann selbst go1.26.8,
damit ein Commit auf jedem Rechner zu denselben Bytes wird.
Auf diesem Gerät installieren
Den Quellcode holen:
git clone https://github.com/nning/juist
cd juistDas Paket bauen und installieren:
make installDas baut auf Debian und Ubuntu das .deb, auf Fedora das RPM, und
installiert es mit sudo.
Als root das Paket bauen und mit pkg installieren, dann den Daemon starten:
gmake install
sysrc juistd_enable=YES && service juistd startUnter Linux startet das Paket den Daemon von selbst; unter FreeBSD startest du ihn einmal so wie hier.
Rufst du make install später noch einmal auf, ersetzt der neue Build den
alten, und das Gerät behält seinen Zustand.
Das Paket für einen anderen Rechner bauen
Soll ein Rechner juist nicht selbst bauen, baust du nur das Paket und kopierst es dorthin:
| System | Bauen | Auf dem anderen Rechner installieren |
|---|---|---|
| Debian, Ubuntu | make deb | sudo apt install ./juist_*.deb |
| Fedora | make rpm | sudo dnf install ./juist-*.rpm |
| FreeBSD | make pkg-freebsd | pkg add ./juist-*.pkg |
Die Pakete landen in build/deb, build/rpm/RPMS und build/freebsd.
make deb DEB_ARCH=arm64 baut das .deb für einen anderen Prozessor; mit
armhf und i386 geht es genauso.
Was das Paket mitbringt
juist, den Befehl, undjuistd, den Daemon. Was welches Programm tut, steht unter So funktioniert juist.- Unter Linux den Dienst
juistd, der sofort startet und außerhalb jedes Netzes wartet, bis du eines anlegst oder einem beitrittst. Er läuft als eigener Benutzerjuist, nur mitCAP_NET_ADMIN. - Firewall-Profile für ufw und firewalld:
juist,juist-relay,juist-inviteundjuist-ingress. Wo ufw oder firewalld läuft, lässt das Paket außerdem den Verkehr auf dem Gerätjuist0herein, den das Netz zum Abgleich seines Logs braucht. - Eine polkit-Regel, mit der juistd das DNS des Netzes über systemd-resolved einstellen darf.
- Shell-Vervollständigung für bash, zsh und fish und die Man-Pages
juist(1)undjuistd(8).
Ob der Daemon läuft, fragst du ihn so:
$ juist status
nas · no network
hint: juist join CODE, or juist create
Weiter geht es mit dem ersten Netz.
Deinstallieren
Ist das Gerät in einem Netz, nimm es zuerst heraus, damit das Netz es nicht
weiter führt. Ein Admin ruft dafür auf seinem eigenen Gerät juist remove nas
auf. Dann entfernst du das Paket:
sudo apt remove juist # Debian, Ubuntu
sudo dnf remove juist # Fedora
pkg delete juist # FreeBSD, als rootDas hält jeden juistd an und macht rückgängig, was juist auf dem Rechner
eingerichtet hat. Unter Linux sind das die Firewall-Regel für juist0, eine
Ingress und was juist exit serve geändert hat.
Gut zu wissen
- Unter Linux bleiben die Schlüssel und das Log des Geräts in
/var/lib/juist, ebenso die Systembenutzerjuist,juist-ingressundjuist-serve. Auf Debian und Ubuntu entferntsudo apt purge juistdas Verzeichnis/var/lib/juistnur, wenn es leer ist, und sagt sonst:juist: kept /var/lib/juist, which still holds this device's keys and log. - Unter FreeBSD gibt das Entfernen eine Zeile aus, die mit
juist: keptbeginnt und aufzählt, was bleibt. - Deine Admin-Schlüssel in
~/.config/juistgehören nicht zum Paket. Das Entfernen rührt sie nicht an. - Willst du nur ein Netz verlassen und juist behalten, nimm stattdessen
juist reset. Siehe ein Gerät entfernen.
Wenn etwas nicht klappt
make installmeldetmake install knows apt (Debian, Ubuntu), dnf (Fedora) and pkg (FreeBSD); use make deb, rpm or pkg-freebsd: Dieses System hat keinen der drei. Bau das Paket für eines davon und installiere es dort.juist statusmeldetjuistd not running: Starte ihn mitsudo systemctl enable --now juistd, unter FreeBSD mitservice juistd start.journalctl -u juistdzeigt unter Linux das Log des Daemons.