Files
KamadoPool-StartOS-0351/manifest.yaml
T
satoshi cb01a16af8 Add reset-latency StartOS action
Calls POST /api/admin/reset-latency to zero the block-update latency
counters. Available while the service is running, no warning needed.
2026-05-11 02:18:48 +03:00

187 lines
4.8 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
mounts:
BACKUP: /mnt/backup
main: /root/.kamado
restore:
type: docker
image: compat
system: true
entrypoint: compat
args:
- duplicity
- restore
- /mnt/backup
- /root/.kamado
mounts:
BACKUP: /mnt/backup
main: /root/.kamado
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"]