Skip to content

PIKACHUIM/VPStatus

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

VPStatus

A self-hosted server monitoring platform with SSH management, DDNS, detection, firewall, scheduled tasks, service management, and file management. Supports both active probing and passive agent reporting.

Architecture

Component Stack Description
panel-cf Node.js + Hono + Cloudflare Workers Backend API, D1 database, KV cache, Durable Objects
panel-ui React + Antd + Vite Frontend (served by panel-cf)
agent-go Go Agent for Linux/Windows/macOS (x86/x64/arm64)
panel-go Go (planned) Self-hosted panel with WebSocket + frp tunneling

Features

  • Dashboard — Global map + card/list view with real-time metrics (CPU, RAM, disk, bandwidth)
  • Server Detail — Historical charts, terminal (SSH/agent), file manager, firewall, tasks, services
  • Node Management — Active (SSH/TCP/UDP/ICMP/HTTP) and passive (agent) modes
  • Detection — PING, TCPing, HTTP checks bound to servers
  • DDNS — Cloudflare, dynv6, DNSPod, Aliyun DNS auto-update
  • Firewall — UFW/iptables/netsh management
  • Scheduled Tasks — crontab/Windows Task Scheduler
  • Service Management — systemctl/sc control
  • File Manager — Browse, upload, download, rename, delete
  • Security — PBKDF2 passwords, AES-256-GCM encrypted secrets, TOTP 2FA, JWT auth, multi-user

Quick Start (Cloudflare Workers)

1. Prerequisites

npm install -g wrangler

2. Create D1 and KV

wrangler d1 create vpstatus
wrangler kv:namespace create vpstatus

Copy the IDs into panel-cf/wrangler.toml.

3. Build frontend

cd panel-ui && npm install && npm run build

4. Run DB migrations

cd panel-cf
npm run db:migrate:local   # local dev
npm run db:migrate         # production

5. Deploy

cd panel-cf && npm run deploy

Open https://your-worker.workers.dev — you will be redirected to /setup on first visit.

Agent Installation

Auto-register (recommended)

Get the registration key from Settings → Registration Key, then on your server:

# Linux/macOS
curl -sSL https://your-panel.example.com/install.sh | sh -s -- \
  -panel https://your-panel.example.com \
  -key YOUR_REGISTRATION_KEY

# Or run the binary directly
./vpstatus-agent -panel https://your-panel.example.com -key YOUR_REGISTRATION_KEY -install

Build agent from source

cd agent-go
make linux     # builds all Linux targets
make windows   # builds all Windows targets
make darwin    # builds all macOS targets
make all       # builds everything

Binaries are output to agent-go/dist/.

Environment / Config

All secrets (JWT, encryption key, registration key) are generated automatically on first /setup. They are stored encrypted in the D1 config table and never exposed via API.

Multi-language Support

English, 简体中文, 繁體中文, 日本語, Français, Deutsch, Русский, Español, Português, Italiano, العربية, 한국어

Security Notes

  • SSH passwords and DDNS API keys are AES-256-GCM encrypted at rest
  • Passwords use PBKDF2 (SHA-256, 100k iterations)
  • JWT HS256 with short-lived access tokens (1h) and refresh tokens (7d)
  • Agent tokens are per-server secrets (not shared across servers)
  • TOTP 2FA supported for all user accounts

About

Serverless Worker for Server Node Monitoring & Remote Management

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages