Bumps [@angular/common](https://github.com/angular/angular/tree/HEAD/packages/common) from 20.3.10 to 20.3.14. - [Release notes](https://github.com/angular/angular/releases) - [Changelog](https://github.com/angular/angular/blob/main/CHANGELOG.md) - [Commits](https://github.com/angular/angular/commits/20.3.14/packages/common) --- updated-dependencies: - dependency-name: "@angular/common" dependency-version: 20.3.14 dependency-type: direct:production ... Signed-off-by: dependabot[bot] <support@github.com> |
||
|---|---|---|
| .claude | ||
| .github | ||
| .playwright-mcp | ||
| cmd | ||
| docs | ||
| miner | ||
| pkg | ||
| site-docs | ||
| ui | ||
| .coderabbit.yaml | ||
| .gitignore | ||
| .goreleaser.yaml | ||
| AUDIT-COMPLEXITY.md | ||
| AUDIT-CONCURRENCY.md | ||
| AUDIT-DOCUMENTATION.md | ||
| AUDIT-ERROR-HANDLING.md | ||
| AUDIT-INPUT-VALIDATION.md | ||
| AUDIT-MEMORY.md | ||
| AUDIT-PERFORMANCE.md | ||
| AUDIT-PROTOCOL.md | ||
| AUDIT-SECRETS.md | ||
| AUDIT-TESTING.md | ||
| CHANGELOG.md | ||
| CLAUDE.md | ||
| CODE_OF_CONDUCT.md | ||
| CONTRIBUTORS.md | ||
| docker-compose.p2p.yml | ||
| Dockerfile.node | ||
| go.mod | ||
| go.sum | ||
| LICENSE | ||
| Makefile | ||
| mkdocs.yml | ||
| openapi-3.json | ||
| qodana.yaml | ||
| README.md | ||
Mining
A modern, modular cryptocurrency mining management platform with GPU support, RESTful API, and cross-platform desktop application.
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.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - 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.