GoLang Miner management with restful control
Find a file
2026-02-02 06:05:17 +00:00
.claude feat: Rebrand xmrig to miner and vendor XMRig ecosystem 2025-12-30 19:43:02 +00:00
.github docs: Add miner suite documentation and release workflow 2026-01-13 16:46:46 +00:00
.playwright-mcp chore: Remove tracked screenshot (now gitignored) 2025-12-31 07:14:52 +00:00
cmd feat: Add API configuration service and enhance security validation in commands 2025-12-31 17:46:25 +00:00
docs docs: Add comprehensive 109-finding code review from 8 Opus agents 2025-12-31 14:53:08 +00:00
miner docs: Add miner suite documentation and release workflow 2026-01-13 16:46:46 +00:00
pkg Add DispatchUEPS function for packet processing 2026-01-03 16:03:40 +00:00
site-docs feat: Rebrand xmrig to miner and vendor XMRig ecosystem 2025-12-30 19:43:02 +00:00
ui feat: Add API configuration service and enhance security validation in commands 2025-12-31 17:46:25 +00:00
.coderabbit.yaml Complete Go 1.24 package with CLI, tests, and configuration 2025-11-08 16:52:16 +00:00
.gitignore feat(api): Add structured API error responses with codes and suggestions 2025-12-31 09:38:25 +00:00
.goreleaser.yaml feat: Rebrand xmrig to miner and vendor XMRig ecosystem 2025-12-30 19:43:02 +00:00
AUDIT-CONCURRENCY.md feat: Create concurrency audit report 2026-02-02 01:25:43 +00:00
CHANGELOG.md refactor: Add reliability fixes, centralized version fetching, and CHANGELOG 2025-12-31 13:33:42 +00:00
CLAUDE.md feat: Rebrand xmrig to miner and vendor XMRig ecosystem 2025-12-30 19:43:02 +00:00
CODE_OF_CONDUCT.md docs: Add community files and improve onboarding 2025-12-31 10:43:52 +00:00
CONTRIBUTORS.md docs: Add community files and improve onboarding 2025-12-31 10:43:52 +00:00
docker-compose.p2p.yml feat: Rebrand xmrig to miner and vendor XMRig ecosystem 2025-12-30 19:43:02 +00:00
Dockerfile.node feat: Rebrand xmrig to miner and vendor XMRig ecosystem 2025-12-30 19:43:02 +00:00
go.mod feat: Add MCP (Model Context Protocol) server integration 2025-12-31 14:12:44 +00:00
go.sum feat: Add MCP (Model Context Protocol) server integration 2025-12-31 14:12:44 +00:00
LICENSE Complete Go 1.24 package with CLI, tests, and configuration 2025-11-08 16:52:16 +00:00
Makefile docs: Add miner suite documentation and release workflow 2026-01-13 16:46:46 +00:00
mkdocs.yml fix: Address CodeRabbit review findings 2025-12-31 01:28:01 +00:00
openapi-3.json adds miner-cli, a miner management and lifecycle tool 2025-11-09 01:02:31 +00:00
qodana.yaml refactor: Remove unused code and fix nil dereference issues 2025-12-31 09:24:12 +00:00
README.md docs: Add miner suite documentation and release workflow 2026-01-13 16:46:46 +00:00

Mining

CI Release Go Version Angular GoDoc Go Report Card codecov License: EUPL-1.2 Platform Docs

A modern, modular cryptocurrency mining management platform with GPU support, RESTful API, and cross-platform desktop application.

Mining Dashboard

Features

Supported Algorithms

Algorithm Coin CPU GPU (OpenCL) GPU (CUDA)
RandomX Monero (XMR)
KawPow Ravencoin (RVN)
ETChash Ethereum Classic (ETC)
ProgPowZ Zano (ZANO)
Blake3 Decred (DCR)
CryptoNight Various

Core Capabilities

  • Multi-Algorithm Mining: Support for CPU and GPU mining across multiple algorithms
  • Dual Mining: Run CPU and GPU mining simultaneously with separate pools
  • Profile Management: Save and switch between mining configurations
  • Real-time Monitoring: Live hashrate, shares, and performance metrics
  • RESTful API: Full control via HTTP endpoints with Swagger documentation
  • Web Dashboard: Embeddable Angular web component for any application
  • Desktop Application: Native cross-platform app built with Wails v3
  • Mobile Responsive: Touch-friendly UI with drawer navigation
  • Simulation Mode: Test the UI without real mining hardware

Why Mining Platform?

Feature Mining Platform NiceHash HiveOS Manual XMRig
Open Source
No Fees (2%+) ($3/mo)
Multi-Algorithm
GUI Dashboard
Profile Management
Dual Mining
Desktop App
Embeddable Component
Self-Hosted
Simulation Mode

Mining Software

Manages installation and configuration of:

  • XMRig - High-performance CPU/GPU miner (RandomX, CryptoNight)
  • T-Rex - NVIDIA GPU miner (KawPow, Ethash, and more)
  • lolMiner - AMD/NVIDIA GPU miner (Ethash, Beam, Equihash)
  • TT-Miner - NVIDIA GPU miner (Ethash, KawPow, Autolykos2)

Quick Start

Docker (Fastest)

# Run with Docker - no dependencies required
docker run -p 9090:9090 ghcr.io/snider/mining:latest

# Access the dashboard at http://localhost:9090

CLI

# Install
go install github.com/Snider/Mining/cmd/mining@latest

# Start the API server
miner-ctrl serve --host localhost --port 9090

# Or use the interactive shell
miner-ctrl serve

Web Component

<script type="module" src="./mbe-mining-dashboard.js"></script>
<snider-mining api-base-url="http://localhost:9090/api/v1/mining"></snider-mining>

Desktop Application

Download pre-built binaries from Releases or build from source:

cd cmd/desktop/mining-desktop
wails3 build

Architecture

Mining/
├── cmd/
│   ├── mining/              # CLI application (miner-ctrl)
│   └── desktop/             # Wails desktop app
├── pkg/mining/              # Core Go package
│   ├── mining.go            # Interfaces and types
│   ├── manager.go           # Miner lifecycle management
│   ├── service.go           # RESTful API (Gin)
│   └── profile_manager.go   # Profile persistence
├── miner/                   # Standalone C++ mining tools
│   ├── core/                # CPU/GPU miner binary
│   ├── proxy/               # Stratum proxy for farms
│   ├── cuda/                # CUDA plugin for NVIDIA
│   └── README.md            # Miner documentation
└── ui/                      # Angular 20+ web dashboard
    └── src/app/
        ├── components/      # Reusable UI components
        └── pages/           # Route pages

Standalone Miner Tools

The miner/ directory contains standalone C++ mining programs that can be used independently without the GUI:

# Build miner binaries
make build-miner

# Or build individually
make build-miner-core   # CPU/GPU miner
make build-miner-proxy  # Stratum proxy

# Run directly
./miner/core/build/miner -o pool.example.com:3333 -u WALLET -p x
./miner/proxy/build/miner-proxy -o pool.example.com:3333 -b 0.0.0.0:3333

Pre-built binaries are available from Releases. See miner/README.md for full documentation.

API Reference

Base path: /api/v1/mining

Method Endpoint Description
GET /info System info and installed miners
GET /miners List running miners
POST /miners/:name Start a miner
DELETE /miners/:name Stop a miner
GET /miners/:name/stats Get miner statistics
GET /profiles List saved profiles
POST /profiles Create a profile
PUT /profiles/:id Update a profile
DELETE /profiles/:id Delete a profile
POST /miners/:name/install Install miner software

Swagger UI: http://localhost:9090/api/v1/mining/swagger/index.html

Development

Prerequisites

  • Go 1.24+
  • Node.js 20+ (for UI development)
  • CMake 3.21+ (for miner core)
  • OpenCL SDK (for GPU support)

Build Commands

# Go Backend
make build              # Build CLI binary
make test               # Run all tests (Go + C++)
make dev                # Start dev server on :9090

# Miner (C++ Binaries)
make build-miner        # Build miner and proxy
make build-miner-all    # Build and package to dist/miner/

# Frontend
cd ui
npm install
npm run build           # Build web component
npm test                # Run unit tests

# Desktop
cd cmd/desktop/mining-desktop
wails3 build            # Build native app

Configuration

Mining profiles are stored in ~/.config/lethean-desktop/mining_profiles.json

Example profile:

{
  "id": "uuid",
  "name": "My XMR Mining",
  "minerType": "xmrig",
  "config": {
    "pool": "stratum+tcp://pool.supportxmr.com:3333",
    "wallet": "YOUR_WALLET_ADDRESS",
    "algo": "rx/0"
  }
}

Contributing

We welcome contributions! Please read our Code of Conduct and Contributing Guidelines first.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

See CONTRIBUTORS.md for the list of contributors.

License

This project is licensed under the EUPL-1.2 License - see the LICENSE file for details.

Acknowledgments

  • XMRig - High performance miner
  • Wails - Desktop application framework
  • Angular - Web framework
  • Gin - HTTP web framework
  • Cobra - CLI framework