Install
Server (public host)
curl -fsSL https://potaru.okonomi.cloud/server/install.sh | sudo bash
This downloads the release binary (SHA-256 verified) and places it on your
PATH via the binary's own exec-install. It does not set up a systemd
service yet (that's a planned addition) — run it yourself:
sudo potaru-server run --self-signed --state-dir /var/lib/potaru \
--tunnel-addr :7000 --https-addr :8443
Visit https://<your-host>:8443 (click through the self-signed cert
warning) and create the admin account from the setup screen. Create an
enrollment token from the dashboard, or headlessly:
potaru-server create-enrollment-token --label "my-laptop" --max-uses 1 --ttl 24h
Agent (any target machine)
Linux / macOS:
curl -fsSL https://potaru.okonomi.cloud/client/install.sh | bash
No root needed — this just places the binary on your PATH.
Windows (PowerShell):
irm https://potaru.okonomi.cloud/client/install.ps1 | iex
No admin rights needed — places potaru.exe in %LOCALAPPDATA%\potaru and
adds it to your user PATH.
Then enroll and run (same on every platform):
potaru init --server <server-host>:7000 --token <the-enrollment-token>
potaru run
The agent shows up online in the dashboard within a few seconds. run needs
to keep running in the foreground — wire it into your own service manager
(systemd, launchd, a process supervisor) to keep it alive across reboots. A
built-in service install (like the sibling products offer) is a planned
addition.
Docker
See Run with Docker below — no install script needed, pull the images directly.
Run with Docker
services:
server:
image: okonomigmbh/potaru:latest
restart: unless-stopped
ports:
- "8443:8443"
- "7000:7000"
environment:
POTARU_SELF_SIGNED: "true"
volumes:
- potaru-state:/var/lib/potaru
client:
image: okonomigmbh/potaru-client:latest
restart: unless-stopped
environment:
POTARU_SERVER: example.com:7000
POTARU_TOKEN: pt_enroll_... # enrollment token (first run only)
POTARU_INSECURE: "true" # dev only: server is using --self-signed
volumes:
- potaru-client-config:/home/potaru/.config/potaru
volumes:
potaru-state:
potaru-client-config:
<!-- SYNC: this block mirrors deploy/docker/compose.yaml in the potaru repo. If you change ports, env vars, or image tags there, update this too. -->
The agent's own permanent secret is minted on first connect and persisted to the mounted volume, so a container restart reconnects without needing the enrollment token again.