![]() 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. |
||
---|---|---|
static | ||
templates | ||
App.py | ||
config.json | ||
config.py | ||
data_service.py | ||
deployment_steps.md | ||
docker-compose.yml | ||
dockerfile | ||
LICENSE.md | ||
minify.py | ||
models.py | ||
notification_service.py | ||
project_structure.md | ||
README.md | ||
requirements.txt | ||
setup.py | ||
state_manager.py | ||
worker_service.py |
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.
Gallery:
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
-
Clone the repository
git clone https://github.com/Djobleezy/DeepSea-Dashboard.git cd DeepSea-Dashboard
-
Install dependencies:
pip install -r requirements.txt
-
Run the setup script:
python setup.py
-
Start the application:
python App.py
-
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
-
Start the services: Run the following command in the project root:
docker-compose up -d
-
Access the dashboard: Open your browser at
http://localhost:5000
. -
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:
- Ensure your wallet address is correctly configured
- Check network connectivity for consistent updates
- Use the system monitor to verify connection status
- Access the health endpoint at
/api/health
for diagnostics - For stale data issues, use the Force Refresh function
- 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