Best Process Manager for Homelab in 2026: PM2, Supervisor, systemd, Celistra Compared
For a single Linux box: systemd is already there and is great. For Node services: PM2. For Python daemons: Supervisor. For containers: Docker Compose + Portainer if you want a UI. For multi-machine + sandbox + AI agents: Celistra.
Every "best homelab process manager" list ranks them as if you have to pick one. You don't. They serve different shapes of workload. Here's the actual decision matrix.
The contenders
- systemd — built into every modern Linux distro. Unit files in
/etc/systemd/system/.systemctl start/stop/enable. The default answer. - Supervisor (supervisord) — Python-based, INI config, single-host. Detailed comparison.
- PM2 — Node-first but works for any binary. Cluster mode for Node. Detailed comparison.
- Docker Compose — for containerized services.
docker compose up -d. - Portainer — UI for Docker / Swarm / Kubernetes. Detailed comparison.
- Celistra — multi-machine, sandbox-by-default, AI-agent-aware.
The matrix
| Tool | Hosts | Right when… | Wrong when… |
|---|---|---|---|
| systemd | 1 | Anything system-level on Linux | You want a UI without writing your own |
| Supervisor | 1 | Long-running Python / non-system daemons | Multi-host or you want a real UI |
| PM2 | 1 | Node services, especially with cluster mode | Multi-host or non-Node |
| Docker Compose | 1 | Your services are already containers | You don't want to containerize |
| Portainer | 1+ | UI for already-Dockerized homelab | You haven't committed to containers |
| Celistra | 1+ | Multi-machine, AI agents, sandbox needs | One host with one Node app |
Pick by use case
"I just want my Plex / Jellyfin / Vaultwarden to stay up"
Use the Docker images those projects ship. Docker Compose for the orchestration. Portainer if you want a UI.
"I have a Python scraper that should run forever"
Supervisor or systemd. Both work. systemd is already installed; Supervisor's INI files are slightly friendlier than systemd unit files for non-systemd-natives.
"I'm running a Node app and I want cluster mode"
PM2. Nothing else does this as cleanly.
"I have three machines and I want to see all running processes in one place"
Celistra. None of the others have native multi-host UI.
"I'm running AI agents that need supervision, sandboxing, and mobile approvals"
Celistra. The capability tokens, kernel sandbox, and haptic mobile approvals are not what PM2 / Supervisor / systemd are for.
"I want to manage Docker containers across hosts with a UI"
Portainer. Container-native by design.
Stacking
Most real homelabs end up with two or three of these:
- systemd for the system services that should always be up
- Docker Compose + Portainer for the containerized apps
- Celistra for the experimental / AI-agent / interactive workloads
That's three tools, three problems, no overlap. Cleaner than trying to make one tool do all jobs.
Auto-restart semantics
| Tool | Restart policy |
|---|---|
| systemd | Restart=always + StartLimitBurst |
| Supervisor | autorestart=true + startretries |
| PM2 | Auto, with max_restarts + min_uptime |
| Docker | restart: unless-stopped |
| Celistra | 5/60s rolling-window ceiling |
The 5/60s rolling window is what we built for Celistra after watching AI agents crash-loop on bad config. Why this shape, not exponential backoff.
Best-for-homelab summary (2026 take)
- systemd — already on every Linux box, free, can manage anything. Start here.
- Docker Compose + Portainer — for the container tier of your homelab.
- Celistra — for the multi-machine + AI-agent + sandbox + mobile-approval tier.
- (Skip) Supervisor and PM2 are great but mostly redundant if you have systemd already, unless you specifically need PM2's cluster mode or Supervisor's INI-config simplicity.
FAQ
Is systemd really enough for a homelab?
For most things, yes. systemd is full-featured: dependencies, restart policies, journal logging, socket activation, timers. The reason people add Supervisor or PM2 is config-file ergonomics or cluster mode, not core capability.
Can I run all of these together?
Yes, on the same host. They use different control planes.
What about Nomad / K3s for homelab?
Overkill for most homelabs. The case for going one rung lighter.
Where does Cockpit fit?
Cockpit is per-host system management — different shape from process managers. Use Cockpit for system metrics + Celistra for processes.