Before you begin
Have a Rust toolchain and a Lys network to enrol in. The configuration below points at Lys; a liminal that cannot reach its Lys issuer still serves, but it admits no pass until it can.
Complete the task
-
Install the binary. The
liminal-clicrate on crates.io builds theliminalbinary.cargo install liminal-cli --locked liminal --help -
Write the configuration. Listeners, channels, the store path, the console’s WebSocket and the Lys section are all that a first server needs.
listen_address = "127.0.0.1:7600" health_listen_address = "127.0.0.1:7601" persistence_path = "/var/lib/liminal/store" [[channels]] name = "console.topology" durable = false [[channels]] name = "demo.hello" durable = true [websocket] listen_address = "127.0.0.1:7602" path = "/ws" allowed_origins = ["http://127.0.0.1:5178"] [auth.lys] issuer = "https://lys.example" network_id = "example" live = true [participant] wire_frame_limit = 65536 -
Check it. Nothing is opened and nothing is written; the first refusal is named, or the file is valid.
liminal check --config liminal.toml # liminal.toml: configuration valid -
Serve. The binary with a configuration and no command serves in the foreground.
liminal --config liminal.toml -
Confirm. The health page answers with the server’s status and its links.
curl -s http://127.0.0.1:7601/health
If something goes wrong
A configuration refusal names the field. A store that is locked by another live writer names the lock file: stop the other server. A Lys issuer that cannot be reached is logged at the lys start stage with the time it cost; the server is up without it.
Next step
Hand an agent a seat: The first ticket.