Blog

Best Process Manager for Homelab in 2026: PM2, Supervisor, systemd, Celistra Compared

Akshay Sarode
Verdict

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

  1. systemd — built into every modern Linux distro. Unit files in /etc/systemd/system/. systemctl start/stop/enable. The default answer.
  2. Supervisor (supervisord) — Python-based, INI config, single-host. Detailed comparison.
  3. PM2 — Node-first but works for any binary. Cluster mode for Node. Detailed comparison.
  4. Docker Compose — for containerized services. docker compose up -d.
  5. Portainer — UI for Docker / Swarm / Kubernetes. Detailed comparison.
  6. Celistra — multi-machine, sandbox-by-default, AI-agent-aware.

The matrix

ToolHostsRight when…Wrong when…
systemd1Anything system-level on LinuxYou want a UI without writing your own
Supervisor1Long-running Python / non-system daemonsMulti-host or you want a real UI
PM21Node services, especially with cluster modeMulti-host or non-Node
Docker Compose1Your services are already containersYou don't want to containerize
Portainer1+UI for already-Dockerized homelabYou haven't committed to containers
Celistra1+Multi-machine, AI agents, sandbox needsOne 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:

That's three tools, three problems, no overlap. Cleaner than trying to make one tool do all jobs.

Auto-restart semantics

ToolRestart policy
systemdRestart=always + StartLimitBurst
Supervisorautorestart=true + startretries
PM2Auto, with max_restarts + min_uptime
Dockerrestart: unless-stopped
Celistra5/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)

  1. systemd — already on every Linux box, free, can manage anything. Start here.
  2. Docker Compose + Portainer — for the container tier of your homelab.
  3. Celistra — for the multi-machine + AI-agent + sandbox + mobile-approval tier.
  4. (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.