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
16 changes: 10 additions & 6 deletions docs/run/running-a-hyperbeam-node.md
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ To successfully build and run a HyperBEAM node, your system needs several softwa
* `git`: Version control for fetching the source code.
* `pkg-config`: Helps find installed libraries during compilation.
* `ncurses-dev` / `ncurses`: Required for some terminal interface elements used by Erlang/OTP.
* `libssl-dev` / `openssl`: Necessary for cryptographic operations and secure connections (HTTPS). You might need to set specific environment variables for `openssl` during Erlang compilation if building from source on macOS.
* `libssl-dev` / `openssl`: Necessary for cryptographic operations and secure connections (HTTPS). You might need to set specific environment variables for `openssl` during Erlang compilation if[...]
* `sudo` (Linux/macOS): Needed for system-level installations.
* `curl`: Used for downloading dependencies or interacting with web services.
* `ca-certificates` (Linux): Required for validating SSL certificates (often handled by the OS on macOS/Windows).
Expand Down Expand Up @@ -84,7 +84,7 @@ Installation methods:
```

=== "Linux / macOS (Direct Download)"
Get the `rebar3` binary from the [official website](https://rebar3.org/). Place the downloaded `rebar3` file in your system's `PATH` (e.g., `/usr/local/bin`) and make it executable (`chmod +x rebar3`).
Get the `rebar3` binary from the [official website](https://rebar3.org/). Place the downloaded `rebar3` file in your system's `PATH` (e.g., `/usr/local/bin`) and make it executable (`chmod +x [...]`

<!-- === "asdf (Recommended)"
If using `asdf`, you can install it via the `rebar` plugin:
Expand Down Expand Up @@ -137,7 +137,7 @@ Before starting a node, ensure you have:
* Installed the [system dependencies](#system-dependencies) mentioned above.
* Cloned the [HyperBEAM repository](https://github.com/permaweb/HyperBEAM) (`git clone ...`).
* Compiled the source code (`rebar3 compile` in the repo directory).
* An Arweave **wallet keyfile** (e.g., generated via [Wander](https://www.wander.app)). The path to this file is typically set via the `hb_key` configuration option (see [Configuring Your HyperBEAM Node](./configuring-your-machine.md)).
* An Arweave **wallet keyfile** (e.g., generated via [Wander](https://www.wander.app)). The path to this file is typically set via the `hb_key` configuration option (see [Configuring Your HyperBEAM [...]

## Starting a Basic Node

Expand All @@ -147,6 +147,9 @@ The simplest way to start a HyperBEAM node for development or testing is using `
rebar3 shell
```

>[!NOTE]
>For current process operations, start HyperBEAM with the <code>genesis_wasm</code> profile by running <code>rebar3 as genesis_wasm shell</code>.

This command:

1. Starts the Erlang Virtual Machine (BEAM) with all HyperBEAM modules loaded.
Expand Down Expand Up @@ -180,7 +183,7 @@ rebar3 as rocksdb, genesis_wasm shell

## Node Configuration

HyperBEAM offers various configuration options (port, key file, data storage, logging, etc.). These are primarily set using a `config.flat` file and can be overridden by environment variables or command-line arguments.
HyperBEAM offers various configuration options (port, key file, data storage, logging, etc.). These are primarily set using a `config.flat` file and can be overridden by environment variables or [...]

See the dedicated [Configuring Your HyperBEAM Node](./configuring-your-machine.md) guide for detailed information on all configuration methods and options.

Expand All @@ -196,7 +199,7 @@ A JSON response containing node information indicates success.

## Running for Production (Mainnet)

While you can connect to the main AO network using the `rebar3 shell` for testing purposes (potentially using specific configurations or helper functions like `hb:start_mainnet/1` if available and applicable), the standard and recommended method for a stable production deployment (like running on the mainnet) is to build and run a **release**.
While you can connect to the main AO network using the `rebar3 shell` for testing purposes (potentially using specific configurations or helper functions like `hb:start_mainnet/1` if available an[...]

**1. Build the Release:**

Expand All @@ -214,7 +217,7 @@ This command compiles the project and packages it along with the Erlang Runtime

**2. Configure the Release:**

Navigate into the release directory (e.g., `cd _build/default/rel/hb`). Ensure you have a correctly configured `config.flat` file here. See the [configuration guide](./configuring-your-machine.md) for details on setting mainnet parameters (port, key file location, store path, specific peers, etc.). Environment variables can also be used to override settings in the release's `config.flat` when starting the node.
Navigate into the release directory (e.g., `cd _build/default/rel/hb`). Ensure you have a correctly configured `config.flat` file here. See the [configuration guide](./configuring-your-machine.md[...]

**3. Start the Node:**

Expand Down Expand Up @@ -248,3 +251,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.
47 changes: 47 additions & 0 deletions docs/run/setting-up-a-scheduler-device.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
# Setting Up a Scheduler Device

> **Note:** When your node launches, it will normally post (announce) its scheduler location automatically. This guide is useful if you need to re-announce the location or manually update the published location data.

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

## 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 -H 'Accept: application/json' 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.
4 changes: 2 additions & 2 deletions docs/theme/templates/base.html
Original file line number Diff line number Diff line change
Expand Up @@ -664,7 +664,7 @@ <h2>
</div>

<a
href="https://cookbook_ao.arweave.net/welcome/ao-core-introduction.html"
href="https://cookbook_ao.arweave.net/welcome/index.html"
>
<button class="main-button">
<svg
Expand Down Expand Up @@ -912,4 +912,4 @@ <h2>
{% endfor %}
{% endblock %}
</body>
</html>
</html>
Loading