{"id":248644,"date":"2025-09-05T21:19:53","date_gmt":"2025-09-05T21:19:53","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/package-installator\/"},"modified":"2026-03-03T05:35:31","modified_gmt":"2026-03-03T05:35:31","slug":"package-installator","status":"publish","type":"plugin","link":"https:\/\/et.wordpress.org\/plugins\/package-installator\/","author":22011295,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"1.2.1","stable_tag":"1.2.1","tested":"6.9.4","requires":"5.0","requires_php":"8.2","requires_plugins":null,"header_name":"Package Installator","header_author":"Tlloancy (in zusammenarbeit mit xAI)","header_description":"A plugin to manage system packages (e.g., php-xml) with a modern UI.","assets_banners_color":"217c85","last_updated":"2026-03-03 05:35:31","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"","rating":0,"author_block_rating":0,"active_installs":0,"downloads":363,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"tlloancy","date":"2025-09-05 21:19:24"},"1.1.0":{"tag":"1.1.0","author":"tlloancy","date":"2025-12-11 15:02:42"},"1.2.0":{"tag":"1.2.0","author":"tlloancy","date":"2026-03-03 03:59:58"},"1.2.1":{"tag":"1.2.1","author":"tlloancy","date":"2026-03-03 05:35:31"}},"upgrade_notice":{"1.1.0":"<p>Major update with translations, command logging, and safer execution mode. Backup your database before updating.<\/p>","1.0.0":"<p>Initial release. Configure SSH settings before managing packages. Ensure the SSH user has <code>sudo<\/code> privileges.<\/p>"},"ratings":[],"assets_icons":{"icon-256x256.gif":{"filename":"icon-256x256.gif","revision":3356907,"resolution":"256x256","location":"assets","locale":""}},"assets_banners":{"banner-772x250.gif":{"filename":"banner-772x250.gif","revision":3356907,"resolution":"772x250","location":"assets","locale":""}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0","1.1.0","1.2.0","1.2.1"],"block_files":[],"assets_screenshots":[],"screenshots":{"1":"<strong>Package Manager Interface<\/strong>: Searchable table with package status, actions, progress bars, expandable command logs, and SSH status indicator.","2":"<strong>SSH Settings<\/strong>: Configure SSH host, username, port, authentication type, with a connection status indicator and test button."},"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[22989,213152,247469,38959,247468],"plugin_category":[],"plugin_contributors":[232640],"plugin_business_model":[],"class_list":["post-248644","plugin","type-plugin","status-publish","hentry","plugin_tags-debian","plugin_tags-package-manager","plugin_tags-react-ui","plugin_tags-ssh","plugin_tags-system-packages","plugin_contributors-tlloancy","plugin_committers-tlloancy"],"banners":{"banner":"https:\/\/ps.w.org\/package-installator\/assets\/banner-772x250.gif?rev=3356907","banner_2x":false,"banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/package-installator\/assets\/icon-256x256.gif?rev=3356907","icon_2x":"https:\/\/ps.w.org\/package-installator\/assets\/icon-256x256.gif?rev=3356907","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p>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.<\/p>\n\n<h3>Key Features<\/h3>\n\n<ul>\n<li><strong>Modern UI<\/strong>: React-based interface with search functionality and animated progress bars.<\/li>\n<li><strong>Package Management<\/strong>: Install or uninstall packages like <code>php-xml<\/code>, <code>php-mbstring<\/code>, <code>php-curl<\/code>, and more.<\/li>\n<li><strong>SSH Integration<\/strong>: Secure SSH connections using private key or password authentication.<\/li>\n<li><strong>Real-time Feedback<\/strong>: AJAX updates for package status, progress, and detailed command logs.<\/li>\n<li><strong>Expandable Logs<\/strong>: View raw command output for each package operation.<\/li>\n<li><strong>SSH Status<\/strong>: Visual indicators for SSH connection status on both settings and package manager pages.\n<strong>Important Note<\/strong>: Currently compatible only with Debian-based distributions (e.g., Debian, Ubuntu) using <code>apt<\/code>. Future versions will support other Linux distributions (Red Hat, Fedora, Arch, etc.) with tools like <code>yum<\/code>, <code>dnf<\/code>, and <code>pacman<\/code>.\n<strong>Warning<\/strong>: This plugin executes system commands via SSH, which can impact your server. Ensure proper SSH configuration and test on a staging environment.<\/li>\n<\/ul>\n\n<h3>Dependencies<\/h3>\n\n<p>Includes all dependencies: React, Axios, React-Select, phpseclib3.\nNo Composer or npm required.<\/p>\n\n<h3>\u26a0\ufe0f Avertissements de s\u00e9curit\u00e9 tr\u00e8s importants<\/h3>\n\n<ul>\n<li>Ce plugin ex\u00e9cute des commandes <strong>root<\/strong> via SSH depuis WordPress.<\/li>\n<li>Une vuln\u00e9rabilit\u00e9 (XSS, vol de session, compte admin compromis) pourrait permettre une prise de contr\u00f4le totale du serveur.<\/li>\n<li><strong>N'utilisez PAS en production sans<\/strong> :\n\n<ul>\n<li>HTTPS forc\u00e9<\/li>\n<li>2FA sur tous les comptes admin<\/li>\n<li>Restriction IP sur l'admin WP<\/li>\n<li>Liste blanche stricte des commandes autoris\u00e9es<\/li>\n<li>Sauvegardes r\u00e9guli\u00e8res (fichiers + base)<\/li>\n<\/ul><\/li>\n<li>Testez <strong>uniquement sur staging<\/strong> au d\u00e9but.<\/li>\n<\/ul>\n\n<h3>1.1.0 - December 2025<\/h3>\n\n<ul>\n<li>Full internationalization (i18n) support with French and English translations<\/li>\n<li>Command history logging with database table<\/li>\n<li>Non-interactive root command executor<\/li>\n<li>Improved session handling and security<\/li>\n<li>Updated for WordPress 6.9 compatibility<\/li>\n<\/ul>\n\n<h3>1.0.0<\/h3>\n\n<ul>\n<li>Initial release with React UI, SSH package management, and support for Debian-based systems.<\/li>\n<li>Features animated progress bars, expandable command output, and SSH status indicators.<\/li>\n<\/ul>\n\n<h3>Arbitrary Section<\/h3>\n\n<h3>Future Plans<\/h3>\n\n<ul>\n<li>Support for Red Hat, Fedora, Arch, and other Linux distributions.<\/li>\n<li>Enhanced error handling and user feedback.<\/li>\n<li>Real-time log streaming for long-running operations.<\/li>\n<li>Support for additional package managers (<code>yum<\/code>, <code>dnf<\/code>, <code>pacman<\/code>).<\/li>\n<\/ul>\n\n<h3>Contact<\/h3>\n\n<p>For contributions or issues, contact Tlloancy at [tlloancy@deter-mi.net].<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin to <code>\/wp-content\/plugins\/wordpress-package-installator\/<\/code> or install it via the WordPress plugins screen.<\/li>\n<li>Activate the plugin through the 'Plugins' screen in WordPress.<\/li>\n<li>Configure SSH credentials (host, username, port, private key, or password) in the \"SSH Settings\" submenu under \"Package Installator\".<\/li>\n<li>Navigate to the \"Package Installator\" menu to manage packages.<\/li>\n<\/ol>\n\n<h3>Permissions Setup<\/h3>\n\n<pre><code>`bash\n<\/code><\/pre>\n\n<p>sudo chown -R www-data:www-data \/var\/www\/html\/wordpress\/wp-content\/plugins\/wordpress-package-installator\nsudo chmod -R 755 \/var\/www\/html\/wordpress\/wp-content\/plugins\/wordpress-package-installator\n    `<\/p>\n\n<!--section=faq-->\n<dl>\n<dt id=\"why%20is%20it%20only%20compatible%20with%20debian%3F\"><h3>Why is it only compatible with Debian?<\/h3><\/dt>\n<dd><p>The plugin uses <code>apt<\/code> for package management. Future updates will detect the Linux distribution and use appropriate tools (e.g., <code>yum<\/code>, <code>dnf<\/code>, <code>pacman<\/code>).<\/p><\/dd>\n<dt id=\"how%20do%20i%20configure%20ssh%3F\"><h3>How do I configure SSH?<\/h3><\/dt>\n<dd><p>In the \"SSH Settings\" submenu, enter your SSH host, username, port, and choose between private key or password authentication. Ensure the SSH user has <code>sudo<\/code> privileges for <code>apt<\/code>.<\/p><\/dd>\n<dt id=\"what%20if%20a%20package%20is%20already%20installed%3F\"><h3>What if a package is already installed?<\/h3><\/dt>\n<dd><p>The plugin uses <code>dpkg-query<\/code> to check package status and updates the UI accordingly. If a package is already installed, it will be marked as \"Install\u00e9\" with 100% progress.<\/p><\/dd>\n<dt id=\"is%20it%20safe%20to%20use%3F\"><h3>Is it safe to use?<\/h3><\/dt>\n<dd><p>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.<\/p><\/dd>\n<dt id=\"can%20i%20add%20more%20packages%3F\"><h3>Can I add more packages?<\/h3><\/dt>\n<dd><p>Edit the <code>$packages<\/code> array in <code>includes\/ajax-handlers.php<\/code> to include additional packages relevant to your environment.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h3>1.2.1 \u2013 March 2026 (Terminal refresh fix + Site Health compatibility)<\/h3>\n\n<ul>\n<li>PHP session is now opened <strong>only<\/strong> on the Terminal and Log pages (via conditional check in <code>admin_init<\/code> hook)<\/li>\n<li><code>session_write_close()<\/code> is called systematically after every session usage (via <code>shutdown<\/code> hook + manual calls where needed)<\/li>\n<li>Terminal authentication now persists correctly across page refreshes without blocking REST API or loopback requests<\/li>\n<li>Fixed \"Access denied \u2013 Session expired or insufficient rights\" error when running commands after a refresh<\/li>\n<li>Removed global session lock \u2192 Critical issues in Site Health (active PHP session + REST API timeout) are resolved<\/li>\n<li>Co-authored-by: Grok &amp; User (we own the plot twist)<\/li>\n<\/ul>\n\n<p><strong>Note<\/strong>: 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.\n<strong>Version 1.2.0<\/strong> : refonte compl\u00e8te de la gestion des sessions PHP pour corriger les probl\u00e8mes Site Health (REST API timeout + session active d\u00e9tect\u00e9e).<\/p>\n\n<p><strong>Compatibilit\u00e9 actuelle<\/strong> : Debian\/Ubuntu (apt). Support futur pour d'autres distributions pr\u00e9vu.<\/p>","raw_excerpt":"A plugin to manage system packages (e.g., php-xml) with a modern React-based UI via SSH.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/et.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/248644","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/et.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/et.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/et.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=248644"}],"author":[{"embeddable":true,"href":"https:\/\/et.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/tlloancy"}],"wp:attachment":[{"href":"https:\/\/et.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=248644"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/et.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=248644"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/et.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=248644"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/et.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=248644"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/et.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=248644"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/et.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=248644"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}