Skip to content

Commit 1fb8689

Browse files
committed
updated code to work with BTC and BC2
1 parent 0d16fd6 commit 1fb8689

5 files changed

Lines changed: 147 additions & 224 deletions

File tree

README.md

Lines changed: 18 additions & 98 deletions
Original file line numberDiff line numberDiff line change
@@ -1,107 +1,27 @@
11
# OpenAxe: Bitaxe Fleet Manager
22

3-
**OpenAxe** is a lightweight, self-hosted dashboard designed for monitoring and managing a fleet of Bitaxe (AxeOS) and NerdAxe devices. It provides real-time hashrate aggregation, market data integration, and batch configuration tools.
3+
**OpenAxe** is a lightweight, self-hosted dashboard designed for monitoring and managing a fleet of Bitaxe (AxeOS) and NerdAxe devices.
44

55
## 🚀 Features
6+
* **Network Scanner:** Discover Bitaxe devices on your LAN.
7+
* **Fleet Statistics:** Aggregated hashrate, power, and block data.
8+
* **Multi-Coin:** Support for **Bitcoin (BTC)** and **Bitcoin 2 (BC2)**.
9+
* **🔔 Notifications:** Integrated **Ntfy.sh** alerts for status changes.
610

7-
* **Network Scanner:** Automatically discover Bitaxe devices on your LAN.
8-
* **Fleet Statistics:** Real-time aggregation of hashrate, power consumption, total blocks found, and shares accepted.
9-
* **Individual Miner Control:** Rename devices, update stratum settings, and manage overclocking (Frequency/Voltage) directly from the dashboard.
10-
* **Multi-Coin Market Insights:** Live price and network difficulty tracking for **Bitcoin (BTC)**, **Bitcoin Cash (BCH)**, **DigiByte (DGB)**, **eCash (XEC)**, and **Bitcoin 2 (BC2)**. Data sourced via Mempool, Blockchair, Chainz, and Blockhunters.
11-
* **🔔 Notification Engine:** Integrated **Ntfy.sh** alerts for miner offline events, block discovery, and successful tuning adjustments.
12-
* **Persistence:** Miner configurations are saved to a local JSON database, ensuring your fleet remains organized after restarts.
13-
14-
## ⌛ Coming Soon
15-
* **Dual Pool Settings for NerdAxe Devices:** Add the ability to set your failover or dual pool settings in the web interface
16-
* **Make a change? Do a Pull Request:** Add something to the web app? Submit a pull request!
17-
18-
---
19-
20-
## 🛠️ Installation & Setup
21-
22-
### Prerequisites
23-
* Docker and Docker Compose
24-
* Linux Host (Required for **Host Networking** to allow LAN scanning)
25-
26-
### Quick Start
27-
1. **Clone the repository:**
28-
```bash
29-
git clone [https://github.com/cfultz/openaxe.git](https://github.com/cfultz/openaxe.git)
30-
cd openaxe
31-
```
32-
33-
2. **Build and launch with Docker Compose:**
34-
```bash
35-
docker-compose up -d --build
36-
```
37-
38-
3. **Access the Dashboard:**
39-
Open your browser and navigate to `http://<your-host-ip>:5055`
40-
41-
---
42-
43-
## 🐳 Docker Configuration
44-
45-
OpenAxe utilizes **Host Networking** mode. This allows the internal `scanner.py` to communicate directly with your local subnet to find your miners.
46-
47-
> **Note:** Port mapping (`-p 5055:5000`) is disabled in host mode. The application binds directly to port **5055** as defined in `app.py`.
48-
49-
### Volume Persistence
50-
Persist the app directory so settings aren't lost like custom miner names, changes to the app, etc.
51-
```yaml
52-
- ./:/app
53-
54-
```
55-
56-
## 📂 Project Structure
57-
58-
The project follows a standard Flask application layout optimized for Docker containerization.
59-
60-
```text
61-
openaxe/
62-
├── app.py # Main Flask server & background worker threads
63-
├── scanner.py # Network scanning logic (ARP/ICMP/HTTP)
64-
├── miners.json # Local JSON database for persistent miner data
65-
├── requirements.txt # Python dependencies
66-
├── Dockerfile # Container build instructions
67-
├── docker-compose.yml # Docker service orchestration
68-
├── static/ # Static assets
69-
│ └── js/
70-
│ └── dashboard.js # Frontend API polling and UI logic
71-
└── templates/ # HTML templates
72-
└── dashboard.html # Main dashboard interface
73-
74-
```
11+
## ☕ Support the Project
12+
If you find this tool useful, consider supporting the developer:
13+
* **Lightning:** caleb@getalby.com
14+
* **BTC:** bc1qj80p66d9fpg95e4e897933wcl56as7l5mqj6as
15+
* **BC2:** BCHvT1t9LpG1yS2v6X7A8b9C0d1E2f3G4h
7516

7617
---
7718

78-
### API Reference
79-
80-
## 🔧 API Endpoints
81-
82-
All endpoints return JSON responses.
83-
84-
### Miner Management
85-
86-
| Endpoint | Method | Payload | Description |
87-
| --- | --- | --- | --- |
88-
| `/api/miners` | GET | None | Returns aggregated fleet stats, market data, and individual miner statuses. |
89-
| `/api/scan` | POST | `{"subnet": "192.168.1.0/24"}` | Scans the specified subnet for Bitaxe/AxeOS devices. |
90-
| `/api/miners/rename` | POST | `{"ip": "192.168.1.50", "name": "Neo"}` | Updates the local display name for a miner. |
91-
| `/api/miners/delete` | POST | `{"ip": "192.168.1.50"}` | Removes a miner from the local database. |
92-
93-
### Device Control
94-
95-
| Endpoint | Method | Payload | Description |
96-
| --- | --- | --- | --- |
97-
| `/api/miners/pool` | POST | `{"ip": "...", "url": "...", "user": "..."}` | Updates stratum settings and restarts the device. |
98-
| `/api/overclock` | POST | `{"ip": "...", "freq": 500, "volt": 1100}` | Adjusts frequency and voltage via AxeOS API. |
99-
| `/api/reboot` | POST | `{"ip": "192.168.1.50"}` | Sends a hardware reboot command to the miner. |
100-
101-
### System & Notifications
19+
## 🛠️ Installation
20+
1. `git clone https://github.com/cfultz/openaxe.git`
21+
2. `cd openaxe`
22+
3. `docker-compose up -d --build`
23+
4. Access at `http://<your-host-ip>:5055`
10224

103-
| Endpoint | Method | Payload | Description |
104-
| --- | --- | --- | --- |
105-
| `/api/settings` | POST | `{"coin": "BTC", "currency": "USD", "ntfy_server": "...", "ntfy_topic": "..."}` | Updates global dashboard preferences and notification settings. |
106-
| `/api/test_ntfy` | POST | None | Sends a test alert to the configured Ntfy server/topic. |
107-
| `/api/system/reset` | POST | None | Clears all miners from `miners.json`. |
25+
## ⚖️ License
26+
This project is licensed under a **Modified MIT License**.
27+
Permission is hereby granted to use, copy, modify, and merge the software, provided that the **"Buy Me a Coffee" / Donation section** in the web interface and the README remain intact and visible. Removing or altering the developer's donation addresses is strictly prohibited under this license.

0 commit comments

Comments
 (0)