* [pve-devel] PVE Plugin System
@ 2025-12-22 17:42 Dex via pve-devel
2025-12-23 12:05 ` Fabian Grünbichler
0 siblings, 1 reply; 2+ messages in thread
From: Dex via pve-devel @ 2025-12-22 17:42 UTC (permalink / raw)
To: pve-devel; +Cc: Dex
[-- Attachment #1: Type: message/rfc822, Size: 4751 bytes --]
From: Dex <dex@fur.lol>
To: "pve-devel@lists.proxmox.com" <pve-devel@lists.proxmox.com>
Subject: PVE Plugin System
Date: Mon, 22 Dec 2025 17:42:12 +0000
Message-ID: <OZjFLZr9Sa_d3-OvTbmjo_GlmwLoIUrONn_56VORPqWeAaaQeehPHNRPpnTtUd4Sg1ySXc73AvBAjynmXl1A4MTLHhhwiN3CimKf5PjjoY8=@fur.lol>
Hello,
I'm planning to implement a plugin system for PVE to enable runtime loading of third-party code into pve-manager. It would allow loading of Perl code for things like creating custom REST endpoints, and modifying existing endpoint logic. It would also allow loading of Javascript code into the web UI to allow for new UI elements/pages to be created. The goal is to provide an way to run/load third party code as part of pve-manager instead of needing to modify files in a deployment to provide this support.
I'm looking to implement this system for one of my projects, and was curious if you guys would be interested in collaborating on implementation details as I work through development, and if there would be interest in having a patch submitted to the upstream for this.
Let me know what you think -
Dex
[-- Attachment #2: Type: text/plain, Size: 160 bytes --]
_______________________________________________
pve-devel mailing list
pve-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: [pve-devel] PVE Plugin System
2025-12-22 17:42 [pve-devel] PVE Plugin System Dex via pve-devel
@ 2025-12-23 12:05 ` Fabian Grünbichler
0 siblings, 0 replies; 2+ messages in thread
From: Fabian Grünbichler @ 2025-12-23 12:05 UTC (permalink / raw)
To: Proxmox VE development discussion; +Cc: Dex
On December 22, 2025 6:42 pm, Dex via pve-devel wrote:
> Hello,
>
> I'm planning to implement a plugin system for PVE to enable runtime
> loading of third-party code into pve-manager. It would allow loading
> of Perl code for things like creating custom REST endpoints, and
> modifying existing endpoint logic. It would also allow loading of
> Javascript code into the web UI to allow for new UI elements/pages to
> be created. The goal is to provide an way to run/load third party code
> as part of pve-manager instead of needing to modify files in a
> deployment to provide this support.
Thanks for your interest and reaching out!
I don't think such a generic and invasive extension mechanism is
acceptable for us upstream, as it would cause a big support load and has
a huge potential for breakage.
We already have a few extension points/mechanisms which are defined:
- vzdump hook scripts
- guest (lifecycle) hook scripts
- storage plugins
- backup provider plugins
Those all have a specific scope and defined interface, for storage
plugins there are also plans to allow some level of UI integration as
well:
https://lore.proxmox.com/pve-devel/20251121165858.818307-1-m.carrara@proxmox.com/
> I'm looking to implement this system for one of my projects, and was
> curious if you guys would be interested in collaborating on
> implementation details as I work through development, and if there
> would be interest in having a patch submitted to the upstream for
> this.
It would make more sense for us to know what features you are missing
for your particular use case - then we could discuss whether/how those
can be implemented.
Regards,
Fabian
_______________________________________________
pve-devel mailing list
pve-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2025-12-23 12:05 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2025-12-22 17:42 [pve-devel] PVE Plugin System Dex via pve-devel
2025-12-23 12:05 ` Fabian Grünbichler
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox