The backup only covered /root/.kamado (DB, config, TLS certs) but missed /root/.ckpool which holds miner/worker state, pool status, and ckpool logs. Without it a restore would lose all per-user and per-worker statistics.
191 lines
4.9 KiB
YAML
191 lines
4.9 KiB
YAML
id: kamado-pool
|
|
title: "Kamado Pool"
|
|
version: 0.1.0
|
|
release-notes: |
|
|
Initial StartOS 0.3.5.1 packaging for Kamado Pool — a modern solo
|
|
Bitcoin mining pool built on a patched fork of CKPool-solo with a
|
|
Go middleware API and Svelte real-time dashboard.
|
|
license: gpl-3.0
|
|
wrapper-repo: "https://github.com/Relaxo143/KamadoPool-StartOS"
|
|
upstream-repo: "https://github.com/Relaxo143/KamadoPool"
|
|
support-site: "https://github.com/Relaxo143/KamadoPool/issues"
|
|
marketing-site: "https://github.com/Relaxo143/KamadoPool"
|
|
donation-url: ~
|
|
build: ["make"]
|
|
description:
|
|
short: "Modern solo Bitcoin mining pool with real-time dashboard"
|
|
long: |
|
|
Kamado Pool is a solo Bitcoin mining pool built on a patched fork
|
|
of CKPool-solo. Unlike wrappers that read periodic stats files,
|
|
Kamado talks directly to CKPool's Unix socket API to expose real-
|
|
time per-client hashrate, difficulty, hardware detection, full
|
|
block history, and best-share leaderboards (both current round
|
|
and all-time) via a Svelte dashboard with WebSocket push.
|
|
|
|
Stratum listens on port 3333. Because StartOS 0.3.x does not
|
|
forward raw TCP ports on the LAN interface, you must use a
|
|
simpleproxy or router port-forward to reach the stratum endpoint
|
|
from miners on your local network. See instructions.
|
|
|
|
assets:
|
|
license: LICENSE
|
|
icon: icon.png
|
|
instructions: instructions.md
|
|
|
|
main:
|
|
type: docker
|
|
image: main
|
|
entrypoint: docker_entrypoint.sh
|
|
args: []
|
|
mounts:
|
|
main: /root/.kamado
|
|
ckpool: /root/.ckpool
|
|
gpu-acceleration: false
|
|
|
|
hardware-requirements:
|
|
arch:
|
|
- x86_64
|
|
- aarch64
|
|
|
|
health-checks:
|
|
web:
|
|
name: "Web Dashboard"
|
|
success-message: "Kamado dashboard is reachable."
|
|
type: script
|
|
ckpool:
|
|
name: "Stratum Server"
|
|
success-message: "Stratum server is accepting connections."
|
|
type: script
|
|
bitcoin:
|
|
name: "Bitcoin Core RPC"
|
|
success-message: "Connected to Bitcoin Core."
|
|
type: script
|
|
submit-gap:
|
|
name: "Block Submission"
|
|
success-message: "All block submissions confirmed."
|
|
type: script
|
|
|
|
config:
|
|
get:
|
|
type: script
|
|
set:
|
|
type: script
|
|
|
|
properties:
|
|
type: script
|
|
|
|
volumes:
|
|
main:
|
|
type: data
|
|
ckpool:
|
|
type: data
|
|
|
|
interfaces:
|
|
main:
|
|
name: Web Dashboard
|
|
description: "Real-time Kamado Pool dashboard (hashrate, miners, blocks, best shares)."
|
|
tor-config:
|
|
port-mapping:
|
|
80: "8080"
|
|
lan-config:
|
|
443:
|
|
ssl: true
|
|
internal: 8080
|
|
ui: true
|
|
protocols:
|
|
- tcp
|
|
- http
|
|
|
|
dependencies:
|
|
bitcoind:
|
|
version: ">=24.0.0 <30.0.0"
|
|
requirement:
|
|
type: "opt-in"
|
|
how: "Can alternatively use bitcoind-testnet for testnet4 testing."
|
|
description: "Used to submit found blocks and receive new block templates via RPC + ZMQ."
|
|
config:
|
|
check:
|
|
type: script
|
|
auto-configure:
|
|
type: script
|
|
bitcoind-testnet:
|
|
version: ">=24.0.0 <30.0.0"
|
|
requirement:
|
|
type: "opt-in"
|
|
how: "Can alternatively use mainnet bitcoind."
|
|
description: "Testnet4 variant of bitcoind for testing Kamado without real funds."
|
|
config:
|
|
check:
|
|
type: script
|
|
auto-configure:
|
|
type: script
|
|
|
|
backup:
|
|
create:
|
|
type: docker
|
|
image: compat
|
|
system: true
|
|
entrypoint: compat
|
|
args:
|
|
- duplicity
|
|
- create
|
|
- /mnt/backup
|
|
- /root/.kamado
|
|
- /root/.ckpool
|
|
mounts:
|
|
BACKUP: /mnt/backup
|
|
main: /root/.kamado
|
|
ckpool: /root/.ckpool
|
|
restore:
|
|
type: docker
|
|
image: compat
|
|
system: true
|
|
entrypoint: compat
|
|
args:
|
|
- duplicity
|
|
- restore
|
|
- /mnt/backup
|
|
- /root/.kamado
|
|
- /root/.ckpool
|
|
mounts:
|
|
BACKUP: /mnt/backup
|
|
main: /root/.kamado
|
|
ckpool: /root/.ckpool
|
|
|
|
actions:
|
|
stratum-smoke-test:
|
|
name: "Pool Status"
|
|
description: "Displays a full status snapshot: Bitcoin Core sync state, ckpool health, connected miners, hashrate, found blocks, and submit-gap diagnostics."
|
|
warning: ~
|
|
allowed-statuses:
|
|
- running
|
|
implementation:
|
|
type: script
|
|
regen-tls-cert:
|
|
name: "Regenerate TLS Certificate"
|
|
description: "Clears the current stratum TLS certificate so a fresh one is generated on the next service start. Use this to rotate an expired or untrusted certificate."
|
|
warning: "Miners connected via TLS will be disconnected on restart and will need to accept or re-pin the new certificate fingerprint."
|
|
allowed-statuses:
|
|
- running
|
|
- stopped
|
|
implementation:
|
|
type: script
|
|
reset-latency:
|
|
name: "Reset Block Latency"
|
|
description: "Zeroes the block-update latency counters (avg, last, wasted work, block count). Use this after tuning ZMQ or ckpool to start fresh measurements."
|
|
warning: ~
|
|
allowed-statuses:
|
|
- running
|
|
implementation:
|
|
type: script
|
|
|
|
migrations:
|
|
from:
|
|
"*":
|
|
type: script
|
|
args: ["from"]
|
|
to:
|
|
"*":
|
|
type: script
|
|
args: ["to"]
|