From 04a8e2d4dca85c40b4fb3741ebb42d39684e8c12 Mon Sep 17 00:00:00 2001 From: satoshi Date: Wed, 22 Apr 2026 21:07:36 +0300 Subject: [PATCH] Move ckpool logs and kamado-api DB to persisted volumes The default LOGDIR and DB_PATH both pointed at ephemeral container paths, so a service restart wiped the pool's users/workers state, its block history, and kamado-api's hashrate chart. - LOGDIR: /var/log/ckpool -> /root/.ckpool/logs (ckpool volume). Persists pool/pool.status, users/, workers/, and daily logs. - DB_PATH: default /var/lib/kamado/kamado.db -> /root/.kamado/data/kamado.db (main volume). Persists blocks, hashrate_samples, and the kv table that holds cumulative pool work. CKPOOL_LOGFILE follows LOGDIR so kamado-api's log-tailer keeps picking up ckpool's block-solve lines. --- docker_entrypoint.sh | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/docker_entrypoint.sh b/docker_entrypoint.sh index 22e3f7a..9deb5a6 100755 --- a/docker_entrypoint.sh +++ b/docker_entrypoint.sh @@ -62,7 +62,10 @@ TLS_PORT=$(q '.tls.port // 3334') # never credits it a satoshi. export POOL_BTCADDRESS="${SELFTEST_ADDRESS}" -export LOGDIR=/var/log/ckpool +# LOGDIR lives on the ckpool data volume so ckpool's own state files +# (users/, workers/, pool/pool.status, daily log files) survive restart. +# SOCKET_DIR is ephemeral — sockets are re-created on each start. +export LOGDIR=/root/.ckpool/logs export SOCKET_DIR=/run/ckpool export BITCOIN_NOTIFY=true # ckpool itself doesn't use ZMQ in this build — zmqblock is stripped @@ -101,9 +104,14 @@ echo "kamado-entrypoint: starting ckpool (solo, ${BITCOIND_VARIANT}) on port ${S /usr/local/bin/ckpool --btcsolo --config "${CONF}" --sockdir "${SOCKET_DIR}" --log-shares & CKPOOL_PID=$! +# DB_PATH must live on the persisted main volume; the default +# /var/lib/kamado/kamado.db is ephemeral container storage. +KAMADO_DATA_DIR=/root/.kamado/data +mkdir -p "${KAMADO_DATA_DIR}" export LISTEN_ADDR=":8080" export CKPOOL_SOCKDIR="${SOCKET_DIR}" export CKPOOL_LOGFILE="${LOGDIR}/ckpool.log" +export DB_PATH="${KAMADO_DATA_DIR}/kamado.db" export BITCOIN_RPC_URL="http://${BITCOIN_RPC_HOST}:${BITCOIN_RPC_PORT}" export POLL_INTERVAL=5s export KAMADO_LOG_LEVEL="${LOG_LEVEL}"