Plugin install
install_cp_plugin https://example.com/plugin_name.zip
This page describes the configuration required to add a 3rd-party plugin by php to OLSPanel. The configuration file should be included in the root zip file of the plugin.
# The Display name.
name=RoundCube webmail
# The application's service.
service=user_panel
# Physical path: /usr/local/lsws/Example/html/mypanel/3rdparty/index.php
# Literal URL path: $server:$port/3rdparty/plugin_folder/name/index.php
url=/3rdparty/roundcube/index.php
auto_login_url=/3rdparty/roundcube/?_task=login
# Pass parameters via HTTP headers
header[HTTP_AUTOLOGINUSER]=%email%
header[HTTP_AUTOLOGINPASS]=%email_password%
# System user and group to run process as
user=$authuser
group=$authuser
# Features required
features=mail
# Media required
icon=/media/icon/roundcube.png
# Short order
sorder=0
target=_blank
# System user and group to run process as second path optional
user2=root
group2=root
path2=auto_index.php
| Field | Description | Usage / Notes |
|---|---|---|
| name | The display name of the plugin as shown in the panel. | Example: RoundCube webmail |
| service | The type of panel service this plugin belongs to. | Common values: user_panel, admin_panel. Determines access and available actions. |
| url | Physical path of the plugin relative to the panel root. | Example: /3rdparty/roundcube/index.php. This must point to the plugin’s main PHP entry file. |
| auto_login_url | URL used for automatic login to the plugin. | Example: /3rdparty/roundcube/?_task=login. This URL will be accessed using credentials passed via HTTP headers. |
| header[] | HTTP headers sent to the plugin for auto-login. |
Can include any of these placeholders: %email% – user email%email_password% – email password%username% – panel username%userid% – panel user ID%dbinfo% – database connection info%usertoken% – secure user tokenExample: header[HTTP_AUTOLOGINUSER]=%email%header[HTTP_AUTOLOGINPASS]=%email_password%
|
| user / group | System user and group under which the plugin PHP process runs. |
Can use $authuser (panel system user), nobody, or any valid system user/group.Ensures correct file permissions and process ownership. |
| user2 / group2 | System user and group under which the plugin PHP process runs for sparte path. |
Can use $authuser (panel system user), nobody, or any valid system user/group.path2=auto_index.php Ensures correct file permissions and process ownership. |
| features | Required system features or capabilities for the plugin. |
Supported features (lowercase): domains, files, security, database, email, mail, advance, software.Multiple features can be comma-separated: features=mail,email
|
| target | Open links in a new browser tab. |
To make a link open in a new tab, use the HTML attribute target= _blank inside your tag.
|
| icon | Path to the plugin icon to display in the panel interface. | Example: /media/icon/roundcube.png |
| display_hide |
Controls whether the plugin should be shown or hidden in the interface.
If set to true, the plugin will not appear in the list.
|
Example: display_hide = true
|
After adding the plugin configuration in the root zip file and uploading it to OLSPanel, the plugin will appear in the 3rd-party section of the panel. Auto-login will use the provided headers if configured.
url path matches the actual location of the plugin files.%email%, %username%, etc. will be replaced automatically by OLSPanel during login.user and group to the panel user or nobody if necessary for permissions.
Each plugin requires a corresponding configuration file with the extension .conf.
The system automatically detects the plugin’s nickname from the plugin name
specified inside the configuration file. By convention, the configuration file should be named
as plugin_<nickname>.conf, for example, plugin_roundcube.conf.
This file must be placed inside the panel’s root directory, alongside the plugin’s main entry file
(e.g., index.php).
The plugin icon file must also reside in the root of the plugin ZIP archive and must be named
following the convention plugin_icon.png, for example,
plugin_icon.png. This ensures the panel can automatically display the icon
in the plugin listing.
Example directory structure for the RoundCube plugin:
zip/
├── index.php
├── plugin_roundcube.conf
├── plugin_icon.png
The system will automatically read the configuration file to determine the plugin’s display name,
service, headers, and other settings required for proper integration and auto-login.
The system automatically detects plugin links from JSON files placed inside the
plugin/ directory.
Each file must have a .json extension — for example,
wordpress_link.json or cms_links.json.
Every JSON file can contain either:
[
{
"icon": "/media/icon/wordpress.png",
"order": -1,
"name": "Install WordPress",
"url": "/3rdparty/olsapp/indexb.live.php?view=install&app=wordpress",
"features": "database",
"service": "user_panel",
"target": "_blank"
},
{
"icon": "/media/icon/joomla.png",
"order": 1,
"name": "Install Joomla",
"url": "/3rdparty/olsapp/indexb.live.php?view=install&app=joomla",
"features": "database",
"service": "user_panel",
"target": "_blank"
}
]
You can also use a single plugin entry file, for example:
{
"icon": "/media/icon/php.svg",
"order": 10,
"name": "PHP Info",
"url": "/phpinfo/",
"features": "system",
"service": "admin_panel",
"target": "_self"
}
The following fields are supported:
name — Display name of the plugin linkicon — Icon URL or path shown in the panelurl — Full or relative link targetorder — Sort order (lower numbers appear first)features — Optional feature tag (e.g. database, system)service — Optional service scope (admin_panel, user_panel, or both)target — Optional link target (e.g. _blank for new tab)display_hide — If set to true, the plugin will be hidden
plugin/
├── cms_links.json
├── wordpress_link.json
├── custom_admin.json
The system automatically loads and merges all valid JSON files from this directory.
Each file is read only once, and hidden entries (display_hide=true) are skipped.
OLSPanel supports dynamic module creation using the Django framework. Each module can extend the Admin and User dashboards with its own templates and views. To learn how to create and integrate your own module, visit the detailed development guide below:
👉 Open OLSPanel Module Development Guide
This guide includes examples for:
modules/@alogin_required and @login_requiredhome_right.html and admin_home_top.html