jumpgate
  1. Docs
  2. Durable jobs
  3. Who drives

Who drives

One controller holds a job's lease; the others watch.

How you got here: Desktop app What a box needs 1. Create the controller key 2. Pair a box How a job behaves

Show previous steps 5
Install 1
  1. Desktop app

    Download the desktop app for your OS and open it.

    The macOS zip holds Jumpgate.app and Jumpgate Terminal.app; Windows has jumpgate-tray.exe and jumpgate.exe; Linux has install.sh. Every download carries both Linux agents.

    Show image
    The app panel's Home tab: the gateway running two networks.
    Illustration from the jumpgate.app demo, with made-up boxes; not a screenshot of the app.
Getting started 3
  1. What a box needs

    A Debian or Ubuntu box with systemd, reachable as root over SSH.

    Setup needs root (or passwordless sudo with --sudo) and checks Linux, systemd and disk first. The node itself runs as an unprivileged account.

  2. 1. Create the controller key

    Create the key that signs every command to your boxes.

    jumpgate keys init stores it in the Keychain, Credential Manager, Secret Service, 1Password or an owner-only file. It never leaves your computer.

    Show image
    The Signers screen: this controller's address and key store, and the boxes it signs for.
    The TUI, from its test snapshot; empty rows removed.
  3. 2. Pair a box

    Install the agent on a box and confirm its host key.

    You confirmed the box's fingerprint, and jumpgate installed jumpgate-agent.service and a restricted tunnel user. The box now takes only signed commands.

    Show image
    Adding a box: the TUI shows the host key's fingerprint and asks you to type yes.
    The TUI, from its test snapshot; empty rows removed.
Durable jobs 1
  1. How a job behaves

    A job runs fixed steps on the box and asks when it must.

    Each step runs as a transient systemd unit, so a running step outlives the TUI; the agent keeps a signed log, and the box refuses service actions until the job ends.

    Show image
    The jobs inbox: a job on box-a waits for an answer at step 2 of 3.
    The TUI, from its test snapshot; empty rows removed.

One controller drives a job at a time, by holding its lease; every other controller only watches. A lease silent for 90 seconds, by the box's clock, is stale. Taking over a stale lease held by another controller is your decision: use jumpgate jobs adopt, or adopt in the jobs inbox.