Frequently Asked Questions

Why not just use supervisord / systemd / pm2?
You absolutely can. Pypen exists because none of those handle the Python-specific parts — pyenv versions, per-project venvs, git pull-on-restart, in-container auto-update — out of the box. Pypen bundles them with a web UI.
How many workers can one Pypen handle?
There is no hard cap. In practice you are bounded by RAM and file descriptors on the host. 20–30 lightweight bots on a 1 GB VPS is comfortable.
Does it work without Docker?
Yes — see Installing from Source. You will need to install pyenv, uv, git and s6-overlay yourself.
Can I run it on a Raspberry Pi?
Yes, on arm64. Build the Docker image on the Pi, or run from source.
What happens if my repo has no requirements.txt?
The venv is still built, just empty. Pypen will then run run_command against the bare interpreter. pyproject.toml is also detected automatically.
How do I update a single worker without restarting everything?
Use the dashboard's Restart button. With pull_commits = "true" (the default) it does git pull first.
Are secrets in project.toml safe?
project.toml is treated as a secret file. Mount it as a Docker volume or inject it from a secret manager — do not commit it. The dashboard never displays raw token values.
How do I migrate from another supervisor?
Copy each program entry into a [[project]] table. Most fields map one-to-one (commandrun_command, environment[project.env], etc.).
Can two workers share files?
Each worker runs in its own working directory, but they share the host filesystem. Mount a common volume and reference it by absolute path from each project's run_command.
Is there an HTTP API?
Yes — the dashboard's controls are backed by a small JSON API. It is intentionally undocumented at the moment because the surface is still in flux.