ablative docs
↑↓ move↵ openesc close
Stack Notebook ablative.com.au

Install and serve

Install the binary from crates.io, validate a configuration, serve it and read the health page.

Open .md

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

  1. Install the binary. The liminal-cli crate on crates.io builds the liminal binary.

    cargo install liminal-cli --locked
    liminal --help
  2. 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
  3. 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
  4. Serve. The binary with a configuration and no command serves in the foreground.

    liminal --config liminal.toml
  5. 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.