If you've ever set up a server running a mix of Node.js, Python, and Go services, you know the pain. PM2 is great — until you realise it requires Node.js on every machine just to manage processes that have nothing to do with Node.
That was my breaking point.
The Problem
I had a Linux server running a Python worker, and a couple of Node.js services. PM2 worked fine for the Node stuff, but managing everything through it meant dragging in a Node runtime as a hard dependency just to supervise processes that didn't need it at all.
I looked at alternatives. Supervisord is Python-dependent. systemd works but it's not exactly developer-friendly for per-project process management. Everything else was either too basic or too complex.
So I built APM.
What APM Is
APM is a production-grade process manager for Linux, written in Go and distributed as a 2.5MB static binary. No runtime. No dependencies. No config files required to get started.
Drop it on any Linux box and you're running:
curl -sL https://processmanager.dev/install.sh | bash
That's it.
What Makes It Different
- Language-agnostic by design. Node.js, Python, Go, Rust, Ruby, PHP — if it runs on Linux, APM can supervise it. One tool for your entire stack.
- Built-in reverse proxy. For most setups you can skip Nginx entirely. APM handles routing directly, keeping your infrastructure simpler.
- Vanguard Firewall with token bucket rate limiting. Built-in rate limiting per route without bolting on a separate tool.
- mTLS support. Mutual TLS for secure service-to-service communication, configured directly in APM.
- Live web GUI + CLI monitor. Real-time process stats, logs, CPU and memory usage — accessible from a browser or your terminal, whichever you prefer.
- Rolling restarts with zero downtime. APM migrates active sessions during restarts, so deployments don't drop connections.
- Broad distro compatibility. Tested on Arch, Ubuntu, Debian, Alpine, Fedora, and Raspberry Pi.
Who It's For
APM is built for developers and DevOps teams who:
- Run mixed-language stacks on Linux
- Want fewer moving parts in their infrastructure
- Are tired of maintaining Nginx configs just for basic reverse proxying
- Need something that works the same across every distro without fiddling with dependencies
What It Looks Like
The web GUI gives you a live view of all running processes, with per-process CPU and memory graphs, log streaming, and controls to start, stop, and restart. The CLI monitor mirrors this in your terminal for SSH sessions.
Where to Get It
Website + docs: processmanager.dev
Manual: processmanager.dev/manual.html
APM is at v1.3.0 and production-ready. I'm actively developing it and genuinely interested in feedback — especially from anyone running it on unusual distros or mixed-language setups.
What's your current setup for managing Linux processes? I'd love to know what pain points you're hitting that APM might help with.
Top comments (0)