Salvium Node in Docker

A minimal Docker setup for running salviumd, ready for p2pool-salvium

What it is

A small, opinionated Docker setup that runs a Salvium full node from the official upstream binaries with sensible defaults. Pruned by default, runs as an unprivileged user, and the ZMQ pub socket is already wired for p2pool-salvium.

  • Uses prebuilt Linux binaries from github.com/salvium/salvium, so build time is seconds.
  • Runtime base: debian:trixie-slim.
  • Container restarts automatically after host reboots (restart: unless-stopped).
  • All daemon tuning lives in a plain salvium.conf on the host.
View on GitLab ↗
Quick start
git clone https://gitlab.com/whiskyrelaxing-group/salvium-node-docker.git cd salvium-node-docker cp .env.example .env docker compose up -d --build

Initial sync of a pruned mainnet node takes a few hours. Verify it's responding with:

curl -s http://127.0.0.1:19089/get_height
Ports at a glance
Port Purpose Default binding Public?
19080P2P0.0.0.0Yes
19081RPC (full)127.0.0.1No
19083ZMQ RPC127.0.0.1No
19084ZMQ pub (P2Pool)127.0.0.1No
19089Restricted RPC127.0.0.1Yes, if opted in

19082 is intentionally left free for salvium-wallet-rpc, which runs as a separate process on a trusted machine.

Pairing with P2Pool

p2pool-salvium runs as a binary on the host (not in a container). Point it at:

RPC http://127.0.0.1:19081 ZMQ pub tcp://127.0.0.1:19084

If P2Pool is on a different LAN host, set RPC_PUBLISH_IP and ZMQ_PUBLISH_IP to 0.0.0.0 in .env. Never expose 19081 to the public internet.

Full documentation lives in the GitLab repository README, covering configuration, capping disk size with XFS, updating, rollback, troubleshooting, and security details.