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

1auf jedem Gerät

Den Quellcode holen:

git clone https://github.com/nning/juist
cd juist
2auf einem Gerät mit Debian, Ubuntu oder Fedora

Das Paket bauen und installieren:

make install

Das baut auf Debian und Ubuntu das .deb, auf Fedora das RPM, und installiert es mit sudo.

3auf einem Gerät mit FreeBSD

Als root das Paket bauen und mit pkg installieren, dann den Daemon starten:

gmake install
sysrc juistd_enable=YES && service juistd start

Unter 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:

SystemBauenAuf dem anderen Rechner installieren
Debian, Ubuntumake debsudo apt install ./juist_*.deb
Fedoramake rpmsudo dnf install ./juist-*.rpm
FreeBSDmake pkg-freebsdpkg 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, und juistd, 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 Benutzer juist, nur mit CAP_NET_ADMIN.
  • Firewall-Profile für ufw und firewalld: juist, juist-relay, juist-invite und juist-ingress. Wo ufw oder firewalld läuft, lässt das Paket außerdem den Verkehr auf dem Gerät juist0 herein, 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) und juistd(8).

Ob der Daemon läuft, fragst du ihn so:

nas
$ 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 root

Das 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 Systembenutzer juist, juist-ingress und juist-serve. Auf Debian und Ubuntu entfernt sudo apt purge juist das Verzeichnis /var/lib/juist nur, 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: kept beginnt und aufzählt, was bleibt.
  • Deine Admin-Schlüssel in ~/.config/juist gehö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 install meldet make 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 status meldet juistd not running: Starte ihn mit sudo systemctl enable --now juistd, unter FreeBSD mit service juistd start.
  • journalctl -u juistd zeigt unter Linux das Log des Daemons.