Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions docs/run/running-a-hyperbeam-node.md
Original file line number Diff line number Diff line change
Expand Up @@ -248,3 +248,4 @@ To stop the node running *within the `rebar3 shell`*, press `Ctrl+C` twice or us
* **Configure Your Node:** Deep dive into [configuration options](./configuring-your-machine.md).
* **TEE Nodes:** Learn about running nodes in [Trusted Execution Environments](./tee-nodes.md) for enhanced security.
* **Routers:** Understand how to configure and run a [router node](./joining-running-a-router.md).
* **Scheduler Device:** Learn how to [set up a Scheduler device](./setting-up-a-scheduler-device.md) to announce your node as an AO scheduler.
46 changes: 46 additions & 0 deletions docs/run/setting-up-a-scheduler-device.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
# Setting Up a Scheduler Device


This guide is for operators who are already running a production HyperBEAM node and want to register it as an AO scheduler on the network publicly.

## Prerequisites

If you started your node using the default device list in [hb_opts.erl](../../src/hb_opts.erl), both `~location@1.0` and `~scheduler@1.0` are already onboarded — no additional configuration is required.

You must set `host` in your `config.flat` so the `~location@1.0` device announces the correct public URL for your node.

Example:

```erlang
host = "your-node-domain.example.com".
```

## Announcing Your Scheduler Location

To register your node as a scheduler on the AO network, you need to call the `~location@1.0` device endpoint **from the node host itself** (i.e. run the command on the same machine running HyperBEAM).

Run the following curl command on your node host (Linux/Mac):

```bash
curl -sS -v http://127.0.0.1:8734/~location@1.0/node
```

### What Success Looks Like

A successful call returns an **HTTP 200 OK** response from `~location@1.0` in the node logs and will give you some details in your local console. This publishes a transaction to the network announcing your scheduler location.

## Emitted Transaction Tags

The published transaction should include tags similar to the following:

```
data-Protocol: ao
variant: ao.N.1
type: location
url: https://your-node-domain.example.com
nonce: <nonce-value>
time-to-live: TTL
codec-device: Codec
```

> **Note:** The `url` field should point to your node's publicly accessible address (for example, `https://push.forward.computer`). The `nonce` value is generated automatically.
Loading