Files
palladium-stack/DASHBOARD.md
davide3011 742b0662a7 feat(dashboard): require basic auth for external clients only
- Allow direct access from localhost and private RFC1918 networks
- Enforce HTTP Basic Auth for non-private/external source IPs
- Read dashboard credentials from compose env vars
- Add .env.example entries for DASHBOARD_AUTH_USERNAME/PASSWORD
- Update README and DASHBOARD docs
2026-02-16 09:41:44 +01:00

3.3 KiB

Web Dashboard Quick Start

Starting the Dashboard

The dashboard is automatically started when you run:

docker compose up -d

This will start three services:

  1. palladium-node - The Palladium blockchain node
  2. electrumx-server - The ElectrumX server
  3. palladium-dashboard - The web monitoring dashboard

Accessing the Dashboard

Once all services are running, access the dashboard at:

From the same machine:

http://localhost:8080

From another device on your network:

http://<your-raspberry-pi-ip>:8080

To find your Raspberry Pi IP address:

hostname -I | awk '{print $1}'

Dashboard Features

Overview Cards

  • System Resources: Real-time CPU, memory, and disk usage
  • Palladium Node: Block height, difficulty, connections, sync progress
  • ElectrumX Server: Active sessions, requests, subscriptions, uptime

Charts

  • Block Time History: Line chart showing block generation times
  • Mempool Transactions: Bar chart of pending transactions

Recent Blocks

Table showing the last 10 blocks with:

  • Block height
  • Block hash
  • Timestamp
  • Block size
  • Transaction count

Auto-Refresh

The dashboard automatically refreshes every 10 seconds to show the latest data.

Troubleshooting

Dashboard Not Loading

  1. Check if all containers are running:

    docker ps
    

    You should see three containers:

    • palladium-node
    • electrumx-server
    • palladium-dashboard
  2. Check dashboard logs:

    docker logs palladium-dashboard
    
  3. Check if the port is accessible:

    curl http://localhost:8080/api/health
    

Services Showing as "Down"

If services show as down in the dashboard:

  1. Palladium Node: May still be syncing. Check logs:

    docker logs palladium-node
    
  2. ElectrumX Server: May be waiting for the node to sync. Check logs:

    docker logs electrumx-server
    

Network Access Issues

If you can't access from another device:

  1. Check firewall rules:

    sudo ufw status
    
  2. Allow port 8080 if needed:

    sudo ufw allow 8080/tcp
    
  3. Verify the dashboard is listening on all interfaces:

    netstat -tln | grep 8080
    

    Should show: 0.0.0.0:8080

Stopping the Dashboard

To stop all services including the dashboard:

docker compose down

To stop only the dashboard:

docker stop palladium-dashboard

Rebuilding the Dashboard

If you make changes to the dashboard code:

docker compose build dashboard
docker compose up -d dashboard

API Endpoints

The dashboard also provides REST API endpoints:

  • GET /api/health - Health check
  • GET /api/palladium/info - Node information
  • GET /api/palladium/blocks/recent - Recent blocks
  • GET /api/electrumx/stats - Server statistics
  • GET /api/system/resources - System resources

Example:

curl http://localhost:8080/api/health | jq

Security Note

The dashboard is exposed on 0.0.0.0:8080. Requests from localhost/LAN private ranges are allowed directly. Requests from public/external IPs require HTTP Basic Auth.

Set credentials with:

# .env (copy from .env.example)
DASHBOARD_AUTH_USERNAME=admin
DASHBOARD_AUTH_PASSWORD=change-me-now