About
APM — Advanced Process Manager for Linux (now with IPC) 🔗 processmanager.dev
APM is a production-grade process manager for Linux, shipped as a single static binary with zero external dependencies. It supervises and connects applications across any language — Node.js, Go, Python, Rust, Ruby, PHP, Java, Bun, Deno, or plain shell.
If it runs on Linux, APM can manage it — and now, with v2, they can talk to each other too.
⚡ What’s new in v2
Built-in IPC (Inter-Process Communication)
Run multiple services in different languages and let them communicate seamlessly through APM — no Redis, no message brokers, no extra ports.
APM acts as the communication layer between workers, enabling simple, direct messaging across your stack.
🔧 Core capabilities
Process supervision
Start, stop, restart, and scale processes with automatic crash recovery, restart delays, and limitsReverse proxy (built-in)
HTTP, WebSocket, TCP, and UDP with round-robin load balancing and zero-downtime rolling restartsVanguard Firewall
IP allow/block lists, per-IP rate limiting (token bucket), path bans, and auto-ban with TTL
Includes CDN IP ranges out of the boxFile watcher
Regex-based source monitoring with ignore patterns and debounce for automatic restartsLive web GUI
Real-time dashboard at localhost:6789 with CPU, memory, connections, and worker stateTLS everywhere
Native TLS and mTLS support across all protocolsStatsD export (WIP)
Metrics over UDP to Datadog, InfluxDB, Graphite, etc.
💡 Why APM
Most setups today stitch together multiple tools (PM2 + Nginx + Redis + firewall rules…).
APM replaces that with a single binary that does it all — including cross-language IPC.
Built in Go for performance and simplicity.
Available as static binaries (x86_64, ARM64, ARMv7).
No setup, no dependencies — run one command and you’re live.
Indie-built, actively evolving, and shaped by real-world use.
