Domain scoped
Programs are assigned to exact Plesk domain IDs. Customers and resellers only see programs they are allowed to access.
Plesk Extension
Create, repair, monitor, and troubleshoot Supervisor programs from Plesk with domain-scoped access, correct Plesk PHP resolution, and live log controls.
Supervisor Manager keeps process control close to Plesk domains, so background commands can be managed without handing every user a server shell.
Programs are assigned to exact Plesk domain IDs. Customers and resellers only see programs they are allowed to access.
Generated configs resolve php through the selected domain PHP handler, such as Plesk PHP 8.4.
Admin diagnostics detect broken Supervisor sockets and provide a repair action for supported Linux systems.
Project roots, config paths, log paths, process users, and allowed roots are validated in the privileged helper.
Open logs in a focused page, pause refresh, change line count, copy output, or truncate the managed log file.
Uninstall hooks remove generated Supervisor configs, managed logs, and extension data created by the extension.
Background workers usually live between application code, domain permissions, Plesk PHP handlers, Supervisor service state, and server logs. Supervisor Manager brings those moving parts into one Plesk workflow so admins can fix runtime problems without hunting across five screens.
Each program receives a managed config with a scoped program name, application directory, domain PHP-aware PATH, process user, restart policy, and a dedicated log file.
[program:example.com-queue-worker]
command=/usr/bin/env php artisan queue:work
directory=/var/www/vhosts/example.com/app
environment=PATH="/opt/plesk/php/8.4/bin:..."
user=example-user
stdout_logfile=/var/log/supervisor/plesk/example.com-queue-worker.log
Pick a screen, then drag the handle to compare the Plesk light and dark appearances.
Use the rolling latest package for most servers, or pin a versioned release when you need repeatable deployments.
Install the newest GitHub Actions-built package directly through Plesk.
plesk bin extension --install-url https://github.com/ghostcompiler/supervisor-manager/releases/download/latest/supervisor-manager.zip
Use a fixed release asset when you want a known version.
plesk bin extension --install-url https://github.com/ghostcompiler/supervisor-manager/releases/download/v1.0.3/supervisor-manager-1.0.3.zip
Download the zip, then open Plesk Admin, go to Extensions, choose Upload Extension, and select the package.
supervisor-manager-1.0.3.zip
The normal workflow is create, generate, start, and watch logs. Existing programs can be regenerated after runtime or PHP-handler changes.
php artisan queue:work.artisan, package.json, or your script.Use these recipes as starting points for common Laravel, Inertia, Next.js, and Node deployments. Commands run as the selected domain system user and are locked to that domain’s allowed project roots.
Best for jobs, notifications, imports, mail, and slow background work.
Supervisor Program Name: queue-worker
Command: php artisan queue:work --sleep=3 --tries=3 --timeout=120
Project Root: /var/www/vhosts/example.com/app
Start on boot: enabled
Restart if it exits: enabled
[program:example.com-queue-worker]
command=/usr/bin/env php artisan queue:work --sleep=3 --tries=3 --timeout=120
directory=/var/www/vhosts/example.com/app
environment=PATH="/opt/plesk/php/8.4/bin:..."
user=example-user
autorestart=true
artisan, not public.Keeps Inertia server-side rendering alive as a supervised process.
Supervisor Program Name: inertia-ssr
Command: php artisan inertia:start-ssr
Project Root: /var/www/vhosts/example.com/app
Start on boot: enabled
Restart if it exits: enabled
cd /var/www/vhosts/example.com/app
npm install
npm run build
php artisan config:cache
PATH when Node is installed.Runs a built Next.js app behind Plesk, nginx, or a proxy rule.
Supervisor Program Name: next-web
Command: npm run start -- --hostname 127.0.0.1 --port 3000
Project Root: /var/www/vhosts/example.com/next-app
Start on boot: enabled
Restart if it exits: enabled
{
"scripts": {
"build": "next build",
"start": "next start"
}
}
127.0.0.1 unless the app intentionally needs public network access.Useful when cron is not enough or you want Supervisor to keep a scheduler loop alive.
Supervisor Program Name: scheduler
Command: php artisan schedule:work
Project Root: /var/www/vhosts/example.com/app
Start on boot: enabled
Restart if it exits: enabled
# Use Plesk Scheduled Tasks for classic every-minute cron:
php /var/www/vhosts/example.com/app/artisan schedule:run
For websocket servers, queue consumers, bots, and long-running Node processes.
Supervisor Program Name: realtime-worker
Command: npm run worker
Project Root: /var/www/vhosts/example.com/realtime-app
Start on boot: enabled
Restart if it exits: enabled
Command: node server.js
package.json.Runs imports, crawlers, webhooks, or custom daemons from the domain space.
Supervisor Program Name: importer
Command: /usr/bin/python3 worker.py
Project Root: /var/www/vhosts/example.com/importer
Start on boot: enabled
Restart if it exits: enabled
Command: /bin/bash worker.sh
These fields are intentionally simple, but they control how Supervisor runs your program.
Use a short stable name such as queue-worker, inertia-ssr, or next-web. The extension generates a domain-scoped internal Supervisor name so two domains can both use queue-worker.
Enter the command exactly as a developer would run it from the project root. For Plesk PHP domains, php resolves to the selected domain PHP handler after config generation.
Use the app root, not necessarily the document root. Laravel usually needs the folder containing artisan. Node apps usually need the folder containing package.json.
Enable start on boot and restart if it exits for real workers. Leave them off while testing commands that may fail repeatedly until dependencies are ready.
Use this order when a new worker does not start cleanly.
For quick copying, these are the minimal field sets for common program types.
Supervisor Program Name: queue-worker
Command: php artisan queue:work --sleep=3 --tries=3
Project Root: /var/www/vhosts/example.com/app
Supervisor Program Name: ssr
Command: php artisan inertia:start-ssr
Project Root: /var/www/vhosts/example.com/app
Supervisor Program Name: next-web
Command: npm run start -- --hostname 127.0.0.1 --port 3000
Project Root: /var/www/vhosts/example.com/next-app
Supervisor Program Name: realtime-worker
Command: npm run worker
Project Root: /var/www/vhosts/example.com/realtime-app
Supervisor Program Name: importer
Command: /usr/bin/python3 worker.py
Project Root: /var/www/vhosts/example.com/importer
Most process issues come from wrong project roots, wrong runtime versions, missing service sockets, or commands that exit immediately.
When the dashboard shows Supervisor needs setup or unix:///var/run/supervisor.sock no such file, use Repair Supervisor as admin.
systemctl status supervisor
supervisorctl status
Regenerate the config after changing the domain PHP handler. The generated PATH should begin with the selected Plesk PHP directory.
plesk db -N -B -e "select php_handler_id from hosting where dom_id = DOMAIN_ID"
cat /etc/supervisor/conf.d/plesk-*.conf
Use the Laravel project root, not the public document root.
/var/www/vhosts/example.com/app
# not
/var/www/vhosts/example.com/app/public
Use Clear Log to truncate the managed log file, then restart the program and copy the fresh output.
Generated configs with the Supervisor Manager header, managed logs, and extension data are cleaned on uninstall.
These are the paths and commands most useful during server troubleshooting.
/etc/supervisor/conf.d/plesk-*.conf
/etc/supervisord.d/plesk-*.conf
/var/log/supervisor/plesk/*.log
/usr/local/psa/var/modules/supervisor-manager/data/programs.json
supervisorctl status
supervisorctl reread
supervisorctl update
systemctl restart supervisor
which php
php -v
which node
node -v
Supervisor is for long-running processes. Commands like php -v or node --version exit immediately and are rejected.