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 migrations: from: "*": type: script args: ["from"] to: "*": type: script args: ["to"]