Sign inSign up

rialonetwork/rialo-local-network

By rialonetwork

•Updated 10 months ago

Local development cluster for https://rialo.io

Image
0

8.8K

rialonetwork/rialo-local-network repository overview

⁠Rialo Local Network in a Container

A quick, reproducible way to start a local Rialo network is by using this Docker image.

  • Architectures: linux/amd64 and linux/arm64
  • Default user in container: ubuntu (non-root)
  • Includes: Local network starter + Rialo CLI (/usr/local/bin/rialo)
  • Default RPC: 4104

⁠Tags

We keep the latest tag rolling and pointing to the latest version of the image.


⁠Quick start

Start a local cluster with sensible defaults:

docker run --rm --name rialo-local-network -p 4104:4104 rialonetwork/rialo-local-network:latest

By default, the container generates keys, configuration, and logs under /tmp/rialo-local-network inside the container.

⁠Simple health check

If you publish the default RPC (-p 4104:4104), you can verify that the network runs with:

$ curl http://127.0.0.1:4104/health
"ok"
⁠Persist or inspect generated files

Mount a host directory to /tmp/rialo-local-network to view or keep the generated config/keys/logs:

# Create a temporary writable directory on the host
HOST_TMP_DIR="$(mktemp -d "${TMPDIR:-/tmp}/rialo-local-network.XXXXXXXX")"

docker run --rm --name rialo-local-network   -v "${HOST_TMP_DIR}:/tmp/rialo-local-network"   rialonetwork/rialo-local-network:latest

You can now inspect files on the host under $HOST_TMP_DIR.


⁠Exposed ports (defaults)

The default setup (committee_size=4, full_node_count=2) exposes:

  • Standard Oracle: 3230 (HTTPS), 3231 (metrics)
  • Node P2P: 4000..4005
  • Node RPC: 4100..4105
  • State sync (validators): 4200..4203
  • Node metrics: 9184..9189

The RPC is served by full nodes; in the default setup it's bound at 4104.

Publish only what you need, for example:

docker run --rm --name rialo-local-network \
    -p 4104:4104 \
    -p 9188:9188 \
    my-local-network
    rialonetwork/rialo-local-network:latest

⁠Using the Rialo CLI (containerized)

This image bundles the Rialo CLI at /usr/local/bin/rialo.
There are two zero-setup ways to use it against the running cluster:

This requires no port publishing and works everywhere (Linux, macOS, Windows):

Example:

# Assuming the cluster is running as --name rialo-local-network
docker run -it --rm --network=container:rialo-local-network \
    --entrypoint /usr/local/bin/rialo \
    my-local-network \
    client balance # or other arguments for the `rialo` binary
⁠Option B — Exec the CLI inside the running cluster container

Alternatively, just run the CLI directly in the already running container:

docker exec -it rialo-local-network /usr/local/bin/rialo client balance
⁠Option C — (Advanced) Publish RPC to the host and run the CLI anywhere

If you expose the default RPC (-p 4104:4104), you can run the CLI from any environment that can reach localhost:4104:

# Publish default RPC
docker run --rm --name rialo-local-network -p 4104:4104 rialonetwork/rialo-local-network:latest

# Then, from another container using the default bridge network:
docker run --rm  --add-host=host.docker.internal:host-gateway \
    --entrypoint /usr/local/bin/rialo \
    my-local-network \
    --url http://host.docker.internal:4104 \
    client balance

⁠Configuration

Rialo CLI follows the same layered config behavior in the container as outside it.

  • Default user-specific config dir: ~/.rialo (which is /home/ubuntu/.rialo in this image)

To override, set RIALO_CONFIG_PATH and/or mount a volume:

# Use a host directory as the user-specific Rialo configuration inside the container
mkdir -p rialo-config-docker

docker run -it --rm --network=container:rialo-local-network \
    --entrypoint /usr/local/bin/rialo \
    -e RIALO_CONFIG_PATH=/app/.rialo \
    -v "$(pwd)/rialo-config-docker:/app/.rialo" \
    rialonetwork/rialo-local-network:latest \
    client balance

⁠Troubleshooting

  • Ports in use
    Map different host ports with -p HOST:CONTAINER or stop conflicting services.
  • Config not found
    If you set RIALO_CONFIG_PATH, ensure the directory exists and is mounted with correct permissions.
  • File permissions
    If you mount host directories, ensure your host user can read the generated files (the container runs as a non-root ubuntu user with UID 1000).

⁠What’s included

  • rialo-local-network (entrypoint)
  • Rialo node binaries for the local cluster
  • Rialo CLI (/usr/local/bin/rialo) for convenient client operations

A separate rialonetwork/rialo-cli CLI-only image (CLI-only) is also provided.

⁠License & Support

  • Use at your own risk for local development and testing.
  • For questions or issues, please open a discussion where you distribute this image or reach out through your usual Rialo channels.

Tag summary

Content type

Image

Digest

sha256:ea0118007…

Size

73.1 MB

Last updated

10 months ago

docker pull rialonetwork/rialo-local-network