Skip to main content

Installation

Orbinum nodes run from a pre-built Docker image published to GitHub Container Registry. You do not compile from source — pull the image and run it.

Which image

ghcr.io/orbinum/node:testnet-latest — the current testnet image. It already bundles the ZK circuit artifacts, so there is nothing else to download.


Before you start

Sizing depends on which role you are running — see Running a Node for the table. Everything below is the same for all of them.


1. Install Docker

curl -fsSL https://get.docker.com | sh
sudo usermod -aG docker $USER
sudo apt-get install -y docker-compose-plugin

Log out and back in for the group change to take effect, then verify:

docker --version
docker compose version

2. Authenticate with GHCR

The node image is private — log in to GitHub Container Registry with a personal access token that has read:packages scope:

echo <GITHUB_TOKEN> | docker login ghcr.io -u <github_user> --password-stdin

3. Clone the Repository

The compose files and the chain spec live in the node-deploy repo:

git clone https://github.com/orbinum/node-deploy.git
cd node-deploy/testnet/rpc # or testnet/validator

What's here:

node-deploy/
├── common/ # Shared build assets
│ ├── Dockerfile # Builds the orbinum-node binary
│ ├── Caddy.Dockerfile # Custom Caddy build (rate-limit plugin)
│ └── Caddyfile # RPC reverse proxy: TLS, CORS, rate limits
├── testnet/
│ ├── chainspec/ # testnet-spec.json (genesis + bootNodes)
│ ├── validator/ # docker-compose.yml + .env.example
│ ├── rpc/ # Public RPC (+ Caddy, Watchtower)
│ └── indexer-rpc/ # Loopback-only archive node
└── mainnet/ # Same structure, spec pending

4. Pull the Image

docker compose pull

This downloads ghcr.io/orbinum/node:testnet-latest. No build step, no circuit artifact download — the image is ready to run.


Verification

Run a throwaway node in development mode to confirm the image works:

docker run --rm ghcr.io/orbinum/node:testnet-latest --dev --tmp

If you see blocks being produced (🏁 Block #1, 🏁 Block #2), the image is healthy. Stop it with Ctrl+C.

Check the version:

docker run --rm ghcr.io/orbinum/node:testnet-latest --version

Next Steps