### Added - Adds an unlicensed public-domain license to permit unrestricted use. - Adds an initial versioned changelog entry for v0.1.0. - Adds a project avatar to the landing page to strengthen branding. - Adds a rule to ignore macOS metadata files. - Add assets
Bitcoin Core Admin Dashboard
Web dashboard for operating and inspecting a Bitcoin Core node over RPC and SSH.
Features
- Session-based dashboard login.
- Persistent node settings in SQLite.
- Live node summary cards and history charts.
- RPC explorer with command catalog from node
help. - Node control actions:
- stop via RPC
- start via SSH
- restart via RPC stop plus SSH start
Tech Stack
- FastAPI + Jinja templates
- Vanilla JavaScript + Chart.js
- SQLite persistence
requestsfor JSON-RPCparamikofor SSH control
Quick Start (Docker)
- Create environment file:
cp .env.example .env
- Update at minimum:
APP_USERNAMEAPP_PASSWORDorAPP_PASSWORD_HASHSESSION_SECRET
- Start:
docker compose up --build
- Open:
http://localhost:8080
Quick Start (Local Python)
pip install -r requirements.txt
cp .env.example .env
uvicorn app.main:app --reload --port 8080
Runtime Notes
- Settings and metrics history persist in
data/dashboard.db. - Background metric sampling runs every
METRICS_SAMPLER_INTERVAL_SECONDS(minimum 15 seconds). - Start and restart actions require working SSH configuration.
Docker RPC Connectivity Note
If the dashboard runs in Docker and Bitcoin Core runs on the Docker host, use:
http://{HOST_IP}:8332
Using http://127.0.0.1:8332 inside the container points to the container itself.
Make sure your node allows connections on that port from the Docker IP/Subnet
Documentation
See the full documentation set in doc/README.md:
- Architecture:
doc/architecture.md - API reference:
doc/api.md - Data models:
doc/data-models.md - Build and deploy:
doc/build-and-deploy.md - Environment config:
doc/environment.md - Conventions:
doc/conventions.md
Security
- Use strong credentials and a random session secret.
- Prefer password hash (
APP_PASSWORD_HASH) over plaintext password. - Restrict dashboard network access to trusted operators.
Languages
Python
39.1%
JavaScript
36.1%
HTML
14%
CSS
10.4%
Dockerfile
0.4%