VPS Pilot is a server monitoring and management platform designed for private VPS servers.
It provides real-time monitoring, alerting, project management, and (future) cron job automation — all from a single dashboard.
config.vpspilot.json fileSample config.vpspilot.json:
{
"name": "meta ads dashboard",
"tech": ["laravel", "react", "mysql"],
"logs": [],
"commands": [
{ "name": "node build", "command": "npm run build" },
{ "name": "php build", "command": "composer install" }
],
"backups": {
"env_file": ".env",
"zip_file_name": "project_backup",
"database": {
"connection": "DB_CONNECTION",
"host": "DB_HOST",
"port": "DB_PORT",
"username": "DB_USERNAME",
"password": "DB_PASSWORD",
"database_name": "DB_DATABASE"
},
"dir": [
"storage/app",
"database/companies"
]
}
}
| Component | Technology |
|---|---|
| Agent | Golang |
| Central Server | Golang |
| Dashboard | React + Vite |
| Database | SQLite (dual DB) |
| Deployment | Single executable |
git clone https://github.com/sanda0/vps_pilot.git
cd vps_pilot
# Build both frontend and backend into single binary
./build.sh
# Binary created at: server/vps_pilot
cd server
cp .env.example .env
# Edit .env with your settings
Required .env variables:
DB_PATH=./data
TOKEN_LIFESPAN=60
TOKEN_SECRET=your-secret-key-min-32-chars
TCP_SERVER_PORT=55001
# Email alerts (optional)
MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
MAIL_USERNAME=your-email@gmail.com
MAIL_PASSWORD=your-app-password
MAIL_FROM_ADDRESS=noreply@vpspilot.com
# Migrations run automatically on first start
./vps_pilot -create-superuser
./vps_pilot
Open your browser: http://localhost:8000
Login with the credentials you created in step 4.
For development with hot reload:
cd server
go run main.go
cd client
npm install
npm run dev
Access:
cd server
# Migrations
make migrate # Run database migrations
make db-info # Show database info
make db-reset # Reset databases
# Building
make build # Build server only
make build-full # Build with embedded UI
make sqlc # Generate SQLC code
# Running
make run # Run server
make dev # Run with hot reload (requires air)
# User Management
make create-superuser # Create admin user
# Testing
make test # Run tests
make test-coverage # Run tests with coverage
# Maintenance
make backup # Backup databases
make clean # Clean build artifacts
Configure in .env for email notifications:
MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
MAIL_USERNAME=your-email@gmail.com
MAIL_PASSWORD=your-app-password
MAIL_FROM_ADDRESS=noreply@vpspilot.com
Docker Compose setup will be available in future releases.
vps_pilot/
├── client/ # React frontend
│ ├── src/
│ │ ├── components/ # Reusable UI components
│ │ ├── pages/ # Page components
│ │ ├── hooks/ # Custom React hooks
│ │ └── lib/ # Utilities and API client
│ └── dist/ # Built frontend (after build)
├── server/ # Go backend
│ ├── cmd/
│ │ ├── app/ # Main application
│ │ │ └── dist/ # Embedded UI (after build)
│ │ └── cli/ # CLI tools
│ ├── internal/
│ │ ├── db/ # Database layer
│ │ ├── handlers/ # HTTP handlers
│ │ ├── services/ # Business logic
│ │ ├── middleware/ # HTTP middleware
│ │ ├── tcpserver/ # TCP server for agents
│ │ └── utils/ # Utilities
│ └── data/ # SQLite databases
├── docs/ # Documentation
├── build.sh # Build script
└── README.md
TOKEN_SECRET (min 32 characters)config.vpspilot.jsonContributions are welcome! Please feel free to submit a Pull Request.
git checkout -b feature/amazing-feature)git commit -m 'Add some amazing feature')git push origin feature/amazing-feature)Build fails:
# Check frontend builds
cd client && npm run build
# Check Go compiles
cd server && go build .
Server won’t start:
# Check if port 8000 is in use
lsof -i :8000
# Check database permissions
ls -la data/
Metrics not showing:
For more help, see QUICKSTART.md or docs/BUILDING.md
Made with ❤️ by Sandakelum
This project is licensed under the MIT License.
⭐ Star this repo if you find it useful!