cloud-ide-vps-manager
v1.0.235
Published
Self-hosted VPS control panel — MongoDB, Mail, Security, Backups from one UI over SSH
Maintainers
Readme
cloud-ide-vps-manager
Self-hosted VPS control panel. SSH into all your servers from one UI — no agents needed on remote servers.
Quick Start
# Run instantly (no install needed)
npx cloud-ide-vps-manager
# Or install globally
npm install -g cloud-ide-vps-manager
cloud-ide-vps-managerFirst run will ask for a password and port, then open your browser.
CLI Options
cloud-ide-vps-manager # start (setup on first run)
cloud-ide-vps-manager --port 8080 # custom port
cloud-ide-vps-manager --reset # reset config / change password
cloud-ide-vps-manager --version
cloud-ide-vps-manager --helpConfig is stored in ~/.cloud-ide-vps-manager/.env
Features
| Module | What it does | |---|---| | Servers | Add unlimited servers, SSH key auth, test connection, live CPU/RAM/disk/service stats | | Task Runner | One-click tasks across all categories, real-time terminal output via SSE | | MongoDB | Install v7, enable auth, create users, backup/restore with AES encryption, memory encryption (RAM lock + disable swap), disk encryption (LUKS), field-level encryption codegen, migrate between servers | | Mail Server | Postfix + Dovecot + MariaDB virtual mailboxes (not OS users), DKIM/SPF/DMARC, Roundcube webmail | | System | apt update, swap, UFW firewall, fail2ban, SSH hardening, auto security updates, Node.js + PM2, Nginx, SSL via Certbot | | Backups | MongoDB dump + compress + AES encrypt + S3 upload via rclone | | Monitoring | Netdata install, live stats dashboard | | Schedules | Cron-based scheduler with email + Telegram alerts on failure | | Custom Tasks | Write your own shell tasks, they appear in Task Runner |
Architecture
[Your machine OR cheap manager VPS]
runs: npx cloud-ide-vps-manager
│
│ SSH (key auth only)
│
┌──────┴────────┐
▼ ▼
Server 1 Server 2 ...
(app/db/mail) (anything)All services on one server? Just point every task at the same server.
Adding Servers
- Open dashboard → Servers → Add Server
- Enter: name, IP/host, SSH port (default 22), SSH user, path to your private key on the machine running this app
- Click Test to verify connection
MongoDB Encryption
The manager offers three layers:
| Layer | Task | What it does |
|---|---|---|
| Memory | Memory Encryption | Locks mongod process memory (LimitMEMLOCK=infinity), disables core dumps, disables all swap — data never reaches disk unencrypted |
| Disk | Disk Encryption (LUKS) | Encrypts entire data volume — raw disk reads are unreadable |
| Field | Field Encryption Codegen | Generates a Node.js AES-256-CBC module for encrypting specific fields before they are saved to MongoDB |
Publishing to GitHub Packages
# Login to GitHub Packages
npm login --registry=https://npm.pkg.github.com --scope=@cloudidesys
# Publish
npm publishProject Structure
cloud-ide-vps-manager/
├── bin/
│ └── cli.js # CLI entry point (npx / global install)
├── public/
│ └── index.html # Full single-page UI
├── scripts/
│ ├── tasks.js # All task definitions
│ └── alerts.js # Email + Telegram notifications
├── server.js # Express backend
├── package.json
└── .env.exampleAdding Custom Tasks via Code
Edit scripts/tasks.js, add to the TASKS array:
{
id: "my_task",
name: "My Task",
icon: "🚀",
category: "system", // system | mongodb | mail | backups | monitoring | custom
desc: "Short description shown on the card",
// requiresInput: [{ key: "domain", label: "Domain", placeholder: "example.com" }],
steps: [
{ label: "Step description", cmd: "sudo some-command" },
// cmd can be a function receiving input values:
{ label: "Use input", cmd: i => `sudo certbot --nginx -d ${i.domain}` },
// critical: false means failure won't abort the task
{ label: "Optional step", cmd: "...", critical: false },
],
}License
MIT
