Proposal: Modular Extension / Plugin Architecture for HestiaCP (similar to Plesk Extensions)

Hi HestiaCP Team & Community,

I would like to propose the introduction of a modular Extension / Plugin System for HestiaCP, inspired by extension ecosystems like Plesk Extensions or cPanel Plugins.

Motivation

Currently, adding support for specialized ecosystems (such as a dedicated Laravel Toolkit, Node.js/PM2 manager, or custom staging environments) requires adding features directly into the core monolithic codebase. A formal plugin architecture would allow:

  • Third-party developers to build and maintain rich toolkits without bloating the core panel.

  • Users to enable only the runtime tools and feature sets they need.

Proposed Architecture Concept

  1. Directory Structure: Dedicated directories such as /usr/local/hestia/plugins/<plugin_name>/ containing:

    • ui/: Custom views/tabs rendered within the standard HestiaCP theme.

    • bin/: CLI scripts conforming to Hestia’s v-* naming and logging standard.

    • manifest.json: Metadata, required dependencies, permissions, and navigation hook definitions.

  2. UI Hooks & Navigation: Basic injection points (e.g., adding tabs to the Domain edit screen or server management menu).

  3. CLI & Security Model: Defining a secure wrapper for how plugin CLI commands register with sudo permissions without compromising host integrity.

Proof of Concept

To validate this, I am interested in developing a Laravel Management Extension (managing .env, Artisan commands, queue workers, and custom web templates) as the initial reference implementation.

I’d love to get feedback from the maintainers and community on whether this fits the project vision and what security constraints we should establish first.