Customized Ocean.xyz Bitcoin Mining Pool Dashboard
Go to file
DJObleezy b9c04a39e8 Enhance pool fees display in dashboard
Updated the star rating display for pool fees in `dashboard.html`. When `metrics.pool_fees_percentage` is between 0.9 and 1.3, the number of stars shown has been increased from one to three, improving the visual representation of the metric.
2025-04-23 23:05:29 -07:00
static Remove text-shadow for cleaner UI across stylesheets 2025-04-23 23:00:06 -07:00
templates Enhance pool fees display in dashboard 2025-04-23 23:05:29 -07:00
App.py Add network fee support to dashboard configuration 2025-04-22 07:43:57 -07:00
config.json Add network fee support to dashboard configuration 2025-04-22 07:43:57 -07:00
config.py Add network fee support to dashboard configuration 2025-04-22 07:43:57 -07:00
data_service.py Add network fee support to dashboard configuration 2025-04-22 07:43:57 -07:00
deployment_steps.md Update deployment instructions and chart indicator style 2025-04-23 18:47:50 -07:00
docker-compose.yml Enhance services and improve code structure 2025-04-23 21:56:25 -07:00
dockerfile Enhance services and improve code structure 2025-04-23 21:56:25 -07:00
LICENSE.md Add files via upload 2025-04-09 11:46:24 -07:00
minify.py Enhance services and improve code structure 2025-04-23 21:56:25 -07:00
models.py Enhance services and improve code structure 2025-04-23 21:56:25 -07:00
notification_service.py Enhance services and improve code structure 2025-04-23 21:56:25 -07:00
project_structure.md Update project structure and enhance documentation 2025-04-23 14:23:07 -07:00
README.md Enhance README.md with new features and API endpoints 2025-04-23 20:06:14 -07:00
requirements.txt Add files via upload 2025-04-09 11:46:24 -07:00
setup.py Add theme toggle feature and configuration updates 2025-04-22 20:39:45 -07:00
state_manager.py Add configurable timezone support throughout the app 2025-04-18 11:08:35 -07:00
worker_service.py Enhance generate_fallback_data method in WorkerService 2025-04-22 14:06:11 -07:00

DeepSea Dashboard

A Retro Mining Monitoring Solution

This open-source dashboard provides real-time monitoring for Ocean.xyz pool miners, offering detailed insights on hashrate, profitability, worker status, and network metrics. Designed with a retro terminal aesthetic and focused on reliability, it helps miners maintain complete oversight of their operations.


DeepSea Boot DeepSea Config DeepSea Dashboard


Key Features

Real-Time Mining Metrics

  • Live Hashrate Tracking: Monitor 60-second, 10-minute, 3-hour, and 24-hour average hashrates
  • Profitability Analysis: View daily and monthly earnings in both BTC and USD
  • Financial Calculations: Automatically calculate revenue, power costs, and net profit
  • Network Statistics: Track current Bitcoin price, difficulty, and network hashrate
  • Payout Monitoring: View unpaid balance and estimated time to next payout
  • Pool Fee Analysis: Monitor pool fee percentages with visual indicator when optimal rates (0.9-1.3%) are detected

Worker Management

  • Fleet Overview: Comprehensive view of all mining devices in one interface
  • Status Monitoring: Real-time status indicators for online and offline devices
  • Performance Data: Individual hashrate, temperature, and acceptance rate metrics
  • Filtering Options: Sort and search by device type or operational status

Bitcoin Block Explorer

  • Recent Blocks: View the latest blocks added to the blockchain
  • Block Details: Examine transaction counts, fees, and mining pool information
  • Visual Indicators: Track network difficulty and block discovery times

System Resilience

  • Connection Recovery: Automatic reconnection after network interruptions
  • Backup Polling: Fallback to traditional polling if real-time connection fails
  • Cross-Tab Synchronization: Data consistency across multiple browser tabs
  • Server Health Monitoring: Built-in watchdog processes ensure reliability
  • Error Handling: Displays a user-friendly error page (error.html) for unexpected issues.

Distinctive Design Elements

  • Retro Terminal Aesthetic: Nostalgic interface with modern functionality
  • Boot Sequence Animation: Engaging initialization sequence on startup
  • System Monitor: Floating status display with uptime and refresh information
  • Responsive Interface: Adapts to desktop and mobile devices

DeepSea Theme

  • Underwater Effects: Light rays and digital noise create an immersive experience.
  • Retro Glitch Effects: Subtle animations for a nostalgic feel.
  • Theme Toggle: Switch between Bitcoin and DeepSea themes with a single click.

Quick Start

Installation

  1. Clone the repository

    git clone https://github.com/Djobleezy/DeepSea-Dashboard.git
    cd DeepSea-Dashboard
    
  2. Install dependencies:

    pip install -r requirements.txt
    
  3. Run the setup script:

    python setup.py
    
  4. Start the application:

    python App.py
    
  5. Open your browser at http://localhost:5000

For detailed deployment instructions with Redis persistence and Gunicorn configuration, see deployment_steps.md.

Using docker-compose (with Redis)

The docker-compose.yml file makes it easy to deploy the dashboard and its dependencies.

Steps to Deploy

  1. Start the services: Run the following command in the project root:

    docker-compose up -d
    
  2. Access the dashboard: Open your browser at http://localhost:5000.

  3. Stop the services: To stop the services, run:

    docker-compose down
    

Customization

You can modify the following environment variables in the docker-compose.yml file:

  • WALLET: Your Bitcoin wallet address.
  • POWER_COST: Cost of power per kWh.
  • POWER_USAGE: Power usage in watts.
  • NETWORK_FEE: Additional fees beyond pool fees (e.g., firmware fees).
  • TIMEZONE: Local timezone for displaying time information.

Redis data is stored in a persistent volume (redis_data), and application logs are saved in the ./logs directory.

For more details, refer to the docker-compose documentation.

Dashboard Components

Main Dashboard

  • Interactive hashrate visualization with trend analysis
  • Real-time profitability metrics with cost calculations
  • Network statistics with difficulty and price tracking
  • Payout information with estimation timing
  • Visual indicators for metric changes

Workers Dashboard

  • Fleet summary with aggregate statistics
  • Individual worker cards with detailed metrics
  • Status indicators with color-coded alerts
  • Search and filtering functionality
  • Performance trend mini-charts

Blocks Explorer

  • Recent block visualization with mining details
  • Transaction statistics and fee information
  • Mining pool attribution
  • Block details modal with comprehensive data

System Monitor

  • Floating interface providing system statistics
  • Progress indicator for data refresh cycles
  • System uptime display
  • Real-time connection status

System Requirements

The application is designed for efficient resource utilization:

  • Server: Any system capable of running Python 3.9+
  • Memory: Minimal requirements (~100MB RAM)
  • Storage: Less than 50MB for application files
  • Database: Optional Redis for persistent state
  • Compatible with: Windows, macOS, and Linux

Technical Architecture

Built with a modern stack for reliability and performance:

  • Backend: Flask with Server-Sent Events for real-time updates
  • Frontend: Vanilla JavaScript with Chart.js for visualization
  • Data Processing: Concurrent API calls with smart caching
  • Resilience: Automatic recovery mechanisms and state persistence
  • Configuration: Environment variables and JSON-based settings

API Endpoints

  • /api/metrics: Provides real-time mining metrics.
  • /api/available_timezones: Returns a list of supported timezones.
  • /api/config: Fetches or updates the mining configuration.
  • /api/health: Returns the health status of the application.

Project Structure

The project follows a modular architecture with clear separation of concerns:

DeepSea-Dashboard/
│
├── App.py                      # Main application entry point
├── config.py                   # Configuration management
├── config.json                 # Configuration file
├── data_service.py             # Service for fetching mining data
├── models.py                   # Data models
├── state_manager.py            # Manager for persistent state
├── worker_service.py           # Service for worker data management
├── notification_service.py     # Service for notifications
├── minify.py                   # Script for minifying assets
├── setup.py                    # Setup script for organizing files
├── requirements.txt            # Python dependencies
├── Dockerfile                  # Docker configuration
├── docker-compose.yml          # Docker Compose configuration
│
├── templates/                  # HTML templates
│   ├── base.html              # Base template with common elements
│   ├── boot.html              # Boot sequence animation
│   ├── dashboard.html         # Main dashboard template
│   ├── workers.html           # Workers dashboard template
│   ├── blocks.html            # Bitcoin blocks template
│   ├── notifications.html     # Notifications template
│   └── error.html             # Error page template
│
├── static/                     # Static assets
│   ├── css/                   # CSS files
│   │   ├── common.css         # Shared styles across all pages
│   │   ├── dashboard.css      # Main dashboard styles
│   │   ├── workers.css        # Workers page styles
│   │   ├── boot.css           # Boot sequence styles
│   │   ├── blocks.css         # Blocks page styles
│   │   ├── notifications.css  # Notifications page styles
│   │   ├── error.css          # Error page styles
│   │   ├── retro-refresh.css  # Floating refresh bar styles
│   │   └── theme-toggle.css   # Theme toggle styles
│   │
│   └── js/                    # JavaScript files
│       ├── main.js            # Main dashboard functionality
│       ├── workers.js         # Workers page functionality
│       ├── blocks.js          # Blocks page functionality
│       ├── notifications.js   # Notifications functionality
│       ├── block-animation.js # Block mining animation
│       ├── BitcoinProgressBar.js # System monitor functionality
│       └── theme.js           # Theme toggle functionality
│
├── deployment_steps.md         # Deployment guide
├── project_structure.md        # Additional structure documentation
├── LICENSE.md                  # License information
└── logs/                       # Application logs (generated at runtime)

For more detailed information on the architecture and component interactions, see project_structure.md.

Troubleshooting

For optimal performance:

  1. Ensure your wallet address is correctly configured
  2. Check network connectivity for consistent updates
  3. Use the system monitor to verify connection status
  4. Access the health endpoint at /api/health for diagnostics
  5. For stale data issues, use the Force Refresh function
  6. Use hotkey Shift+R to clear chart and Redis data (as needed, not required)

License

Available under the MIT License. This is an independent project not affiliated with Ocean.xyz.

Acknowledgments

  • Ocean.xyz mining pool for their service
  • mempool.guide
  • The open-source community for their contributions
  • Bitcoin protocol developers