Package Installator

Description

Package Installator empowers WordPress administrators to manage system-level packages, such as PHP extensions, directly from the WordPress admin dashboard. It features a modern, React-based interface with a searchable table, animated progress bars, and detailed command output for installing and uninstalling packages via SSH.

Key Features

  • Customizable Automation Catalog: Designed for full extensibility, the plugin allows anyone to fork our Official Playbook Repository to learn from its README how the manifest.json is parsed and how to structure custom .yml files, enabling you to define exactly which playbooks appear in your dashboard by simply linking your own repository.
  • Ansible Orchestrator (New): Run complex playbooks in the background with real-time log streaming.
  • Docker Integration: List, start, stop, and restart containers securely.
  • Modern UI: React-based interface with live feedback and terminal-like consoles.
  • SSH Integration: Secure connections using private keys or passwords.
    Important Note: Currently compatible with all Linux distributions (Red Hat, Fedora, Arch, etc.) with tools like yum, dnf, and pacman.

Dependencies

Includes all dependencies: React, Axios, React-Select, phpseclib3.
No Composer or npm required.

⚠️ Avertissements de sécurité très importants

  • Ce plugin exécute des commandes root via SSH depuis WordPress.
  • Une vulnérabilité (XSS, vol de session, compte admin compromis) pourrait permettre une prise de contrôle totale du serveur.
  • N’utilisez PAS en production sans :
    • HTTPS forcé
    • 2FA sur tous les comptes admin
    • Restriction IP sur l’admin WP
    • Liste blanche stricte des commandes autorisées
    • Sauvegardes régulières (fichiers + base)
  • Testez uniquement sur staging au début.

1.1.0 – December 2025

  • Full internationalization (i18n) support with French and English translations
  • Command history logging with database table
  • Non-interactive root command executor
  • Improved session handling and security
  • Updated for WordPress 6.9 compatibility

1.0.0

  • Initial release with React UI, SSH package management, and support for Debian-based systems.
  • Features animated progress bars, expandable command output, and SSH status indicators.

Arbitrary Section

Future Plans

  • Support for Red Hat, Fedora, Arch, and other Linux distributions.
  • Enhanced error handling and user feedback.
  • Real-time log streaming for long-running operations.
  • Support for additional package managers (yum, dnf, pacman).

Contact

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

Screenshots

  • Package Manager Interface: Searchable table with package status, actions, progress bars, expandable command logs, and SSH status indicator.
  • SSH Settings: Configure SSH host, username, port, authentication type, with a connection status indicator and test button.

Installation

  1. Upload the plugin to /wp-content/plugins/wordpress-package-installator/ or install it via the WordPress plugins screen.
  2. Activate the plugin through the ‘Plugins’ screen in WordPress.
  3. Configure SSH credentials (host, username, port, private key, or password) in the “SSH Settings” submenu under “Package Installator”.
  4. Navigate to the “Package Installator” menu to manage packages.

Permissions Setup

`bash

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

FAQ

Why is it only compatible with Debian?

The plugin uses apt for package management. Future updates will detect the Linux distribution and use appropriate tools (e.g., yum, dnf, pacman).

How do I configure SSH?

In the “SSH Settings” submenu, enter your SSH host, username, port, and choose between private key or password authentication. Ensure the SSH user has sudo privileges for apt.

What if a package is already installed?

The plugin uses dpkg-query to check package status and updates the UI accordingly. If a package is already installed, it will be marked as “Installé” with 100% progress.

Is it safe to use?

The plugin executes system commands via SSH. Secure your SSH credentials and test on a non-production server. Always back up your system before use.

Can I add more packages?

Edit the $packages array in includes/ajax-handlers.php to include additional packages relevant to your environment.

Reviews

There are no reviews for this plugin.

Contributors & Developers

“Package Installator” is open source software. The following people have contributed to this plugin.

Contributors

Translate “Package Installator” into your language.

Interested in development?

Browse the code, check out the SVN repository, or subscribe to the development log by RSS.

Changelog

Version 2.1.2 April 26

🚀 Even Further Beyond

  • The return of the Pingu : As Arch and Suse are now supported, it’s a 99% cover of the distribs.
  • Use the Fork : Package installation system, now also use nohup like the rest.

Version 2.1.0 April 26

🚀 Optimisations & Performances

  • Moteur SSH “One-Shot” : Fusion des commandes système (CPU, RAM, Disque, Distro) en une seule session SSH. Gain de performance massif et réduction de la charge sur le serveur distant.
  • Migration vers l’API REST : Remplacement du polling AJAX fragmenté par une route API REST centralisée (/wp-json/wpkginst/v1/full-status).
  • Efficacité Réseau : Réduction de 80% des requêtes HTTP nécessaires au rafraîchissement du tableau de bord.

🛡️ Sécurité

  • Architecture Double-Nonce : Implémentation d’un système de jetons hybrides pour isoler les flux de données (REST) des actions système (AJAX).
  • Contrôle d’accès : Renforcement des permission_callback pour garantir l’étanchéité des données sensibles du serveur.

💻 Interface & React

  • Synchronisation Atomique : Mise à jour simultanée de tous les composants de l’interface (Docker, Packages, Stats) pour une expérience utilisateur sans latence.
  • Clean Architecture : Refonte du cycle de vie React (useEffect) pour supprimer les appels redondants et optimiser la gestion de la mémoire.
  • Gestion d’erreurs : Amélioration du feedback visuel en cas de perte de liaison avec l’API ou d’échec de connexion SSH.

2.0.0 – April 2026
* Major Milestone: Transition from a simple package manager to a full DevOps orchestrator.
* New: Ansible Core: Integration of Ansible playbook execution.
* Customizable Automation Catalog: Designed for full extensibility, the plugin allows anyone to fork our Official Playbook Repository to learn from its README how the manifest.json is parsed and how to structure custom .yml files, enabling you to define exactly which playbooks appear in your dashboard by simply linking your own repository.
* New: Background Processing: Asynchronous execution of long-running tasks via SSH (nohup).
* New: Real-time Streaming: Live log polling for Ansible and installations.
* Improved: Security: Hardened nonce validation and strict path sanitization.
* Refactoring: Complete rewrite of the AJAX polling logic to handle high-concurrency background tasks.

1.4.0

  • New: “Cockpit” Dashboard featuring real-time system resource scanning.

1.3.0 – April 2026

  • Collaboration: Security audit and refactoring co-authored with Gemini (Google AI).
  • Security: Hardened SQL queries and input sanitization to meet 2026 WordPress standards.
  • Docker Integration: Added ability to list, start, stop, and restart Docker containers via SSH.
  • System Control: Beyond apt packages, the plugin now acts as a lightweight container orchestrator.

1.2.1 – March 2026 (Terminal refresh fix + Site Health compatibility)

  • PHP session is now opened only on the Terminal and Log pages (via conditional check in admin_init hook)
  • session_write_close() is called systematically after every session usage (via shutdown hook + manual calls where needed)
  • Terminal authentication now persists correctly across page refreshes without blocking REST API or loopback requests
  • Fixed “Access denied – Session expired or insufficient rights” error when running commands after a refresh
  • Removed global session lock Critical issues in Site Health (active PHP session + REST API timeout) are resolved
  • Co-authored-by: Grok & User (we own the plot twist)

Note: After validating your WordPress password on the Terminal page, you remain logged in on refresh as long as the browser session cookie (PHPSESSID) is active.
Version 1.2.0 : refonte complète de la gestion des sessions PHP pour corriger les problèmes Site Health (REST API timeout + session active détectée).

Compatibilité actuelle : Debian/Ubuntu (apt). Support futur pour d’autres distributions prévu.