{% extends "baseTemplate/index.html" %} {% load static %} {% comment %} /plugins/available — plugin directories on disk, plus the upload form. "Available" means "a directory under the plugins root with a manifest this panel could parse". There is no remote marketplace and this page does not imply one. Reading a manifest never imports code, so opening this page is safe even when a directory contains something hostile. {% endcomment %} {% block title %}Add a plugin{% endblock %} {% block styles %} {% include "pluginHolder/_styles.html" %} {% endblock %} {% block content %}
Upload a plugin archive, or install a directory an operator has already placed in {{ pluginsRoot }}.
A ZIP containing the plugin directory, or its contents with plugin.json at the top level. Maximum {{ maxUploadMB }} MB. The archive is hashed and checked against the SHA-256 you supply before it is unpacked, and it is installed disabled — uploading never runs plugin code.
Nothing in {{ pluginsRoot }} yet.