Documentation

How to set up juist and use each of its features, step by step.

Basics

How juist works
The ideas the other pages build on, in plain words, from the network and its devices to freshness.
Install
Install juist from its package repository or a release on Debian, Ubuntu, Fedora or FreeBSD, check the download, or build the package from source.
Your first network
Create a network on one device, invite a second one, and check that the two reach each other.
Inviting devices
Add a device to the network with a code or a link, compare the four words, and give it a role as it joins.
Android
Install juist's Android app, join a network with a phone by its QR code or code, reach the devices by name, and see from the phone how each one is reached.

Use cases

Your own services, through the tunnel
Reach your mail server, Nextcloud or Git server under its usual name through the tunnel, while the rest of the internet keeps reaching it as before.
Share from your laptop
Put a file, a directory or the web server you are working on onto the internet in one command, under your laptop's own name, as you would with ngrok or cloudflared.
A homelab on the internet
Make a service on your NAS or home server reachable from the internet by name, behind CGNAT or DS-Lite, without forwarding a port on your router.
Tools for members alone
Run a wiki, a dashboard or another internal tool under a real name with a real certificate that only members of your network can open.
Your home LAN from anywhere
Reach the printer, the router's web interface or the cameras at home from anywhere, although they run no juist, through one member at home.
Safe on public Wi-Fi
In a café, a hotel or on a train, send your internet traffic and DNS through your own VPS or your connection at home, so the Wi-Fi sees only encrypted traffic.
Servers without open SSH
Close port 22 to the internet and reach your servers by ssh through the tunnel, by name, from the devices you allow.
From locked-down networks
Reach your network from a hotel, company or school network that lets nothing out but HTTPS, through a relay on port 443 and, where there is one, the company's proxy.
A game server for friends
Run a game server at home and let friends play on it under a name of yours, without opening a port on your router, through an ingress or straight through the tunnel.
An app in a container
Make an app in Docker or Podman a device of its own in your network, through a juist container that shares its network namespace, with its own addresses and its own place in the access policy.

Everyday use

Status and devices
See whether a device is connected, what needs attention, which devices are in the network, and every change made to it.
Managing without sudo
Name the local user who manages a device, so that juist commands run without sudo.
Names
Reach devices by name instead of address, and have public names lead to a member through the tunnel.
Removing a device
Take a device out of the network on every device, and know how soon each one drops it.
Updating juist
Install a new release on every device, and move the network to a new schema once all of them run it.

Admins and networks

Several admins
Add admins and admin keys, set how many must approve a change, and approve the changes that wait for you.
Several networks
Put one device in several networks at the same time, and tell juist which one a command is for.
Renaming and renumbering
Give the network or a device another name, move the devices' IPv4 addresses, or end the network, on all devices at the same time.
Access policy
Decide which devices may connect to which and on what ports, which exit nodes and subnets each may use, and keep the rest of the network apart.
Keys
Give a device new keys, start a device over, deal with a lost device, back up admin keys, and know what cannot be undone.

Routing traffic

Exit nodes
Send a device's internet traffic through another member of the network, and let a member carry it for the others.
Subnet routers
Reach the LAN behind one member, such as a printer at home, from every device in the network.
Multicast
Programs that find each other by multicast on a LAN, such as printers, media servers and LAN games, find the members of your network the same way.
Relays and ports
Give the network a relay for devices that cannot reach each other, open the right ports, and run without public helpers.
HTTPS only
Reach your network from a hotel, company or school network that lets nothing out but HTTPS, through your relays on port 443, and through a proxy if there is one.
Publishing services
Make a service on one of your devices, such as a NAS at home, reachable from the internet by name.
Service members
Publish a server you do not trust inside your network, through a separate juistd that no device accepts connections from.
Members-only names
A published name with a real certificate that only members of the network can open.
TCP services
Publish a game server or another service without TLS on its own port of every ingress.
Sharing
Share a file, a directory or a local web server on the internet right away, under the device's own name.

Design

Architecture
How juist is built, layer by layer, in what sense it is zero trust, and what it takes from WireGuard and Tailscale.
Compared with others
How juist differs from other mesh VPNs, with a central server and without one, and when one of them fits better.
Security
What juist trusts and what it does not, where the keys live, and which weaknesses it accepts on purpose.
Quality assurance
How juist checks agent-written code, what the tests establish, and where the evidence stops.

Help

Troubleshooting
What juist health says when something is wrong, what it means, and the command that fixes it.
Commands
Every juist command with its arguments and options, as its own help gives them.