Files
KamadoPool/docker-compose.yml
T
satoshiandClaude Opus 4.6 d48035b366 Phase 1: CKPool build infrastructure
Forks CKPool-solo at upstream commit cfb0f83b (v1.0) via a multi-stage
Docker build, with an env-driven entrypoint that renders ckpool.conf from
a template. The pinned commit already includes every fix referenced in
Bassin issue #29 (workbase_id double increment, extended low-power
timeouts, configurable dropidle, vardiff burst handling).

No patches are applied yet — the patches/ directory holds the workflow
and build wiring so Kamado-specific patches can be added incrementally.

Build is portable across aarch64/x86_64: yasm is intentionally omitted
so CKPool falls back to its C SHA256, and CFLAGS override drops upstream's
default -march=native. Runtime image ships ckpool and ckpmsg for socket
debugging; share logging (-L) is enabled by default.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-12 19:41:13 +03:00

52 lines
1.8 KiB
YAML

# ----------------------------------------------------------------------------
# Kamado Pool — development compose
#
# Spins up ckpool-solo pointing at a bitcoind. Expects bitcoind to be
# reachable at the host/port set in the `env` block below. For local
# testing, run bitcoind on regtest/testnet4 and set these accordingly.
#
# The ckpool socket dir is bind-mounted to ./data/run so the (future)
# kamado-api can talk to it from outside the container during development.
# ----------------------------------------------------------------------------
services:
ckpool:
build:
context: ./ckpool
dockerfile: Dockerfile
container_name: kamado-ckpool
restart: unless-stopped
ports:
- "3333:3333"
volumes:
- ./data/run:/run/ckpool
- ./data/logs:/var/log/ckpool
environment:
# --- Bitcoin Core connection ---
BITCOIN_RPC_HOST: "host.docker.internal"
BITCOIN_RPC_PORT: "48332" # testnet4 default
BITCOIN_RPC_USER: "${BITCOIN_RPC_USER:-kamado}"
BITCOIN_RPC_PASSWORD: "${BITCOIN_RPC_PASSWORD:-kamado}"
BITCOIN_NOTIFY: "true"
# Optional ZMQ for instant block notifications (recommended)
ZMQ_BLOCK: "${ZMQ_BLOCK:-}" # e.g. tcp://host.docker.internal:28332
# --- Pool settings ---
POOL_BTCADDRESS: "${POOL_BTCADDRESS:?set POOL_BTCADDRESS in .env}"
POOL_BTCSIG: "/Kamado Pool dev/"
STRATUM_PORT: "3333"
# --- Difficulty ---
MINDIFF: "1"
STARTDIFF: "1"
MAXDIFF: "0"
# Drop clients idle longer than N seconds (0 = never drop)
DROPIDLE: "0"
# --- Logging ---
SHARE_LOG: "1"
LOGDIR: "/var/log/ckpool"
SOCKET_DIR: "/run/ckpool"
extra_hosts:
# Allow containers to reach bitcoind running on the host
- "host.docker.internal:host-gateway"