Docker Deployment¶
Install the wasichain CLI separately as a host binary. The Docker distribution here is for the node services: chaind, admissiond, and gatewayd.
Published images:
ghcr.io/wasichain/wasichain-chaind:<tag>ghcr.io/wasichain/wasichain-admissiond:<tag>ghcr.io/wasichain/wasichain-gatewayd:<tag>
Compose files¶
The chain repository includes Docker Compose configurations under compose/:
| File | Purpose |
|---|---|
docker-compose.yml |
Single-node dev chain |
docker-compose.testnet.yml |
4-node local testnet |
docker-compose.bootstrap.yml |
Bootstrap configuration for initial network setup |
docker-compose.monitoring.yml |
Prometheus + Grafana monitoring stack |
Single-node dev chain¶
# Start
docker compose -f compose/docker-compose.yml up -d --build
# View logs
docker compose -f compose/docker-compose.yml logs -f
# Stop
docker compose -f compose/docker-compose.yml down
Expose these ports in the deployment:
- Gateway: port
8080 - Chain RPC: port
26657 - Admission: port
8081 - Metrics: port
9100
4-node local testnet¶
This starts four validator nodes, each with its own chaind and admissiond instance. Put gatewayd in front of these internal services if you want a single public API surface.
Monitoring¶
Add Prometheus and Grafana to an existing deployment:
Systemd units¶
For bare-metal deployments, create systemd service files for chaind, admissiond, and gatewayd.
# /etc/systemd/system/chaind.service
[Unit]
Description=Wasichain Chain Node
After=network.target
[Service]
Type=simple
ExecStart=/usr/local/bin/chaind --mode consensus --genesis /etc/chain/genesis.toml --config /etc/chain/node.toml
Restart=on-failure
RestartSec=5
User=chain
[Install]
WantedBy=multi-user.target
# /etc/systemd/system/admissiond.service
[Unit]
Description=Wasichain Admission Service
After=network.target chaind.service
[Service]
Type=simple
ExecStart=/usr/local/bin/admissiond --config /etc/chain/admission.toml
Restart=on-failure
RestartSec=5
User=chain
[Install]
WantedBy=multi-user.target
# /etc/systemd/system/gatewayd.service
[Unit]
Description=Wasichain API Gateway
After=network.target chaind.service admissiond.service
[Service]
Type=simple
ExecStart=/usr/local/bin/gatewayd --config /etc/chain/gateway.toml
Restart=on-failure
RestartSec=5
User=chain
[Install]
WantedBy=multi-user.target