Multi-stage Dockerfile clones KamadoPool at a pinned SHA, builds ckpool and kamado-api (with embedded Svelte UI), runtime image supervises both processes via tini + wait -n. Config covers bitcoind mainnet/testnet4 variant, payout address, coinbase tag, vardiff knobs, and log level. Web UI interface only — stratum :3333 requires a router port-forward or simpleproxy workaround because StartOS 0.3.x does not forward raw TCP on LAN. TODO before first build: pin KAMADO_REPO + KAMADO_SHA in the Dockerfile to a pushed commit.
2.2 KiB
Kamado Pool
Kamado is a solo Bitcoin mining pool built on a patched fork of CKPool-solo, with a Go middleware API and a real-time Svelte dashboard. When a miner connected to your Kamado instance solves a block, the full block reward goes to the payout address you configured — no pool fees, no splits, no share accounting.
Setup
- Install Bitcoin Core (mainnet) or Bitcoin Core (testnet4). Kamado supports either as a dependency; pick one in the Kamado config under Bitcoin Core > Type.
- In the Kamado config, set Payout Address to the Bitcoin address that should receive solved block rewards.
- Optionally adjust the Coinbase Tag (default
/Kamado/) and the vardiff parameters. - Start Kamado. Open the web UI from the Services page to watch live hashrate, miners, best shares, and solved blocks.
Connecting miners
Kamado's stratum server listens on TCP port 3333 inside the container. StartOS 0.3.x does not forward raw TCP ports on the LAN interface, so you have two options to reach stratum from miners on your local network:
- Router port-forward: Forward an external port on your router directly to your StartOS server's LAN IP on port 3333 and point miners at that.
- simpleproxy on a second host: Run
simpleproxy -L 3333 -R <startos-lan-ip>:3333on any always-on LAN host and point miners at that host.
Once forwarding is in place, miners connect to stratum+tcp://<forward-host>:3333 with the username set to any label you like (it becomes the worker name in the dashboard) and any password.
Troubleshooting
- No miners appear after connecting: confirm the forward actually reaches the StartOS container —
telnet <forward-host> 3333should connect. Check the Kamado logs in the Services page. - Bitcoin Core RPC errors: make sure Bitcoin Core is fully synced and the RPC dependency was auto-configured (Kamado enables
rpc.enableduring setup). - Best share resets to 0 after a block is found: upstream CKPool zeroes the "current round" best diff on solve. Kamado ships a patch that also exposes the all-time best, so the dashboard has both columns.
Upstream
CKPool-solo by Con Kolivas: https://bitbucket.org/ckolivas/ckpool Kamado source: https://github.com/Relaxo143/KamadoPool