A comprehensive, production-ready dashboard for monitoring and managing Sentinel dVPN nodes with advanced analytics, real-time monitoring, and Telegram bot integration.
- π¨ Modern Glassmorphism UI - Beautiful dark theme with glass effects
- π Real-time Monitoring - Live system metrics and node status
- π° Earnings Tracking - Wallet balance with USD conversion via CoinGecko
- π Performance Metrics - CPU, memory, disk, and network monitoring
- π Blockchain Integration - Direct connection to Sentinel network
- π± Mobile Responsive - Works perfectly on all devices
- π JWT Authentication - Secure access control
- π€ Remote Control - Manage your node from anywhere
- π Instant Stats - Get node status with a command
- π¨ Smart Alerts - Automatic notifications for important events
- π Performance Monitoring - Regular health checks
- π° Earnings Reports - Daily/monthly estimates
- π Speed Testing - Built-in internet speed tests
- β‘ Auto-start on Boot - Systemd service integration
- π Health Check System - 24-hour monitoring cycle
- π Session Tracking - Active connection monitoring
- π Multi-RPC Fallback - Reliable blockchain connectivity
- π Historical Data - Track performance over time
- π οΈ API Endpoints - Full REST API for integration
- Raspberry Pi 4 (or compatible Linux system)
- Python 3.9+
- Sentinel dVPN Node running in Docker
- Telegram Bot Token (optional, for bot features)
- 1GB+ RAM recommended
git clone https://github.com/fil0s/sentinel-p2p-dashboard.git
cd sentinel-p2p-dashboard# Install Python dependencies
pip3 install -r config/requirements-prod.txt
# For Raspberry Pi users
pip3 install --break-system-packages -r config/requirements-prod.txt# Copy example configuration
cp config/.env.example config/.env
# Edit with your settings
nano config/.envRequired settings:
NODE_ADDRESS=sentnode1... # Your node address
WALLET_ADDRESS=sent1... # Your wallet address
TELEGRAM_BOT_TOKEN=... # From @BotFather
ADMIN_CHAT_IDS=... # Your Telegram user ID# Development mode
python3 src/app/app.py
# Production mode with Gunicorn
gunicorn --config config/gunicorn.conf.py src.app.app:appAccess the dashboard at: http://localhost:8080
- Message @BotFather on Telegram
- Send
/newbotand follow instructions - Copy the bot token to
.envfile
python3 scripts/utils/get_chat_id.py# Run optimized bot with monitoring
python3 src/bot/telegram_bot_optimized.py/start- Main menu/status- Node status/earnings- Earnings report/health- Health check/speedtest- Internet speed test/metrics- System metrics
# Install service
sudo cp deployment/systemd/sentinel-dashboard.service /etc/systemd/system/
sudo systemctl daemon-reload
sudo systemctl enable sentinel-dashboard
sudo systemctl start sentinel-dashboard# Install bot service
sudo cp deployment/systemd/sentinel-telegram-bot.service /etc/systemd/system/
sudo systemctl daemon-reload
sudo systemctl enable sentinel-telegram-bot
sudo systemctl start sentinel-telegram-botPOST /api/auth/login
Content-Type: application/json
{
"username": "admin",
"password": "your_password"
}GET /api/health- Health checkGET /api/bot/status- Node statusGET /api/bot/wallet- Wallet balanceGET /api/bot/earnings- Earnings estimates
GET /api/node/info- Detailed node informationGET /api/sessions- Active sessionsPOST /api/speedtest- Run speed testGET /api/system/metrics- System metrics
# Build image
docker build -f deployment/docker/Dockerfile.prod -t sentinel-dashboard .
# Run container
docker run -d \
--name sentinel-dashboard \
-p 8080:8080 \
-v $(pwd)/config:/app/config \
-v $(pwd)/data:/app/data \
sentinel-dashboarddocker-compose -f config/docker-compose.prod.yml up -dserver {
listen 80;
server_name your-domain.com;
location / {
proxy_pass http://localhost:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}sentinel-p2p-dashboard/
βββ src/ # Source code
β βββ app/ # Flask application
β β βββ app.py # Main application
β βββ api/ # API modules
β β βββ blockchain_client.py
β β βββ system_metrics.py
β βββ auth/ # Authentication
β β βββ auth_middleware.py
β βββ bot/ # Telegram bots
β βββ telegram_bot.py
β βββ telegram_bot_optimized.py
βββ frontend/ # Frontend assets
β βββ static/ # CSS, JS, images
β βββ templates/ # HTML templates
β βββ index.html
βββ config/ # Configuration
β βββ .env.example # Environment template
β βββ requirements-prod.txt
β βββ gunicorn.conf.py
βββ scripts/ # Utility scripts
β βββ setup/ # Setup scripts
β βββ utils/ # Helper utilities
βββ deployment/ # Deployment configs
β βββ docker/ # Docker files
β βββ systemd/ # Service files
β βββ nginx/ # Web server config
βββ docs/ # Documentation
βββ tests/ # Test files
| Variable | Description | Default |
|---|---|---|
NODE_ADDRESS |
Your Sentinel node address | Required |
WALLET_ADDRESS |
Your wallet address | Required |
SENTINEL_RPC_ENDPOINT |
RPC endpoint | https://sentinel-api.polkachu.com |
TELEGRAM_BOT_TOKEN |
Bot token from BotFather | Optional |
ADMIN_CHAT_IDS |
Comma-separated admin IDs | Optional |
DASHBOARD_SECRET_KEY |
Flask secret key | Auto-generated |
JWT_SECRET_KEY |
JWT signing key | Auto-generated |
PORT |
Dashboard port | 8080 |
For Raspberry Pi with router issues:
# Enable DMZ mode in router for Pi IP
# Or configure port forwarding:
# - Port 8080 for dashboard
# - Port 3845 for Sentinel node# Check service status
sudo systemctl status sentinel-dashboard
# View logs
sudo journalctl -u sentinel-dashboard -f
# Test API
curl http://localhost:8080/api/health# Check bot service
sudo systemctl status sentinel-telegram-bot
# View bot logs
sudo journalctl -u sentinel-telegram-bot -f
# Test bot manually
python3 src/bot/telegram_bot_optimized.py# Test node API
curl http://localhost:1177/status
# Check Docker container
docker ps | grep sentinel
docker logs sentinel-p2p-node- Use optimized Telegram bot:
telegram_bot_optimized.py - Enable swap if RAM < 2GB
- Use ethernet connection for better speeds
- Configure router DMZ for maximum bandwidth
- API responses cached for 5 minutes
- Wallet balance cached for 10 minutes
- System metrics refresh every 30 seconds
Contributions are welcome! Please:
- Fork the repository
- Create a feature branch
- Commit your changes
- Push to the branch
- Open a Pull Request
MIT License - see LICENSE file for details.
- Sentinel Network for the dVPN infrastructure
- CoinGecko for price data
- Polkachu for RPC endpoints
- Community contributors and testers
- GitHub Issues: Report bugs
- Telegram: Join our community (coming soon)
- Documentation: Full docs
- β Dashboard: Production Ready
- β Telegram Bot: Fully Operational
- β API: Stable
- β Health Monitoring: Active
- β Speed Test: Working
Version: 1.0.0
Last Updated: August 2025
Node Address: sentnode1ysdczgrk6lx88krln9ye40hjujseleaarxex5e