DEV Community

Cover image for How I Built Solobitaxe – A Zero‑Friction Dashboard for Solo Mining Bitcoin on Your Bitaxe
atahk0755@163.com
atahk0755@163.com

Posted on

How I Built Solobitaxe – A Zero‑Friction Dashboard for Solo Mining Bitcoin on Your Bitaxe

Bitaxe is the most exciting thing to happen to home Bitcoin mining in years – a tiny, open‑source ASIC miner that you actually own. But if you’ve ever tried to set up solo mining on a Bitaxe, you know the pain: editing config.cfg, finding a trustworthy stratum URL, juggling three different browser tabs to see your hashrate, and wondering if the device is even connected.

I got so frustrated that I built Solobitaxe – a web dashboard that handles all of that nonsense for you. In this post I’ll walk through why I built it, how it works under the hood, and how you can start solo mining with your Bitaxe in literally one click.


The problem: Bitaxe solo mining is too manual

Out of the box, the Bitaxe firmware ships with a minimal web UI that shows basic stats. That’s great for checking hashrate, but when you want to configure it for solo mining, you have to:

  1. Find a reliable solo pool (or set up your own Bitcoin node with a stratum server).
  2. Figure out the exact stratum URL, port, worker name, and password.
  3. SSH or serial‑flash the configuration onto the device – or paste it into a tiny text box on the stock UI.
  4. Hope that the settings stick after a power cycle.

If you own more than one Bitaxe, you multiply this pain. If you’re a tinkerer who just wants the lottery mining experience without becoming a sysadmin, it’s a huge barrier.

I wanted something that felt like modern IoT: discover devices on your network, pick a pool, and go.


The solution: Solobitaxe.com

Solobitaxe is a web dashboard that runs right in your browser (or can be self‑hosted with Docker). It connects directly to your Bitaxe devices over your local network – no cloud account, no sign‑up, no data collection.

Here’s what you get:

  • One‑click pool configuration – popular solo pools are pre‑loaded (you can add custom ones too)
  • Live dashboard with hashrate, accepted shares, power consumption, and ASIC temperature in clean charts
  • Automatic device discovery – finds all the Bitaxe miners on your LAN
  • Firmware detection and over‑the‑air (OTA) update support
  • Fully open‑source – you can self‑host it on a Raspberry Pi if you prefer

When you visit https://solobitaxe.com, the dashboard immediately scans your local network and shows every Bitaxe it finds. Select a device, choose “Solo CKPool” (or your own node), hit apply, and the Bitaxe starts hashing. You can monitor everything from a single tab, even on your phone.


How I built it – the tech that makes it tick

Since this is dev.to, let’s geek out about the stack a bit.

Talking to the Bitaxe

Bitaxe devices run on ESP32 microcontrollers and expose a simple HTTP API. That’s the key. Solobitaxe is essentially a local network orchestrator that sends HTTP requests to the Bitaxe’s IP to:

  • Read system info (/api/system/info)
  • Change stratum settings (/api/system/config)
  • Restart the mining process after changes

All of this happens on the client side. The web dashboard itself is a static single‑page application that makes direct HTTP calls from your browser to the Bitaxe APIs. That means no backend server is required – your data never leaves your local network.

Tech stack

  • Frontend: Vue 3 + Vite + Tailwind CSS I chose Vue for its gentle learning curve and excellent composition API. Tailwind made it fast to prototype the dashboard layout.
  • Charts: Chart.js via vue‑chartjs Real‑time hashrate and temperature graphs update every second, giving you instant feedback.
  • Device communication: Axios (browser‑side) All requests to the Bitaxe API go through a thin HTTP client. I had to handle CORS properly, which is why the production build includes a tiny proxy for some edge cases – but for most users, direct calls work out of the box.
  • Self‑hosting option: Docker image with Nginx If you want to run Solobitaxe locally 24/7, the whole thing fits in a single container.

Challenges I hit (and what I learned)

  • Cross‑origin requests from HTTPS to HTTP devices: Bitaxe devices serve their API over plain HTTP. When you access Solobitaxe over HTTPS, the browser blocks mixed content. I solved this by implementing a lightweight WebSocket relay that your browser can fall back to when needed, without any installation.
  • Firmware version fragmentation: Not all Bitaxe devices run the same firmware, so the config API paths and payload formats differ. Solobitaxe auto‑detects the firmware version and adapts accordingly – that took a lot of testing with community members.
  • Restarting the miner without dropping flags: After pushing a new pool config, you need to restart the miner cleanly. A simple reboot sometimes loses the new settings. I ended up carefully sequencing the HTTP calls to save config, verify, then issue a soft restart.

How to try it right now (no sign‑up)

If you have a Bitaxe on your local network, just open:

👉 https://solobitaxe.com

If you don’t own a Bitaxe but are curious, I put together a short demo video that walks through the whole flow.

The entire code is open source and lives on GitHub:
🔗 github.com/your‑org/solobitaxe (replace with actual repo)


What’s next

This is an early beta, and I’m actively gathering feedback from the Bitaxe community. Some things I’m considering:

  • A mobile app (React Native) so you can check your miner on the go
  • Support for additional open‑source mining hardware (like the NerdMiner)
  • Alerts via Telegram/Discord when your Bitaxe finds a block or goes offline

I’d love to hear what you think – especially if you have ideas that would make solo mining even more accessible for normal people.

Drop a comment here, open an issue on GitHub, or find me on Twitter/X at @yourhandle.

Happy (solo) hashing! 🧡⛏️


If you enjoyed this, you might also like my other posts on building hardware‑adjacent web tools. And if you’re working on something related to Bitcoin self‑sovereignty, let’s connect!

Top comments (0)