Share the local console on a team server
vulkro-sf serve normally runs the local console on your own machine, on loopback. You can also run one console on a shared server so a small team opens it in their browsers.
export VULKRO_SERVE_TOKEN="$(openssl rand -hex 24)" # keep it in your secret store
export VULKRO_SF_BIND=127.0.0.1 # the reverse proxy reaches it on loopback
export VULKRO_SF_PORT=8923
export VULKRO_SF_DATA_DIR=/var/lib/vulkro-sf
vulkro-sf serve --no-browser
It is the same vulkro-sf binary: it sends no source, metadata or findings anywhere. Set VULKRO_OFFLINE=1 to block every outbound call. Install it with the normal installer and run it from your service manager (for example systemd) as a non-root user that owns the data directory.
Settings
| Variable | Default | Purpose |
|---|---|---|
VULKRO_SERVE_TOKEN | A new random token per start | The access token. Required for any non-loopback bind. Sign in with it on the console page, or open <console address>/?token=<token>. |
VULKRO_SF_BIND | 127.0.0.1 | Bind address. 0.0.0.0 exposes it on the network, and is refused without a token. |
VULKRO_SF_PORT | A free port | Fixed port. --port overrides it. |
VULKRO_SF_DATA_DIR | ~/.vulkro-sf/data | SQLite database and state. Put it on a backed-up disk. |
VULKRO_SERVE_ALLOWED_HOSTS | none | Extra hosts (for example sf.internal:8443) whose Origin is accepted, for a proxy that rewrites Host. |
A browser that presents the token gets an HttpOnly, SameSite=Strict session cookie; scripts send Authorization: Bearer <token>. No token gets HTTP 401, a request from another web page gets 403. Rotating the token signs everyone out.
Reverse proxy
Keep the console on loopback or an internal network. Put a reverse proxy in front that listens on 443, terminates TLS, can add your own single sign-on, and forwards to the console. Publish only the proxy.
Limits
- One shared state. Everyone with the token sees the same projects, scans and triage. There are no per-user accounts.
- Point in time. Scans run when someone runs them; live-org reads go through the
sfCLI on the server. - You run it. Upgrade with
vulkro-sf updateand restart the service.
For per-user roles, single sign-on and scheduled scans of every org, see Vulkro Cloud or Vulkro Cloud on your own servers.
Exit codes
0 served and shut down cleanly; 2 error (bad bind address, a network bind without a token, port in use, data directory not writable).