No description
Find a file
Thomas Lamprecht e42d638acf sshfs: mention what 'use v5.36' implies
Might be nice to know for those that base of this plugin and are not
very experienced with Perl.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2025-09-08 10:25:31 +02:00
backup-provider-borg tree wide: make signaling of API version more flexible 2025-07-02 21:05:01 +02:00
backup-provider-directory tree wide: make signaling of API version more flexible 2025-07-02 21:05:01 +02:00
plugin-sshfs sshfs: mention what 'use v5.36' implies 2025-09-08 10:25:31 +02:00
.gitignore split examples into per-directory as self-contained package 2025-07-02 20:10:23 +02:00
Makefile plugin-sshfs: package the SSHFS example plugin 2025-09-08 09:46:18 +02:00
README.md add basic README 2025-07-02 22:09:16 +02:00

Proxmox VE Storage Plugin Examples

This repository contains example plugins for the Proxmox VE external storage and backup providers interface.

Currently, the storage plugin must be written in Perl, but with, e.g., Foreign Function Interface (FFI) or Inter-Process Communication (IPC) mechanisms, it could be a thin wrapper around a client written in a programming language of your choice.

As long as you honor the copyright notice included in the "debian/copyright" folder of each plugin, you are free to copy and adapt from these examples. This typically requires licensing the plugin codebut not the code of your storage implementationunder AGPL 3+ as the result would be a derivative work.

Your plugin must be compatible with Proxmox VE licensed under AGPL 3+ in any way. So you must license your plugin code accordingly, even if you don't use any of our derivative works. In addition to the AGPL 3+ license, options include the GPL 3+, the Mozilla Public License 2.0, or a combination of Apache 2.0 and MIT. Using licenses besides AGPL 3+ will significantly limit the amount of our (Perl) library modules you can use.

Note that your storage itself does not need to be licensed under this copyleft license. The plugin can mostly be a wrapper around your existing client API or ABI through an IPC mechanism, such as running external commands using fork/exec, Unix sockets, pipes, or FIFO file descriptors, or a network API.

See Also

For some more information see https://pve.proxmox.com/wiki/Storage_Plugin_Development.