vesto-pm
v1.0.8
Published
High-performance process manager for Node.js applications.
Downloads
1,109
Maintainers
Readme
Vesto (vst)
High-performance and reliable process manager for Node.js applications, written in Go.
Vesto is designed to solve common issues like double-start and high resource consumption (often seen in tools like PM2) by using OS-level locking.
Version
Current NPM package version: 1.0.8
Features
- Numeric ID system (manage by name or ID)
- Auto-spawn daemon (runs in the background when needed)
- Live log streaming (
vst logs) - Resource guard: automatic restart on RAM limit (
max_memory) - Smart auto-restart: exponential backoff to prevent CPU runaway
- Native webhooks with automatic platform detection (Discord / Slack / Telegram)
- Native Log Rotation (Log Muhafızı): zero-downtime log management
- Interactive Monitoring (TUI):
htop-like live process dashboard viavst monit - Windows service support
Installation
npm install -g vesto-pmQuick Start
Start an application
vst start app.js --name my-appStart from a folder config
If your current directory has a vesto.yaml, Vesto will load it automatically:
vst start allList applications
vst listMonitor logs
vst logs my-app
vst logs 0Configuration (vesto.yaml)
global_webhook_url: "https://your-webhook-url"
max_log_size: "10MB"
keep_logs: 5
applications:
- name: test-app
script: "node test-app.js"
cwd: "."
max_memory: "200MB"
webhook_url: "https://app-specific-webhook-url"
max_log_size: "20MB" # Optionally override global settings
keep_logs: 3Log Rotation (Log Muhafızı)
Vesto features a built-in log rotation system integrated directly into the daemon's log management.
- The daemon checks the log files of managed applications every 5 minutes.
- If
app.logexceedsmax_log_size:app.logis rotated toapp.log.1(previous logs are shifted:.1 -> .2 -> ...).- A new empty
app.logis created. - The oldest files exceeding
keep_logsare deleted.
- Windows Support: To bypass "file in use" errors on Windows, the active log file is closed momentarily, rotated, and reopened. Writing is blocked natively with a sub-millisecond lock, ensuring the application continues running without log loss or downtime.
Notes:
- Log rotation is disabled if
max_log_sizeis not configured. - If
max_log_sizeis set butkeep_logsis not specified, it defaults to5.
Webhooks
Vesto sends webhook notifications asynchronously (non-blocking) for:
- Crash: when the process exits with an error
- Memory guard: when the process is restarted due to
max_memory - Backoff: when exponential backoff is engaged due to frequent crashes
If webhook_url is not set for an app, global_webhook_url is used.
Webhook URL is automatically detected and formatted accordingly:
- Discord: rich embeds
- Slack: blocks
- Telegram:
sendMessagepayload (requireschat_idquery parameter in the URL)
Commands
| Command | Description |
|-------|----------|
| vst start <name/id/file/all> | Starts an app by name, ID, script file, or all apps from config. |
| vst stop <name/id/all> | Stops an app or all. |
| vst restart <name/id/all> | Restarts an app or all. |
| vst delete <name/id> | Deletes an app from the managed list. |
| vst list | Shows status, CPU, and RAM usage. |
| vst monit | Interactive process monitor (TUI) with htop-like interface. |
| vst logs <name/id> | Live log streaming. |
| vst status | Checks if the daemon is active. |
| vst kill | Stops the daemon, stops all apps, cleans socket/pid, and exits. |
| vst shutdown | Alias for vst kill. |
| vst install | Installs Vesto as a Windows service. |
| vst uninstall | Uninstalls the Windows service. |
| vst service <start|stop|restart> | Controls the Windows service. |
Updating
If you see an EPERM error while updating, the daemon is still running.
vst kill
npm install -g vesto-pm@latestLicense
MIT
