# Third Party Applications and Libraries

There are a number of third party applications that can be useful together with Supervisor. This list aims to summarize them and make them easier to find.

See README.rst for information on how to contribute to this list.

## Dashboards and Tools for Multiple Supervisor Instances

These are tools that can monitor or control a number of Supervisor instances running on different servers.

cesi

  Web-based dashboard written in Python.

Django-Dashvisor

  Web-based dashboard written in Python. Requires Django 1.3 or 1.4.

Nodervisor

  Web-based dashboard written in Node.js.

Supervisord-Monitor

  Web-based dashboard written in PHP.

Supervisord-Monitor 2

  Modern and adaptive next gen web-based dashboard written in PHP.

SupervisorUI

  Another Web-based dashboard written in PHP.

supervisorclusterctl

  Command line tool for controlling multiple Supervisor instances using Ansible.

suponoff

  Web-based dashboard written in Python 3. Requires Django 1.7 or later.

Supvisors

  Designed for distributed applications, written in Python 3.6. Includes an extended XML-RPC API, a Web-based dashboard and special features such as staged start and stop.

multivisor

  Centralized supervisor web-based dashboard. The frontend is based on VueJS. The backend runs a flask web server. It communicates with each supervisor through a specialized supervisor event-listener based on zerorpc.

Dart

  Web-based dashboard and command line tool written in Python using PostgreSQL with a REST API, event monitoring, and configuration management.

Polyvisor

  Web-based dashboard written in Python using flask web server. Frontend based on Svelte result in lightweighted packages. Communicate via supervisor’s event-listener. Providing system resource management via visualized charts & easy to config processes configs via web interface.

## Third Party Plugins and Libraries for Supervisor

These are plugins and libraries that add new functionality to Supervisor. These also includes various event listeners.

superlance

  Provides set of common eventlisteners that can be used to monitor and, for example, restart when it uses too much memory etc.

superhooks

  Send Supervisor event notifications to HTTP1.1 webhooks.

mr.rubber

  An event listener that makes it possible to scale the number of processes to the number of cores on the supervisor host.

supervisor-wildcards

  Implements start/stop/restart commands with wildcard support for Supervisor. These commands run in parallel and can be much faster than the built-in start/stop/restart commands.

mr.laforge

  Lets you easily make sure that `supervisord` and specific processes controlled by it are running from within shell and Python scripts. Also adds a `kill` command to supervisor that makes it possible to send arbitrary signals to child processes.

supervisor_cache

  An extension for Supervisor that provides the ability to cache arbitrary data directly inside a Supervisor instance as key/value pairs. Also serves as a reference for how to write Supervisor extensions.

supervisor_twiddler

  An RPC extension for Supervisor that allows Supervisor’s configuration and state to be manipulated in ways that are not normally possible at runtime.

supervisor-stdout

  An event listener that sends process output to supervisord’s stdout.

supervisor-serialrestart

  Adds a `serialrestart` command to `supervisorctl` that restarts processes one after another rather than all at once.

supervisor-quick

  Adds `quickstart`, `quickstop`, and `quickrestart` commands to `supervisorctl` that can be faster than the built-in commands. It works by using the non-blocking mode of the XML-RPC methods and then polling `supervisord`. The built-in commands use the blocking mode, which can be slower due to `supervisord` implementation details.

supervisor-logging

  An event listener that sends process log events to an external Syslog instance (e.g. Logstash).

supervisor-logstash-notifier

  An event listener plugin to stream state events to a Logstash instance.

supervisor_cgroups

  An event listener that enables tying Supervisor processes to a cgroup hierarchy. It is intended to be used as a replacement for cgrules.conf.

supervisor_checks

  Framework to build health checks for Supervisor-based services. Health check applications are supposed to run as event listeners in Supervisor environment. On check failure Supervisor will attempt to restart monitored process.

Superfsmon

  Watch a directory and restart programs when files change. It can monitor a directory for changes, filter the file paths by glob patterns or regular expressions and restart Supervisor programs individually or by group.

## Libraries that integrate Third Party Applications with Supervisor

These are libraries and plugins that makes it easier to use Supervisor with third party applications:

collective.recipe.supervisor

  A buildout recipe to install supervisor.

puppet-module-supervisor

  Puppet module for configuring the supervisor daemon tool.

puppet-supervisord

  Puppet module to manage the supervisord process control system.

ngx_supervisord

  An nginx module providing API to communicate with supervisord and manage (start/stop) backends on-demand.

Supervisord-Nagios-Plugin

  A Nagios/Icinga plugin written in Python to monitor individual supervisord processes.

nagios-supervisord-processes

  A Nagios/Icinga plugin written in PHP to monitor individual supervisord processes.

supervisord-nagios

  A plugin for supervisorctl to allow one to perform nagios-style checks against supervisord-managed processes.

php-supervisor-event

  PHP classes for interacting with Supervisor event notifications.

PHP5 Supervisor wrapper

  PHP 5 library to manage Supervisor instances as object.

Symfony2 SupervisorBundle

  Provide full integration of Supervisor multiple servers management into Symfony2 project.

sd-supervisord

  Server Density plugin for supervisor.

node-supervisord

  Node.js client for Supervisor’s XML-RPC interface.

node-supervisord-eventlistener

  Node.js implementation of an event listener for Supervisor.

ruby-supervisor

  Ruby client library for Supervisor’s XML-RPC interface.

Sulphite

  Sends supervisord events to Graphite.

supervisord.tmbundle

  TextMate bundle for supervisord.conf.

capistrano-supervisord

  Capistrano recipe to deploy supervisord based services.

capistrano-supervisor

  Another package to control supervisord from Capistrano.

chef-supervisor

  Chef cookbook install and configure supervisord.

SupervisorPHP

  Complete Supervisor suite in PHP: Client using XML-RPC interface, event listener and configuration builder implementation, console application and monitor UI.

Supervisord-Client

  Perl client for the supervisord XML-RPC interface.

supervisord4j

  Java client for Supervisor’s XML-RPC interface.

Supermann

  Supermann monitors processes running under Supervisor and sends metrics to Riemann.

gulp-supervisor

  Run Supervisor as a Gulp task.

Yeebase.Supervisor

  Control and monitor Supervisor from a TYPO3 Flow application.

dokku-supervisord

  Dokku plugin that injects `supervisord` to run applications.

dokku-logging-supervisord

  Dokku plugin that injects `supervisord` to run applications. It also redirects `stdout` and `stderr` from processes to log files (rather than the Docker default per-container JSON files).

superslacker

  Send Supervisor event notifications to Slack.

supervisor-alert

  Send event notifications over Telegram or to an arbitrary command.

supervisor-discord

  Send event notifications to Discord via webhooks.