diff --git a/docs/guides/deploy-hyperlane-local-agents.mdx b/docs/guides/deploy-hyperlane-local-agents.mdx
index dc92082d..0861ba46 100644
--- a/docs/guides/deploy-hyperlane-local-agents.mdx
+++ b/docs/guides/deploy-hyperlane-local-agents.mdx
@@ -102,7 +102,7 @@ Make sure the validator key corresponds to the address provided when setting up
**Update agent config**
-Unless you are running on Linux, you will also need to update the agent configuration for your network. This is because Docker does not support the [`host` network mode](https://docs.docker.com/network/drivers/host/) on Mac, Windows or Windows Server.
+Unless you are running Docker on Linux, you will also need to update the agent configuration for your network. This is because Docker does not support the [`host` network mode](https://docs.docker.com/network/drivers/host/) on Mac, Windows or Windows Server.
To do this, navigate to the agent-configuration at `$CONFIG_FILES` and replace all instances of "localhost" or "127.0.0.1" in to `host.docker.internal`. For example:
@@ -157,7 +157,25 @@ Hardcoding these paths deduplucates the configuration, making it easier to pass
-****
+
+**Clone and setup**
+
+First, clone the Hyperlane monorepo:
+
+```sh
+git clone git@github.com:hyperlane-xyz/hyperlane-monorepo.git
+```
+
+Then follow the [setup instructions](https://github.com/hyperlane-xyz/hyperlane-monorepo/blob/main/rust/README.md) in the `rust` directory. This should setup `rustup` as well as Rosetta 2 if you are on Apple Silicon.
+
+```sh
+# install rustup
+curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
+
+# (apple silicon only) install rosetta 2
+softwareupdate --install-rosetta --agree-to-license
+```
+
@@ -171,7 +189,7 @@ Now that you understand more about configuring validator arguments, pull the lat
docker pull gcr.io/abacus-labs-dev/hyperlane-agent:main
```
-Finally, run the container:
+Finally, run the validator:
```sh
docker run \
@@ -193,6 +211,8 @@ docker run \
+After following the setup instructions, you should now be able to use `cargo` to run the Validator:
+
```sh
cargo run --bin validator -- \
--db ./hyperlane_db_validator_ \
@@ -202,6 +222,27 @@ cargo run --bin validator -- \
--validator.key
```
+:::note (optional) Run the binary directly
+
+You can alternatively build out the agent:
+
+```sh
+cargo build --release bin validator
+```
+
+And run the binary directly:
+
+```sh
+./target/release/validator \
+ --db ./hyperlane_db_validator_ \
+ --originChainName \
+ --checkpointSyncer.type localStorage \
+ --checkpointSyncer.path $VALIDATOR_SIGNATURES_DIR \
+ --validator.key
+```
+
+:::
+
@@ -227,6 +268,7 @@ There are numerous parameters that validators can be configured with. For this g
| `--relayChains` | Comma separates names of the origin chain and destination chains to relay messages between. E.g. `ethereum,polygon,avalanche`. |
| `--allowLocalCheckpointSyncers` | Allows the relayer to look for validator signatures on the local filesystem. |
| `--defaultSigner.key` | A hexadecimal private key used to sign transactions for all chains. |
+| `--metrics-port` | Optional. The port to expose prometheus metrics on, defaults to `9090`. |
@@ -253,6 +295,22 @@ Hardcoding these paths deduplucates the configuration, making it easier to pass
+
+**Clone and setup**
+
+If you haven't already done so when setting up the validator, clone the Hyperlane monorepo and follow the [setup instructions](https://github.com/hyperlane-xyz/hyperlane-monorepo/blob/main/rust/README.md) in the `rust` directory.
+
+```sh
+# clone hyperlane monorepo
+git clone git@github.com:hyperlane-xyz/hyperlane-monorepo.git
+
+# install rustup
+curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
+
+# (apple silicon only) install rosetta 2
+softwareupdate --install-rosetta --agree-to-license
+```
+
@@ -291,6 +349,8 @@ docker run \
+After following the setup instructions, you should now be able to use `cargo` to run the Relayer:
+
```sh
cargo run --bin relayer -- \
--db ./hyperlane_db_relayer \
@@ -300,6 +360,29 @@ cargo run --bin relayer -- \
--metrics-port 9091
```
+The metrics port is overriden to avoid clashing with the validator.
+
+:::note (optional) Run the binary directly
+
+You can alternatively build out the agent:
+
+```sh
+cargo build --release bin relayer
+```
+
+And run the binary directly:
+
+```sh
+./target/release/relayer \
+ --db ./hyperlane_db_relayer \
+ --relayChains , \
+ --allowLocalCheckpointSyncers true \
+ --defaultSigner.key \
+ --metrics-port 9091
+```
+
+:::
+