Title: WP DevOps Dashboard
Author: Thomas Lloancy
Published: <strong>شتنبر 5, 2025</strong>
Last modified: ماي 28, 2026

---

Search plugins

![](https://ps.w.org/package-installator/assets/banner-772x250.gif?rev=3356907)

![](https://ps.w.org/package-installator/assets/icon-256x256.gif?rev=3356907)

# WP DevOps Dashboard

 By [Thomas Lloancy](https://profiles.wordpress.org/tlloancy/)

[Download](https://downloads.wordpress.org/plugin/package-installator.2.2.0.zip)

 * [Details](https://ary.wordpress.org/plugins/package-installator/#description)
 * [Reviews](https://ary.wordpress.org/plugins/package-installator/#reviews)
 *  [Installation](https://ary.wordpress.org/plugins/package-installator/#installation)
 * [Development](https://ary.wordpress.org/plugins/package-installator/#developers)

 [Support](https://wordpress.org/support/plugin/package-installator/)

## Description

WP DevOps Dashboard turns your WordPress admin into a full server orchestration 
panel. Connect once via SSH and get a live, React-powered interface to manage your
Linux server without ever leaving the dashboard.

### Why WP DevOps Dashboard?

The key differentiator is its **forkable playbook catalog**. The plugin does not
ship a fixed list of automation scripts — it pulls a live catalog from a GitHub 
repository you control. Fork the [Official Playbook Repository](https://github.com/elestranobaron/wp-package-installator-playbooks),
add your own `manifest.json + info.json + main.yml` bundles, and the dashboard picks
them up automatically on the next sync. No plugin code to touch. No pull requests
to submit. Your infrastructure, your catalog.

### Key Features

 * **Forkable Automation Catalog**: Point the plugin at any GitHub repository. The
   catalog format (`manifest.json` + per-service `info.json` + `main.yml`) is documented
   in the official repo. GitHub Actions auto-generates new entries. Fork once, own
   your automation library forever.
 * **Ansible Orchestrator**: Run playbooks directly from WordPress with real-time
   log streaming via xterm.js. Long-running tasks execute in the background via `
   nohup` and stream output back as they run.
 * **Multi-distro Package Manager**: Install and remove system packages on Debian,
   Ubuntu, Red Hat, Fedora, Arch Linux, and SUSE — `apt`, `yum`, `dnf`, `pacman`,
   and `zypper` are all supported.
 * **Docker Integration**: List all containers, start, stop, and restart them securely
   from the dashboard.
 * **Server Monitoring (Cockpit)**: Live CPU, RAM, and disk usage pulled in a single
   SSH round-trip via the unified REST endpoint (`/wp-json/wpkginst/v1/full-status`).
 * **SSH Terminal**: A browser-based root command executor with password re-authentication
   gate and full command audit log.
 * **Zero External Dependencies**: React 18, Axios, xterm.js, react-select, and 
   phpseclib3 are all bundled. No Composer or npm required on the WordPress server.
 * **Modern React UI**: Searchable tables, animated progress bars, live terminal
   output, and real-time SSH status indicator.

### Architecture Overview

    ```
    `
    ```

GitHub Repo (your fork)
 └── manifest.json  catalog index (auto-generated by GitHub
Actions) └── services/ └── my-service/ ├── info.json  display name, description,
icon └── main.yml  Ansible playbook `

The plugin clones the repository to the remote server via SSH, reads `manifest.json`,
and builds the playbook list dynamically. Change the repository URL in SSH Settings
to point at your own fork — no other configuration needed.

### Dependencies

All runtime dependencies are bundled — React 18, Axios, xterm.js, react-select, 
and phpseclib3. No Composer or npm installation required.

### Important Security Warnings

 * This plugin executes **root-level commands** on a remote server via SSH from 
   within WordPress.
 * A single security breach — XSS exploit, stolen admin session, or compromised 
   administrator account — could result in full server takeover.
 * **Do NOT use in production without all of the following**:
    - HTTPS enforced site-wide
    - Two-factor authentication on all administrator accounts
    - IP restriction on the WordPress admin area
    - Regular backups (files and database)
 * **Test on a staging environment first.**

### Future Plans

 * Playbook editor: create and edit `main.yml` files directly from the WordPress
   UI without needing to push to GitHub.
 * Multi-server support: manage multiple remote servers from a single dashboard,
   switchable via a server selector.
 * SFTP file browser: browse and edit remote files from the dashboard without requiring
   a separate SSH key configuration.
 * WP-CLI integration: run WP-CLI commands on the remote WordPress installation 
   from the dashboard.

### Contact

For contributions or issues, contact Tlloancy at [tlloancy@deter-mi.net].

## Screenshots

 * [[
 * **DevOps Dashboard**: Unified view showing server stats (CPU/RAM/disk), Docker
   containers, package status, and Ansible playbook catalog with real-time SSH status
   indicator.
 * [[
 * **SSH Settings**: Configure SSH host, port, username, authentication type (private
   key or password), and playbook repository URL, with a live connection test button.
 * [[

## Installation

 1. Upload the plugin to `/wp-content/plugins/package-installator/` or install it directly
    via the WordPress plugin screen.
 2. Activate the plugin through the **Plugins** screen in WordPress.
 3. Navigate to **WP DevOps Dashboard > SSH Settings** and configure your SSH credentials(
    host, port, username, and either a private key or password).
 4. Use the **Test Connection** button to verify SSH access.
 5. Optionally, replace the default playbook repository URL with the URL of your own
    fork.

### File Permissions (if installing manually)

    ```
    `bash
    ```

sudo chown -R www-data:www-data /var/www/html/wordpress/wp-content/plugins/package-
installator
 sudo chmod -R 755 /var/www/html/wordpress/wp-content/plugins/package-
installator `

## FAQ

### Which Linux distributions are supported?

Debian, Ubuntu, Red Hat, CentOS, Fedora, Arch Linux, and SUSE are all supported.
The plugin detects the distribution and selects the correct package manager (`apt`,`
yum`, `dnf`, `pacman`, or `zypper`) automatically.

### How do I use my own playbook catalog?

Fork the [Official Playbook Repository](https://github.com/elestranobaron/wp-package-installator-playbooks)
and read its README for the full catalog format specification. Then go to **WP DevOps
Dashboard > SSH Settings**, paste your fork’s `.git` URL into the **GitHub Repository
URL** field, and save. The plugin will clone your fork to the remote server and 
display your custom playbooks.

### Does Ansible need to be installed on the WordPress server?

No. Ansible runs on the **remote server** (the one you connect to via SSH), not 
on the server hosting WordPress. The WordPress server only needs PHP 8.2+ and outbound
SSH access.

### Is it safe to use in production?

Read the security warnings section below carefully before deploying in any environment.
The plugin executes privileged commands on a remote server. A compromised WordPress
admin account means full server access. Follow all hardening steps and test on a
staging environment first.

### What if a package is already installed?

The plugin queries the package manager for current status before taking any action.
Already-installed packages are shown with a 100% progress indicator and an “Installed”
status badge.

### Can I add packages beyond the default PHP extension list?

Yes. Edit the `$php_packages` array in `includes/ajax-handlers.php` to add any system
package available in your distribution’s repositories.

## Reviews

There are no reviews for this plugin.

## Contributors & Developers

“WP DevOps Dashboard” is open source software. The following people have contributed
to this plugin.

Contributors

 *   [ Thomas Lloancy ](https://profiles.wordpress.org/tlloancy/)

[Translate “WP DevOps Dashboard” into your language.](https://translate.wordpress.org/projects/wp-plugins/package-installator)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/package-installator/),
check out the [SVN repository](https://plugins.svn.wordpress.org/package-installator/),
or subscribe to the [development log](https://plugins.trac.wordpress.org/log/package-installator/)
by [RSS](https://plugins.trac.wordpress.org/log/package-installator/?limit=100&mode=stop_on_copy&format=rss).

## Changelog

### 2.2.0 — May 28, 2026 — 15:30 UTC+2

 * Plugin display name changed to “WP DevOps Dashboard”. The WP.org slug (`package-
   installator`) is permanent and unchanged — only the visible name in the admin
   menu and plugin list is updated.
 * SSH Settings page no longer blocks on load. The page previously made a live SSH
   connection before sending any HTML to the browser, causing a 5–7 second delay.
   The connection test is now async: the page renders instantly and tests the connection
   in the background after load.
 * New: animated “Test Connection” button on the SSH Settings page with live status
   badge (green glow on success, red on failure). No page reload required.
 * SSH Settings page redesigned: card-based layout with separate sections for SSH
   Credentials and Automation Catalog, consistent with the main dashboard aesthetic.
 * Performance: the package status query (20 SSH checks) is now lazy-loaded. It 
   only runs when the user opens the package accordion, not on every background 
   poll. The 35-second polling cycle now only fetches server stats, Docker containers,
   and Ansible catalog.
 * Performance: `wpkginst_get_automation_readiness()` (Ansible, Docker Compose, 
   Git detection) result is now cached in a WordPress transient for 2 minutes. Subsequent
   dashboard loads within that window are instant. The cache is invalidated automatically
   when a tool is installed via the FIX button.
 * The script and style enqueue function is now split: the settings page only loads
   CSS; the React app and all SSH readiness calls are restricted to the main dashboard
   page.
 * Full English UI: all user-visible French strings in the React interface replaced
   with English (status labels, button text, placeholders, empty states, console
   messages).
 * Dashboard polling reduced from 5 sequential SSH connections to 1. Stats, Docker
   container list, and Ansible catalog are now fetched in a single SSH exec via 
   a sectioned mega-command. The automation catalog no longer performs a `git fetch`
   on every poll — git sync only happens when the user explicitly clicks “Sync Ansible
   Catalog”.
 * Removed the redundant `whoami` SSH call on each REST poll; SSH connection status
   is now derived from the stats command result.
 * SSH status indicator shows a distinct yellow pulsing state with an explicit “
   Establishing SSH connection…” message during the initial load.

### 2.1.2 — April 2026

 * Arch Linux and SUSE are now supported, bringing distribution coverage to approximately
   99% of common Linux server environments.
 * Package installation now uses `nohup` for background execution, consistent with
   the rest of the plugin.

### 2.1.0 — April 2026

 * SSH “One-Shot” Engine: system metrics (CPU, RAM, disk, distro detection) are 
   now collected in a single SSH session instead of multiple separate connections—
   significant performance improvement and reduced load on the remote server.
 * REST API migration: replaced fragmented AJAX polling with a single centralized
   REST route (`/wp-json/wpkginst/v1/full-status`), reducing HTTP requests by approximately
   80%.
 * Double-nonce architecture: hybrid token system to isolate data read flows (REST)
   from privileged system actions (AJAX).
 * Strengthened `permission_callback` enforcement on all REST and AJAX endpoints.
 * React lifecycle refactor: simultaneous update of all UI components (Docker, Packages,
   Stats) for a latency-free experience, with removal of redundant `useEffect` calls.
 * Improved error feedback on API connection loss or SSH authentication failure.

### 2.0.0 — April 2026

 * Major milestone: transition from a simple package manager to a full DevOps orchestrator.
 * New: Ansible core — run playbooks directly from the WordPress dashboard.
 * New: Forkable automation catalog — point the plugin at any GitHub repository 
   following the `manifest.json` spec.
 * New: Background processing — long-running tasks execute via `nohup` over SSH.
 * New: Real-time streaming — live log output for Ansible playbooks and package 
   installations.
 * Security hardening: stricter nonce validation and path sanitization throughout.
 * Full rewrite of AJAX polling logic to handle high-concurrency background tasks.

### 1.4.0

 * New: Cockpit dashboard with real-time system resource monitoring (CPU, RAM, disk).

### 1.3.0 — April 2026

 * Security audit and refactoring co-authored with Gemini (Google AI).
 * Hardened SQL queries and input sanitization.
 * Docker integration: list, start, stop, and restart containers via SSH.

### 1.2.1 — March 2026

 * PHP session is now opened only on the Terminal and Log pages via a conditional
   check in the `admin_init` hook.
 * `session_write_close()` called systematically after every session usage.
 * Terminal authentication persists correctly across page refreshes without blocking
   REST API or loopback requests.
 * Fixed “Access denied — Session expired” error when running commands after a page
   refresh.
 * Removed global session lock that caused Site Health failures (active PHP session
   + REST API timeout).

### 1.2.0 — March 2026

 * Complete overhaul of PHP session management to resolve Site Health warnings (
   REST API timeout and active session detection).

### 1.1.0 — December 2025

 * Full internationalization (i18n) support with French and English translations.
 * Command history logging with dedicated database table.
 * Non-interactive root command executor (SSH Terminal page).
 * Improved session handling and security hardening.
 * WordPress 6.9 compatibility.

### 1.0.0

 * Initial release: React UI, SSH-based package management, support for Debian-based
   systems.
 * Animated progress bars, expandable command output, and SSH status indicator.

## Meta

 *  Version **2.2.0**
 *  Last updated **3 أيام ago**
 *  Active installations **10+**
 *  WordPress version ** 5.0 or higher **
 *  Tested up to **7.0**
 *  PHP version ** 8.2 or higher **
 *  Language
 * [English (US)](https://wordpress.org/plugins/package-installator/)
 * Tags
 * [devops](https://ary.wordpress.org/plugins/tags/devops/)[Docker](https://ary.wordpress.org/plugins/tags/docker/)
   [server management](https://ary.wordpress.org/plugins/tags/server-management/)
   [SSH](https://ary.wordpress.org/plugins/tags/ssh/)
 *  [Advanced View](https://ary.wordpress.org/plugins/package-installator/advanced/)

## Ratings

No reviews have been submitted yet.

[Your review](https://wordpress.org/support/plugin/package-installator/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/package-installator/reviews/)

## Contributors

 *   [ Thomas Lloancy ](https://profiles.wordpress.org/tlloancy/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/package-installator/)