Reference
paron server bootstrap [OPTIONS]paron server run --data <DIR> --listen <HOST:PORT> [OPTIONS]paron server users list --data <DIR>paron server users lockdown --data <DIR> [--yes]paron server users reset <USERNAME> --data <DIR> [--password-stdin]bootstrapsets up a new installation: the data directory, the administrator and, optionally, the system daemon and its system account.runstarts the server from a data directory thatbootstrapprepared.usersshows and changes the users when no administrator can sign in. See Manage users on the host.
For the options of a command, their environment variables and their defaults, run the command with
--help:
paron server run --helpAn option on the command line takes precedence over its environment variable.
Public URLs
Section titled “Public URLs”--public-url (PARON_PUBLIC_URL) lists the URLs that users open Paron at, separated by commas.
paron server run --data /var/lib/paron --listen 0.0.0.0:8443 \ --public-url https://paron.example.com,https://10.0.0.5:8443- A URL has
https://, a host, and a port if the port is not 443. - The first URL is in the links that Paron makes: the recovery link of a user and the enrollment
token of a machine. Without
--public-url, the first URL ishttps://localhost:<listen port>, and the links work only on the host of Paron. - Paron answers an API request for another host with status 421. The web UI loads, but it shows an error.
- The certificate of Paron covers the host of each URL. See Certificates.
- A passkey works on all the URLs of the same domain. See Sign-in methods.
Network
Section titled “Network”The server uses one address and port for everything.
| Protocol | Use |
|---|---|
| TCP | The web UI and its API over HTTPS, tunnels, and the checks of the certificate authority. |
| UDP | Tunnels over QUIC. A tunnel uses TCP when UDP does not work. |
Two paths need no sign-in:
GET /healthanswers 200 when the server runs.GET /paron-ca.crtgives the certificate authority of Paron.
Paron writes its log to the log system of the daemon manager that starts it:
| Daemon manager | Log |
|---|---|
| systemd | The journal. Each level has its priority, so journalctl -p err shows only the errors. |
| launchd (macOS) | The unified log, with the daemon name as subsystem. |
In all other cases, Paron writes its log to standard error, as text.
Set the level with --log-level or PARON_LOG_LEVEL: error, warn, info, debug or trace.
The default is info. If RUST_LOG has a value, Paron uses it and ignores the level.
Shutdown
Section titled “Shutdown”Paron stops on SIGINT or SIGTERM. On Windows, it stops on Ctrl+C, Ctrl+Break, the close of the console, a system shutdown, or a stop of the service. It waits up to 15 seconds for open requests to complete.
| Event | Exit code |
|---|---|
| The open requests complete | 0 |
| A second stop request arrives | 20 |
| The open requests do not complete in 15 seconds | 30 |
© 2026 Nicola Bovolato. Paron is source-available under the PolyForm Shield License 1.0.0.