Control center for your digital assets.
An open-source, lightweight control panel for VPS deployments. Built by ToruAI for client transparency - every managed VPS gets one, so clients always know what's running on their infrastructure.
Most server dashboards are built for sysadmins. Steering Center is built for clients and stakeholders - people who need visibility and control without the complexity.
| Traditional Tools | Steering Center |
|---|---|
| Designed for ops teams | Designed for clients |
| System metrics only | System + business data (KPIs, agents, conversions) |
| Complex setup | Single binary, runs in 2 minutes |
| Feature bloat | Minimal starter - add only what you need |
| Technical UI | Clean, modern, client-friendly |
No vendor lock-in. It runs on your VPS, you own everything.
Out of the box:
- System monitoring (CPU, RAM, storage, uptime)
- Script execution with real-time terminal output
- Quick actions for one-click operations
- User management (admin + client roles)
- Plugin system - extend with custom functionality
Build your own plugins for:
- Docker dashboards - container status, logs, controls
- Database metrics - PostgreSQL, Redis, MongoDB stats
- AI agent monitoring - track your autonomous agents
- Business KPIs - conversions, revenue, user activity
- Custom pages - build dashboards for any data source
- Alerts & notifications - Slack, email, webhooks
# Frontend
cd frontend && npm install && npm run build
# Backend (release)
export ADMIN_PASSWORD="your-secure-password"
cargo build --release
./target/release/steering-center
# Development
# Terminal 1: cd frontend && npm run dev
# Terminal 2: export ADMIN_PASSWORD="dev" && cargo runOpen http://localhost:3000
Toru Steering Center uses a hybrid authentication system to ensure security without external dependencies.
- Admin (Owner): Authenticated via environment variables (
ADMIN_USERNAME/ADMIN_PASSWORD). Has full access to settings, user management, and arbitrary script execution. - Client (User): Authenticated via SQLite database. Managed by Admin via UI. Limited to viewing dashboards and running pre-approved "Quick Actions".
| Role | Username | Password | Storage |
|---|---|---|---|
| Admin | admin (default) |
Set via ADMIN_PASSWORD env var |
Environment (Stateless) |
| Client | Custom | Set by Admin | SQLite (Argon2 Hash) |
| Layer | Technology |
|---|---|
| Backend | Rust (Axum) + SQLite |
| Frontend | React + TypeScript + Vite |
| Styling | Tailwind CSS + shadcn/ui |
| Real-time | WebSocket streaming |
| Plugins | Process isolation + Unix sockets |
Resource usage: Under 100MB RAM. Single binary. No Docker required.
Since authentication is built-in, you can deploy securely without a VPN, though a reverse proxy with SSL (Nginx/Caddy/Cloudflare) is highly recommended for production.
[Unit]
Description=Steering Center
After=network.target
[Service]
Type=simple
WorkingDirectory=/path/to/steering-center
# Set your secure admin password here
Environment="ADMIN_PASSWORD=change_this_to_something_secure"
# Optional: Enable secure cookies if behind HTTPS
Environment="PRODUCTION=true"
ExecStart=/path/to/steering-center/target/release/steering-center
Restart=always
[Install]
WantedBy=multi-user.targetsteering-center [OPTIONS]
Options:
-p, --port <PORT> Port to listen on [default: 3000]
-H, --host <HOST> Host to bind to [default: 127.0.0.1]
-h, --help Print help message| Variable | Default | Description |
|---|---|---|
ADMIN_USERNAME |
admin |
Admin username |
ADMIN_PASSWORD |
REQUIRED | Admin password (must be set) |
STEERING_HOST |
127.0.0.1 |
Bind address (0.0.0.0 for external) |
STEERING_PORT |
3000 |
Server port |
PRODUCTION |
false |
Set to true to enable Secure cookies |
RUST_LOG |
info |
Log level |
CLI options take priority over environment variables.
/frontend # React dashboard (Vite + TypeScript + shadcn/ui)
/src # Rust backend (Axum API + WebSocket)
/scripts # Shell scripts for execution
/plugins # Installed plugins (.binary files)
/toru-plugin-api # Rust SDK for plugin development
/examples # Example plugins (Rust + Python)
/docs/plugins # Plugin development documentation
| Endpoint | Description |
|---|---|
GET /api/resources |
CPU, RAM, storage, uptime |
GET /api/scripts |
Available scripts |
POST /api/quick-actions |
Create one-click actions |
GET /api/history |
Execution history |
WS /api/ws |
Real-time terminal output |
GET /api/plugins |
List installed plugins |
POST /api/plugins/:id/enable |
Enable a plugin |
GET /api/plugins/route/* |
Plugin custom routes |
Extend Steering Center with custom plugins. Plugins run as isolated processes communicating via Unix sockets.
Quick start (Rust):
cd examples/hello-plugin-rust
./build.sh
# Copy hello-plugin-rust.binary to plugins/Quick start (Python):
cd examples/hello-plugin-python
./build.sh
# Copy hello-plugin-python.binary to plugins/Plugins can:
- Add custom pages to the sidebar
- Expose HTTP endpoints
- Store persistent data (KV storage)
- Run background tasks
See docs/plugins/README.md for the full development guide.
- Transparency - Clients see exactly what runs on their infrastructure
- Ownership - No SaaS lock-in, everything on their VPS
- Simplicity - Start minimal, extend as needed
- Cost optimization - Lightweight enough for the smallest VPS
MIT - Use it however you want.
Built with care by ToruAI
