Skip to content

Vladimir-Urik/OxMgr

Oxmgr

CI GitHub Release License: MIT

Oxmgr is a lightweight, cross-platform Rust process manager and PM2 alternative.

Use it to run, supervise, reload, and monitor long-running services on Linux, macOS, and Windows. Oxmgr is language-agnostic, so it works with Node.js, Python, Go, Rust binaries, and shell commands.

Latest published benchmark snapshots: BENCHMARK.md and benchmark.json

Why Oxmgr

  • Language-agnostic: manage any executable, not just Node.js apps
  • Cross-platform: Linux, macOS, and Windows
  • Low overhead: Rust daemon with persistent local state
  • Practical operations: restart policies, health checks, logs, and CPU/RAM metrics
  • Foreground runtime mode for containers: oxmgr runtime (pm2-runtime style)
  • Config-first workflows with idempotent oxmgr apply
  • PM2 ecosystem compatibility via ecosystem.config.{js,cjs,mjs,json}
  • Interactive terminal UI with live search, filters, and sort controls

Core Features

  • Start, stop, restart, reload, and delete managed processes
  • Foreground runtime command for Docker/Kubernetes (oxmgr runtime)
  • Named services and namespaces
  • Restart policies: always, on-failure, and never
  • Health checks with automatic restart on repeated failures
  • Config-driven file watch with ignore patterns and restart debounce
  • Log tailing, log rotation, and per-process stdout/stderr logs
  • Readiness-aware reloads using health checks
  • Git pull and webhook-driven update workflow
  • Interactive terminal UI with live search, status filters, and CPU/RAM/restart sorting
  • Import and export bundles with .oxpkg
  • Service installation for systemd, launchd, and Windows Task Scheduler

Install

npm

npm install -g oxmgr

Homebrew

brew tap empellio/homebrew-tap
brew install oxmgr

Scoop

scoop bucket add oxmgr https://github.com/empellio/scoop-bucket
scoop install oxmgr/oxmgr

Windows package-manager channels are currently Scoop and npm.

AUR (Arch Linux)

yay -S oxmgr-bin

APT (Debian/Ubuntu)

echo "deb [trusted=yes] https://vladimir-urik.github.io/OxMgr/apt stable main" | sudo tee /etc/apt/sources.list.d/oxmgr.list
sudo apt update
sudo apt install oxmgr

Build from source

git clone https://github.com/Vladimir-Urik/OxMgr.git
cd OxMgr
cargo build --release
./target/release/oxmgr --help

For signed APT setup, local installation, and platform-specific notes, see docs/install.md.

Quick Start

Start a service:

oxmgr start "node server.js" --name api --restart always

Inspect and operate it:

oxmgr list
oxmgr status api
oxmgr logs api -f
oxmgr ui

Inside oxmgr ui, use / for live search, f to cycle status filters, and o to cycle sort order.

Use a config file for repeatable setups:

version = 1

[[apps]]
name = "api"
command = "node server.js"
restart_policy = "on_failure"
max_restarts = 10
stop_timeout_secs = 5
oxmgr validate ./oxfile.toml
oxmgr apply ./oxfile.toml

Container-style foreground mode:

oxmgr runtime ./oxfile.toml
oxmgr runtime ./ecosystem.config.js

PM2 Migration

Oxmgr supports PM2-style ecosystem.config.{js,cjs,mjs,json}, including config-driven watch settings and readiness-aware reload fields, which makes it easier to move existing PM2 setups without rewriting everything on day one.

Useful links:

Documentation

Contributing

Issues, PRs, and documentation improvements are welcome. Start with CONTRIBUTING.md for local setup, checks, and testing expectations.

Community

Oxmgr is created and maintained by Vladimír Urík.

The project is developed under the open-source patronage of Empellio.

License

MIT

Star History

Star History Chart

About

Oxmgr is a modern, lightweight process manager written in Rust, a fast, deterministic alternative to PM2 for managing any executable across platforms.

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Contributors

Languages