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 limits

  • Reverse proxy (built-in)
    HTTP, WebSocket, TCP, and UDP with round-robin load balancing and zero-downtime rolling restarts

  • Vanguard 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 box

  • File watcher
    Regex-based source monitoring with ignore patterns and debounce for automatic restarts

  • Live web GUI
    Real-time dashboard at localhost:6789 with CPU, memory, connections, and worker state

  • TLS everywhere
    Native TLS and mTLS support across all protocols

  • StatsD 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.