- 1.0.3Latest
- 1.0.2
- 1.0.1
- 1.0.0
- 1.0.0-rc.45
- 1.0.0-rc.44
- 1.0.0-rc.43
- 1.0.0-rc.42
- 1.0.0-rc.41
- 1.0.0-rc.40
- 1.0.0-rc.39
- 1.0.0-rc.38
- 1.0.0-rc.37
- 1.0.0-rc.36
- 1.0.0-rc.35
- 1.0.0-rc.34
- 1.0.0-rc.33
- 1.0.0-rc.32
- 1.0.0-rc.31
- 1.0.0-rc.30
- 1.0.0-rc.29
- 1.0.0-rc.28
- 1.0.0-rc.27
- 1.0.0-rc.26
- 1.0.0-rc.25
- 1.0.0-rc.24
- 1.0.0-rc.23
- 1.0.0-rc.22
- 1.0.0-rc.21
- 1.0.0-rc.20
- 1.0.0-rc.19
- 1.0.0-rc.18
- 1.0.0-rc.17
- 1.0.0-rc.16
- 1.0.0-rc.15
- 1.0.0-rc.14
- 1.0.0-rc.13
- 1.0.0-rc.12
- 1.0.0-rc.11
- 1.0.0-rc.10
- 1.0.0-rc.9
- 1.0.0-rc.8
- 1.0.0-rc.7
- 1.0.0-rc.6
- 1.0.0-rc.5
- 1.0.0-rc.4
- 1.0.0-rc.3
- 1.0.0-rc.2
- 1.0.0-rc.1
- 1.0.0-rc.0
- 1.0.0-beta.37
- 1.0.0-beta.36
- 1.0.0-beta.35
- 1.0.0-beta.34
- 1.0.0-beta.33
- 1.0.0-beta.32
- 1.0.0-beta.31
- 1.0.0-beta.30
- 1.0.0-beta.29
- 1.0.0-beta.28
- 1.0.0-beta.27
- 1.0.0-beta.26
- 1.0.0-beta.25
- 1.0.0-beta.24
- 1.0.0-beta.23
- 1.0.0-beta.22
- 1.0.0-beta.21
- 1.0.0-beta.20
- 1.0.0-beta.19
- 1.0.0-beta.18
- 1.0.0-beta.17
- 1.0.0-beta.16
- 1.0.0-beta.15
- 1.0.0-beta.14
- 1.0.0-beta.13
- 1.0.0-beta.12
- 1.0.0-beta.11
- 1.0.0-beta.10
- 1.0.0-beta.9
- 1.0.0-beta.8
- 1.0.0-beta.7
- 1.0.0-beta.6
- 1.0.0-beta.5
- 1.0.0-beta.4
- 1.0.0-beta.3
- 1.0.0-beta.2
- 1.0.0-beta.1
- 1.0.0-beta.0
- 1.0.0-alpha-35
- 1.0.0-alpha-34
- 1.0.0-alpha-33
- 1.0.0-alpha-32
- 1.0.0-alpha-31
- 1.0.0-alpha-30
- 1.0.0-alpha-29
- 1.0.0-alpha-28
- 1.0.0-alpha-27
- 1.0.0-alpha-26
- 1.0.0-alpha-25
- 1.0.0-alpha-23
- 1.0.0-alpha-22
- 1.0.0-alpha-21
- 1.0.0-alpha-20
- 1.0.0-alpha-19
- 1.0.0-alpha-18
- 1.0.0-alpha-17
- 1.0.0-alpha-16
- 1.0.0-alpha-15
- 1.0.0-alpha-14
- 1.0.0-alpha-13
- 1.0.0-alpha-12
- 1.0.0-alpha-11
- 1.0.0-alpha-10
- 1.0.0-alpha-9
- 1.0.0-alpha-8
- 1.0.0-alpha-7
- 1.0.0-alpha-6
- 1.0.0-alpha-5
- 1.0.0-alpha-4
- 1.0.0-alpha-3
- 1.0.0-alpha-2
- 1.0.0-alpha-1
- 1.0.0-alpha.0
- 0.0.4
- 0.0.3
- 0.0.2
- 0.0.1-dev.0
Universal process manager.
This is the source code repository, documentation available at hexagon.github.io/pup.
Pup - The process manager
Pup is a powerful process manager for Deno, designed to simplify the management of your applications and services. Here are some of the key features:
- Easy process management: Define, control, and manage your processes with simple commands and configuration options.
- Multiple start policies: Set up processes to start automatically, on a schedule (using cron expressions), or when files change.
- Restart policies: Configure processes to restart automatically, either always or only in case of errors, with optional delay and restart limits.
- Run as a service: Built in service installer for Linux (sysvinit, systemd, upstart), macOS and Windows.
- Clustering and load balancing: Scale your application seamlessly with built-in clustering and load balancing capabilities.
- Flexible configuration: Define global settings and per-process configurations, including logging, working directories, environment variables, and more.
- Plugin support: Extend Pup’s functionality with custom plugins for additional features and integrations.
- CLI and programmatic usage: Manage your processes using the Pup command-line interface, or integrate Pup directly into your Deno applications.
- Process Telemetry and IPC: Pup can gather telemetry data from Deno client processes, such as memory usage and current working directory, providing deeper insights into managed processes. The telemetry feature also enables inter-process communication, allowing connected processes to interact with one another.
This readme is primarily for the source code and development of Pup, if you’re looking for instructions you should head over to https://hexagon.github.io/pup
Note Programmatic usage, process telemetry, and IPC are currently available only when running Deno client processes.
Quick guide
Install/Upgrade Pup using deno
Before using Pup, you need to have Deno installed on your system. You can download and install Deno with a single command following the instructions provided on the official website: https://deno.land/#installation
With Deno in place, open your terminal and execute the following commands to install or upgrade Pup:
# Install
deno install -Afr https://deno.land/x/pup/pup.ts
# Upgrade/Downgrade
pup --upgrade
This command downloads the Pup executable and installs it on your system. The A
flag grants all permissions, f
overwrites any existing installation, and r
ensures no cache is used.
Single command example
Use pup run
with --cmd
and a restart policy, for example --autostart
pup run --cmd "deno run server.ts" --autostart
Ecosystem example
Use the cli helpers to initialise a new configuration file pup.json
pup init --id "my-server" --cmd "deno run -A server.ts" --autostart
Add hourly task
pup append --id "my-task" --cmd "deno run -A task.ts" --cron "0 0 * * * *"
Launch your ecosystem
pup run
For the full manual, see https://hexagon.github.io/pup
Example setups
Full examples available at /docs/examples
Contributions and Development
Contributions to Pup are very welcome! Please read the contibuting section of the manual, fork the repository, make your changes, and submit a pull request.
We appreciate all feedback and contributions that help make Pup better!
Examples of areas that need extra attention right now
- Plugin development: Invent new plugins for Pup, or help out by improving the existing (work in progress) web-interface plugin. See https://hexagon.github.io/pup/examples/plugins/README.html to get started.
- Testing: Pup needs to be thoroughly tested; help out by using and testing it in various scenarios. Report any issues you find.
- Reading: Review the documentation and report any issues or areas for improvement.
- Bugfixes: Find bugs, report them, and optionally create a PR to fix the issue.
- Spread the word: If you find Pup useful, spread the word to attract more users, developers, and testers to the community. Sharing your experiences and showcasing Pup’s capabilities can help grow and strengthen the project.