A comprehensive Next.js dashboard for mining benchmark results with performance analytics, built for deployment on Akash Network.
- Real-time Benchmark Data: Display mining performance metrics including hashrate, power consumption, efficiency, and temperature
- Interactive Tables: Sortable and filterable results with search functionality
- Performance Analytics: Statistical summaries and trend analysis
- Export Capabilities: CSV export for data analysis
- Responsive Design: Modern UI with Tailwind CSS
- Docker Ready: Optimized for containerized deployment
- Akash Compatible: Ready for decentralized cloud deployment
- Framework: Next.js 14 with App Router
- Language: TypeScript
- Styling: Tailwind CSS
- Icons: Lucide React
- Deployment: Docker + Akash Network
- Fork this repository
- Update deploy.yml with your GitHub username
- Push to GitHub - Actions will build automatically
- Make package public in GitHub Packages
- Run deployment script:
./deploy-to-akash.sh
npm install
npm run dev
# Open http://localhost:3000- Node.js 18+
- npm or yarn
- Docker (for containerized deployment)
-
Clone the repository
git clone <repository-url> cd minebench-ui
-
Install dependencies
npm install
-
Run development server
npm run dev
-
Open in browser Navigate to http://localhost:3000
npm run build
npm startdocker build -t minebench-ui .docker run -p 3000:3000 minebench-uidocker-compose up -d- GitHub Account with repository
- Akash CLI installed
- AKT tokens for deployment costs
-
Push to GitHub
git add . git commit -m "Initial commit" git push origin main
-
GitHub Actions will automatically:
- Build Docker image
- Push to GitHub Container Registry
- Generate Akash deployment file
-
Make image public:
- Go to your GitHub repository → Packages
- Find
minebench-uipackage - Make it public in package settings
-
Deploy to Akash:
# Use automated script ./deploy-to-akash.sh # Or Windows PowerShell .\deploy-to-akash.ps1
-
Create GitHub Personal Access Token
- Go to GitHub Settings → Developer settings → Personal access tokens
- Create token with
write:packagesscope
-
Build and push manually:
# Linux/macOS ./build-and-push.sh # Windows PowerShell .\build-and-push.ps1
-
Update deploy.yml:
services: minebench-ui: image: ghcr.io/YOUR_USERNAME/minebench-ui:latest
-
Deploy to Akash:
akash tx deployment create deploy.yml --from your-key --fees 5000uakt
The deploy.yml file is configured for:
- CPU: 0.5 units
- Memory: 512Mi
- Storage: 1Gi
- Port: 3000 (exposed as port 80)
- Pricing: 1000 uakt per block
interface BenchmarkResult {
id: string;
timestamp: string;
algorithm: string;
hashrate: number;
powerConsumption: number;
efficiency: number;
temperature: number;
gpuModel: string;
driverVersion: string;
os: string;
miner: string;
pool: string;
difficulty: number;
shares: {
accepted: number;
rejected: number;
stale: number;
};
uptime: number;
profitability: number;
}- Update the
BenchmarkResultinterface intypes/benchmark.ts - Add formatting functions in
lib/utils.ts - Update table columns in
components/BenchmarkTable.tsx
The app uses Tailwind CSS with custom mining-themed colors:
- Primary: Blue gradient
- Mining: Yellow/Gold gradient
- Custom utilities in
app/globals.css
Currently uses generated mock data. To connect to real data:
- Replace
generateMockData()calls with API calls - Update data fetching in
app/page.tsx - Add error handling and loading states
NODE_ENV: Production/development modePORT: Server port (default: 3000)HOSTNAME: Server hostname (default: 0.0.0.0)
The app is configured with:
- Standalone output for Docker optimization
- App Router enabled
- Image optimization disabled for static deployment
- Bundle Size: Optimized with Next.js standalone output
- Loading: Lazy loading and code splitting
- Caching: Static generation where possible
- Responsive: Mobile-first design
- Update image registry in
deploy.yml - Configure environment variables
- Set up monitoring and logging
- Configure SSL/TLS certificates
- Set up backup strategies
- Configure scaling policies
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests if applicable
- Submit a pull request
This project is licensed under the MIT License.
For issues and questions:
- Create an issue in the repository
- Check the documentation
- Review the Akash deployment guide
Ready for Akash deployment 🚀