https://github.com/sanda0/vps_pilot
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.
https://github.com/sanda0/vps_pilot
backup cloud-management golang monitoring postgresql reactjs s3 shadcn-ui time-series timescaledb
Last synced: 10 months ago
JSON representation
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.
- Host: GitHub
- URL: https://github.com/sanda0/vps_pilot
- Owner: sanda0
- License: mit
- Created: 2025-01-23T17:56:08.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-05-31T03:12:33.000Z (about 1 year ago)
- Last Synced: 2025-05-31T11:01:32.351Z (about 1 year ago)
- Topics: backup, cloud-management, golang, monitoring, postgresql, reactjs, s3, shadcn-ui, time-series, timescaledb
- Language: TypeScript
- Homepage:
- Size: 288 KB
- Stars: 18
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
README
# VPS Pilot
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.

## ✨ Features
### 📊 Monitoring
- Agents installed on each node (server). (Agent repo: https://github.com/sanda0/vps_pilot_agent)
- Agents send system metrics to the central server:
- **CPU usage**
- **Memory usage**
- **Network statistics**
- Metrics are visualized in the dashboard with selectable time ranges:
- 5 minutes, 15 minutes, 1 hour, 1 day, 2 days, 7 days.
---
### 🚨 Alerting
- Users can configure alerts based on metric thresholds.
- Notifications sent via:
- **Discord** (✅ Implemented)
- **Email** (✅ Implemented)
- **Slack** (✅ Implemented)
---
### 🚀 Projects Management (TODO)
- Each node can have multiple projects.
- Projects require a `config.vpspilot.json` file.
- Agents scan disks for project config files and send project metadata to the central server.
- Central server will display available projects and allow:
- Running predefined commands.
- Managing project logs.
- Backing up project directories and databases.
**Sample `config.vpspilot.json`:**
```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"
]
}
}
```
> **Note:** This feature is still under development.
---
### ⏲️ Cron Jobs Management (TODO)
- Plan to allow users to create and manage cron jobs on nodes remotely from the dashboard.
- Feature is not implemented yet.
---
## 🛠️ Tech Stack
| Component | Technology |
|------------------|------------|
| Agent | Golang |
| Central Server | Golang |
| Dashboard | React.js |
| Database | TimescaleDB |
---
## ⚙️ Configuration
### Email Alerts
Configure the following environment variables in your `.env` file for email notifications:
```env
MAIL_HOST="your-smtp-host.com"
MAIL_PORT=465
MAIL_USERNAME="your-email@domain.com"
MAIL_PASSWORD="your-email-password"
MAIL_FROM_ADDRESS="noreply@domain.com"
```
### Slack Alerts
For Slack notifications, configure webhook URLs per alert in the dashboard. To create a Slack webhook:
1. Go to your Slack workspace
2. Navigate to Apps → Incoming Webhooks
3. Create a new webhook for your desired channel
4. Copy the webhook URL and paste it in the alert configuration
### Discord Alerts
For Discord notifications, configure webhook URLs per alert in the dashboard. To create a Discord webhook:
1. Go to your Discord server settings
2. Navigate to Integrations → Webhooks
3. Create a new webhook for your desired channel
4. Copy the webhook URL and paste it in the alert configuration
---
## 📦 Installation
(Instructions will be added soon. Likely via Docker Compose or manual Go/React build.)
---
## 📅 Roadmap
- [x] Real-time metrics collection (CPU, Memory, Network)
- [x] Discord alert integration
- [x] Email alert integration
- [x] Slack alert integration
- [ ] Project management via `config.vpspilot.json`
- [ ] Remote command execution for projects
- [ ] Project backups (database + directories)
- [ ] Remote cron job creation and management
---
## 🧑💻 Author
Made with ❤️ by [Sandakelum](https://github.com/sanda0)
---
## 📜 License
This project is licensed under the [MIT License](LICENSE).