Customizing OpenPanel Interface (Branding and White-Label)
Everything in OpenPanel is modular and can easily be modified or disabled without breaking the rest of the functionalities.
To customize OpenPanel, you have the following options:
- Display personalized message per user
- Enable/disable features and pages from the OpenPanel interface
- Set pre-installed services for users
- Customize Default, Suspended User and Suspended Domain pages
- Localize the interface
- Set custom branding
- Set a custom color scheme
- Replace How-to articles with your knowledge base
- Customize any page
- Customize login page
- Add custom CSS or JS code to the interface
- Create a custom module for OpenPanel
- Self-hosted temporary links for SiteManager
- Self-hosted screenshots for SiteManager
Personalized messages
Administrators can set a custom message to be displayed for any OpenPanel user by creating/editing file /etc/openpanel/openpanel/core/users/USERNAME/custom_message.html
file. Both plain text and HTML code are accepted:
Enable/disable features
Administrators have the ability to enable or disable each feature (page) in the OpenPanel interface. To activate a feature, navigate to OpenAdmin > Settings > OpenPanel and select service name in the "Enable Features" section and click save.
Once enabled, the feature becomes instantly available to all users, appearing in the OpenPanel interface sidebar, search results, and dashboard icons.
Set pre-installed services
OpenPanel uses docker images as the base for each hosting plan. Based on the docker image, different services can be set per plan/user. For examples, we provide 2 docker images, one that has nginx pre-installed and another that uses apache. By creating a custom docker image, you can set in that image what to be pre-installed when you create a new user, for example, set mariadb instead of mysql or install php ioncube loader extension.
To add a custom service pre-installed for users:
- Create a custom docker image
- Create a new hosting plan with that docker image
- Create a new user on that plan
Localize the interface
OpenPanel is localization ready and can easily be translated into any language.
OpenPanel is shipped with the EN locale, additional locales can be installed by the Administrator.
To install additional locales (replace de-de
with your locale):
opencli locale de-de
To translate OpenPanel to another language follow these steps:
- Fork this repository.
- Copy
en_us
to your locale e.g.es_es
- Translate the
messages.pot
file - Send a pull request
Set custom branding
Custom brand name and logo can be set from OpenAdmin > Settings > OpenPanel page.
To set a custom name visible in the OpenPanel sidebar and on login pages, enter the desired name in the "Brand name" option. Alternatively, to display a logo instead, provide the URL in the "Logo image" field and save the changes.
Customize Templates
You can customize all templates that are displayed to users:
- Domain VHost Template
- Default Landing Page
- Suspended User Template
- Suspended Domain Template
- Error Pages
Create OpenPanel Module
To create a custom module (plugin) for OpenPanel follow this guide: Example Module
Set a custom color scheme
To set a custom color-scheme for OpenPanel interface, edit the /etc/openpanel/openpanel/custom_code/custom.css
file and in it set your preferred color scheme.
nano /etc/openpanel/openpanel/custom_code/custom.css
Set the custom css code, save and restart openpanel to apply changes:
cd /root && docker compose up -d openpanel
Example:
Replace How-to articles with your knowledge base
OpenPanel Dashboard page displays How-to articles from the OpenPanel Docs, however these can be changed to display your knowledgebase articles instead.
Edit the file /etc/openpanel/openpanel/conf/knowledge_base_articles.json
and in it set your links:
{
"how_to_topics": [
{"title": "How to install WordPress", "link": "https://openpanel.com/docs/panel/applications/wordpress#install-wordpress"},
{"title": "Publishing a Python Application", "link": "https://openpanel.com/docs/panel/applications/pm2#python-applications"},
{"title": "How to edit Nginx / Apache configuration", "link": "https://openpanel.com/docs/panel/advanced/server_settings#nginx--apache-settings"},
{"title": "How to create a new MySQL database", "link": "https://openpanel.com/docs/panel/databases/#create-a-mysql-database"},
{"title": "How to add a Cronjob", "link": "https://openpanel.com/docs/panel/advanced/cronjobs#add-a-cronjob"},
{"title": "How to change server TimeZone", "link": "https://openpanel.com/docs/panel/advanced/server_settings#server-time"}
],
"knowledge_base_link": "https://openpanel.com/docs/panel/intro/?source=openpanel_server"
}
Edit any page template
Each OpenPanel template code is open and can easily be edited by just editing the HTML code.
Templates are located inside a Docker container named openpanel
, so you first need to find the template that has the code that you want to edit.
For example, to edit the sidebar and hide the OpenPanel logo, follow these steps:
Create a new folder/file locally for your modified code.
mkdir /root/custom_template/
Copy the existing template code.
docker cp openpanel:/usr/local/panel/templates/partials/sidebar.html /root/custom_template/sidebar.html
Edit the code.
Configure OpenPanel to use your template. Edit the
/root/docker-compose.yml
file and in it set your file to overwrite the original template:nano /root/docker-compose.yml
and in the file under openpanel > volumes set local path and original:
- /root/custom_theme/sidebar.html:/usr/local/panel/templates/partials/sidebar.html
Restart OpenPanel to apply the new template.
cd /root && docker compose up -d openpanel
Customize login page
OpenPanel login page template code is located at /usr/local/panel/templates/user/login.html
inside the docker container.
To edit the login page:
Create a new folder/file locally for your modified code.
mkdir /root/custom_template/
Copy the existing template code.
docker cp openpanel:/usr/local/panel/templates/user/login.html /root/custom_template/login.html
Edit the code.
Configure OpenPanel to use your template. Edit the
/root/docker-compose.yml
file and in it set your file to overwrite the original template:nano /root/docker-compose.yml
and in the file under openpanel > volumes set local path and original:
- /root/custom_theme/login.html:/usr/local/panel/templates/user/login.html
Restart OpenPanel to apply the new login template.
cd /root && docker compose up -d openpanel
Add custom CSS or JS code
To add custom CSS code to the OpenPanel interface, edit the file /etc/openpanel/openpanel/custom_code/custom.css
:
nano /etc/openpanel/openpanel/custom_code/custom.css
To add custom JavaScript code to the OpenPanel interface, edit the file /etc/openpanel/openpanel/custom_code/custom.js
:
nano /etc/openpanel/openpanel/custom_code/custom.js
To insert custom code within the <head>
tag of the OpenPanel interface, modify the content of the file located at /etc/openpanel/openpanel/custom_code/in_header.html
and include your custom code within it:
nano /etc/openpanel/openpanel/custom_code/in_header.html
To insert custom code within the <footer>
tag of the OpenPanel interface, modify the content of the file located at /etc/openpanel/openpanel/custom_code/in_footer.html
and include your custom code within it:
nano /etc/openpanel/openpanel/custom_code/in_footer.html