Web-based admin interface for Joblet job orchestration system.
# Install
npm install
# Start server (opens at http://localhost:5175)
npm run devComprehensive guides to help you get started:
- Quick Start Guide - Get running in under 5 minutes
- Setup Guide - Detailed installation and configuration
- Configuration Guide - Complete config reference and examples
- 📊 Dashboard - Real-time system metrics and job overview
- 🔧 Job Management - Create, monitor, stop, and delete jobs
- 🔄 Workflows - Visual workflow orchestration with YAML support
- 💾 Resources - Manage volumes, networks, and runtimes
- 📈 Monitoring - Live system metrics with CPU, memory, disk, and network stats
- 📝 Real-time Logs - Stream job logs via WebSocket
Download from releases:
tar -xzf joblet-admin-v1.0.0.tar.gz
cd dist-package
npm install --production
npm startgit clone https://github.com/ehsaniara/joblet-admin.git
cd joblet-admin
npm install
npm run dev📖 For detailed installation steps and troubleshooting, see the Setup Guide.
The admin UI reads configuration from ~/.rnx/rnx-config.yml:
version: "3.0"
nodes:
default:
address: "localhost:50051"
cert: ""
key: ""
ca: ""Optional environment variables:
JOBLET_ADMIN_PORT=5175 # Admin UI port (default: 5175)
JOBLET_ADMIN_HOST=localhost # Admin UI host (default: localhost)
JOBLET_NODE=default # Node to connect to (default: default)📖 For detailed configuration including mTLS setup and multi-node configurations, see the Configuration Guide.
You can use joblet-admin remotely to connect to AWS EC2 instances (or any remote server) using an SSH tunnel:
- Create an SSH tunnel to forward the remote Joblet gRPC port to your local machine:
ssh -i "your-key.pem" -N -L 50051:172.31.x.x:50051 ubuntu@ec2-x-x-x-x.compute-1.amazonaws.comReplace
172.31.x.xwith the private IP of your Joblet server, andec2-x-x-x-x.compute-1.amazonaws.comwith your EC2 public DNS.
- Update your rnx config (
~/.rnx/rnx-config.yml) to point to the tunneled address:
version: "3.0"
nodes:
default:
address: "localhost:50051"
...- Start joblet-admin and it will connect through the SSH tunnel to your remote Joblet server.
npm run dev # Development mode with hot reload
npm start # Production mode
./bin/joblet-admin # Using CLIThen open http://localhost:5175 in your browser.
- Go to Jobs page → Create Job
- Fill in job details (command, runtime, resources)
- Click Execute Job
- Go to Workflows page → Execute New Workflow
- Browse and select a workflow YAML file
- View real-time execution with visual graph
Example workflows are in examples/workflows/.
Browser ←→ joblet-admin (HTTP/WebSocket) ←→ Joblet Server (gRPC)
- Frontend: React + TypeScript + Vite
- Backend: Express.js + gRPC client
- Real-time: WebSocket for logs and metrics
The test suite includes comprehensive coverage of all gRPC service implementations. When the proto file changes, the tests automatically catch any breaking changes or missing methods.
# Run all tests
npm test
# Run tests in watch mode (great for development)
npm test -- --watch
# Run a specific test file
npm test -- src/grpc/client.test.ts
# Generate coverage report
npm test -- --coverageWhat's tested:
- All 5 gRPC services (Job, Network, Volume, Monitoring, Runtime)
- 32 RPC methods across all services
- Proto file compatibility and method signatures
A Makefile is included for convenient task automation:
# Install dependencies
make install
# Start development server
make dev
# Build for production
make build
# Run tests
make test
# Clean build artifacts
make clean
# Full build cycle (clean, install, test, and build)
make allRun make help to see all available commands.
├── src/
│ ├── grpc/ # gRPC client and proto handling
│ ├── server/ # Express.js API server
│ └── ui/ # React frontend
├── proto/ # Protocol buffer definitions
├── docs/ # Documentation
├── examples/ # Example workflows
├── .github/workflows/ # CI/CD pipelines
├── Makefile # Build automation
└── vitest.config.ts # Test configuration
Having issues? Check these resources:
- Setup Guide - Troubleshooting - Common problems and solutions
- Configuration Guide - Troubleshooting - Config-specific issues
- GitHub Issues - Report bugs or request features
We welcome contributions! Please check the Setup Guide for development workflow and coding standards.
MIT