easy-vps
v0.2.5
Published
Install dependencies, point domains, deploy apps and run Postgres on a VPS from one UI
Maintainers
Readme
easy-vps
Install dependencies, point domains, deploy apps and run Postgres on a VPS from one UI.
easy-vps is a control panel that runs on your server and gives you a web interface for managing nginx, pm2, docker, certbot, and PostgreSQL, plus deploying apps and pointing domains — all from a single dashboard.
Requirements
- A Linux server (systemd-based distros recommended: Ubuntu, Debian, etc.)
- Node.js >= 18 (the
easy-vpsCLI requires it) npm(ships with Node.js)root/sudo access if you want the panel to run as a systemd service and open its firewall port automatically. Without root it still runs as a background process, just without service management and firewall changes.
Optional, used by their respective features:
nginx+certbot— domain / HTTPS managementpm2ordocker— app deploymentpostgres— managed databasesufw— automatic firewall port opening
Install
Install globally from npm:
npm install -g easy-vpsThe postinstall script automatically:
- Verifies the package payload
- Prepares the web UI
- Opens the panel's port in
ufw(when run as root with an active firewall) - Starts the panel as a background service (systemd when available, otherwise a detached process)
When it finishes, open the printed URL in your browser:
http://<your-server-ip>:41556/Install from source
git clone <repo-url> easy-vps
cd easy-vps
npm install
npm run build
node bin/cli.js startThe web UI is prebuilt in the published tarball. From a source checkout the UI is built from
client-ui/duringnpm run build.
Commands
The easy-vps command exposes the following subcommands:
easy-vps # run the panel in the foreground (default)
easy-vps start # start the panel in the background
easy-vps stop # stop the background panel
easy-vps restart # restart the background panel
easy-vps status # show whether the panel is running
easy-vps logs # print the path to the panel log
easy-vps uninstall # stop the panel and remove its service
easy-vps --help # show full helpOptions
-p, --port <port> Port to listen on (default: 41556, env: EASY_VPS_PORT)
--host <host> Address to bind (default: 0.0.0.0, env: EASY_VPS_HOST)
-v, --version Print version
-h, --help Show helpExample:
easy-vps start --port 8080 --host 127.0.0.1Configuration
| Variable | Default | Description |
| -------------------- | ----------- | ------------------------------------ |
| EASY_VPS_PORT | 41556 | Port the panel listens on |
| EASY_VPS_HOST | 0.0.0.0 | Address the panel binds to |
| EASY_VPS_NO_AUTOSTART | unset | Set to skip the postinstall service start |
Uninstall
easy-vps uninstall
npm rm -g easy-vpsRun easy-vps uninstall first so the systemd unit (if created) is removed cleanly
before removing the package.
Service behavior
- With systemd + root: a
easy-vps.serviceunit is created, enabled, and restarted on boot. Logs:journalctl -u easy-vps -f. - Without systemd / not root: the panel runs as a detached background process.
Logs are written to
~/.easy-vps/easy-vps.log(or/var/lib/easy-vps/easy-vps.logwhen run as root).
