Personal tools
Namespaces

Variants
Actions

Portainer Docker Containers For WHMCS

From ModulesGarden Wiki
(Difference between revisions)
Jump to: navigation, search
(Created page with "<meta name="keywords" content="server monitoring for whmcs, whmcs server monitoring configuration, whmcs server monitoring management, whmcs server monitoring installation, wh...")
 
(About Portainer Docker Containers For WHMCS)
 
(154 intermediate revisions by one user not shown)
Line 1: Line 1:
<meta name="keywords" content="server monitoring for whmcs, whmcs server monitoring configuration, whmcs server monitoring management, whmcs server monitoring installation, whmcs server monitoring common problems, about whmcs server monitoring, whmcs server monitoring documentation, whmcs server monitoring faq, whmcs server monitoring help, whmcs server monitoring guide, whmcs server monitoring wiki, whmcs server monitoring tutorial, whmcs server monitoring tips"></meta>
+
<meta name="keywords" content="portainer docker containers for whmcs, whmcs portainer docker containers configuration, whmcs portainer docker containers management, whmcs portainer docker containers installation, whmcs portainer docker containers common problems, about whmcs portainer docker containers, whmcs sportainer docker containers documentation, whmcs portainer docker containers faq, whmcs portainer docker containers help, whmcs sportainer docker containers guide, whmcs portainer docker containers wiki, whmcs portainer docker containers tutorial, whmcs portainer docker containers tips"></meta>
<meta name="description" content="ModulesGarden Wiki Contains All The Information You Need About The Server Monitoring For WHMCS Module."></meta>
+
<meta name="description" content="ModulesGarden Wiki Contains All The Information You Need About The Portainer Docker Containers For WHMCS Module."></meta>
  
=About [https://www.modulesgarden.com/products/whmcs/server-monitoring Portainer Docker Containers For WHMCS]=
+
=About [https://www.modulesgarden.com/products/whmcs/portainer-docker-containers Portainer Docker Containers For WHMCS]=
 
{|
 
{|
|style="padding: 10px 0px 10px 0px;"|'''Portainer Docker Containers For WHMCS''' is a powerful tool
+
|style="padding: 10px 0px 10px 0px;"|'''Portainer Docker Containers For WHMCS''' is a module that connects your WHMCS system with Portainer, allowing you to sell and manage Docker containers just like traditional hosting products.<br/>
 +
It automates the deployment process, so containers are created, configured, and assigned to clients instantly upon purchase.<br/> Clients can control their containers directly from the WHMCS client area, including start, stop, restart actions, viewing logs, accessing the console, and more. <br/>You can also enable "App Templates" to let clients reinstall their stack using predefined configurations.
 +
|}
 +
 
 +
*'''Admin Area Features:'''
 +
{|
 +
|style="padding: 10px 0px 0px 30px;"|✔ Create/Suspend/Unsuspend/Terminate Container Or Stack-Based Service
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 30px;"|✔ Change Package
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 30px;"|✔ Start/Stop/Restart Service
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 30px;"|✔ View Service Status And Details
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 30px;"|✔ View Containers Assigned To Stack
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 30px;"|✔ View Published Ports
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 30px;"|✔ View Environment Variables
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 30px;"|✔ View Container Logs
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 30px;"|✔ View, Manage And Show Details Of Action Logs
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 30px;"|✔ View Statistic Graphs:
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 45px;"|✔ Memory
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 45px;"|✔ CPU Usage
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 45px;"|✔ Network Usage
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 45px;"|✔ Disk I/O Usage
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 30px;"|✔ Configure Product Details:
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 45px;"|✔ Provide Product General Configuration:
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 60px;"|✔ Define Default Instance Name
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 60px;"|✔ Define Default Username
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 60px;"|✔ Toggle Opening Container Console In New Window
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 45px;"|✔ Provide App Templates Configuration
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 60px;"|✔ Select Default Application Group
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 60px;"|✔ Select Default Application
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 45px;"|✔ Define Container Limits
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 60px;"|✔ Memory Reservation [MB]
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 60px;"|✔ Memory Limit [MB]
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 60px;"|✔ CPU Limit [Cores]
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 45px;"|✔ Choose Features Available In Client Area:
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 60px;"|✔ Select Available Container Details
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 60px;"|✔ Select Available Stack Details
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 60px;"|✔ Start/Stop/Restart Service
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 60px;"|✔ Reinstallation
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 60px;"|✔ Environment Variables
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 60px;"|✔ Published Ports
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 60px;"|✔ Container Logs
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 60px;"|✔ Console
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 60px;"|✔ Graphs
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 60px;"|✔ Assigned Containers
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 60px;"|✔ Action Logs
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 45px;"|✔ Choose Features Available In Admin Area:
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 60px;"|✔ Service Actions
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 60px;"|✔ Stack Details
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 60px;"|✔ Assigned Containers 
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 60px;"|✔ Container Details
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 60px;"|✔ Published Ports
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 60px;"|✔ Environment Variables
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 60px;"|✔ Container Logs
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 60px;"|✔ Graphs
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 60px;"|✔ Action Logs 
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 45px;"|✔ Generate Configurable Options
 +
|}
 +
{|
 +
|style="padding: 0px 0px 10px 30px;"|✔ Configure WHMCS Server Details For Selected Environment
 
|}
 
|}
  
 
*'''Addon Module Features:'''
 
*'''Addon Module Features:'''
 
{|
 
{|
|style="padding: 10px 0px 0px 30px;"|✔ Monitor Services Health Status From Client And Admin Areas
+
|style="padding: 10px 0px 0px 30px;"|✔ View Dashboard With List Of Launched Services
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 30px;"|✔ View Dashboard Statistics:
+
|style="padding: 0px 0px 0px 30px;"|✔ Configure App Templates:
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 45px;"|✔ Graph Overview
+
|style="padding: 0px 0px 0px 45px;"|✔ Container Applications
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 45px;"|✔ Checks Summaries
+
|style="padding: 0px 0px 0px 45px;"|✔ Stack Applications
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 45px;"|✔ Recently Performed Checks
+
|style="padding: 0px 0px 0px 30px;"|✔ Customize Application Details And Logo Images
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 30px;"|✔ Configure Available Services For Clients To Monitor:
+
|style="padding: 0px 0px 0px 30px;"|✔ Create Application Groups And Assign App Templates
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 45px;"|✔ Select Product
+
|style="padding: 0px 0px 0px 30px;"|✔ Manage Media Library With Logotypes For App Templates
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 45px;"|✔ Set Minimum Number Of Failures Triggering Notification
+
|style="padding: 0px 0px 0px 30px;"|✔ Customize Module Language Files With "Translations" Tool
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 45px;"|✔ Set Maximum Number Of Checks For Clients
+
|style="padding: 0px 0px 10px 30px;"|✔ View And Manage Logs
 
|}
 
|}
 +
 +
*'''Client Area Features:'''
 
{|
 
{|
|style="padding: 0px 0px 0px 45px;"|✔ Set Minimum Interval Between Checks
+
|style="padding: 10px 0px 0px 30px;"|✔ View Container/Stack Status And Details
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 45px;"|✔ Set Notifications Delay Before Next One Is Sent
+
|style="padding: 0px 0px 0px 30px;"|✔ Start/Stop/Restart Service
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 45px;"|✔ Select Check Types Available For Clients:
+
|style="padding: 0px 0px 0px 30px;"|✔ View Containers Assigned To Stack
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 60px;"|✔ cURL Check
+
|style="padding: 0px 0px 0px 30px;"|✔ View Published Ports
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 60px;"|✔ ICMP Ping Check
+
|style="padding: 0px 0px 0px 30px;"|✔ View Environment Variables
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 60px;"|✔ Port Connection
+
|style="padding: 0px 0px 0px 30px;"|✔ View Action Logs
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 60px;"|✔ Socket Ping Check
+
|style="padding: 0px 0px 0px 30px;"|✔ Reinstall Service With Predefined Templates:
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 45px;"|✔ Allow Clients To Use Custom IP Address For Checks
+
|style="padding: 0px 0px 0px 45px;"|✔ Container Applications
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 45px;"|✔ Select Available Notification Types For Client:
+
|style="padding: 0px 0px 0px 45px;"|✔ Stack Applications
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 60px;"|✔ For Failed Checks:
+
|style="padding: 0px 0px 0px 30px;"|✔ View Container Logs
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 75px;"|✔ Select Email Template
+
|style="padding: 0px 0px 0px 30px;"|✔ Access Console
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 75px;"|✔ Provide SMS Message (Requires [https://www.modulesgarden.com/products/whmcs/sms-center SMS Center For WHMCS] Integration)
+
|style="padding: 0px 0px 0px 30px;"|✔ View Container Graphs:
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 60px;"|✔ For Service Recovery:
+
|style="padding: 0px 0px 0px 45px;"|✔ Memory Usage
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 75px;"|✔ Select Email Template
+
|style="padding: 0px 0px 0px 45px;"|✔ CPU Usage
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 75px;"|✔ Provide SMS Message (Requires [https://www.modulesgarden.com/products/whmcs/sms-center SMS Center For WHMCS] Integration)
+
|style="padding: 0px 0px 0px 45px;"|✔ Network Usage
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 30px;"|✔ Configure Services Monitoring Checks:
+
|style="padding: 0px 0px 10px 45px;"|✔ Disk I/O Usage
 
|}
 
|}
 +
 +
*'''Configurable Options:'''
 
{|
 
{|
|style="padding: 0px 0px 0px 45px;"|✔ Set Check Verification Interval
+
|style="padding: 10px 0px 0px 30px;"|✔ Application
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 45px;"|✔ Set Failure Count To Trigger Notification
+
|style="padding: 0px 0px 0px 30px;"|✔ Memory Reservation
 
|}
 
|}
 
*'''Client Area:'''
 
 
{|
 
{|
|style="padding: 10px 0px 0px 30px;"|✔ Create Monitoring Checks For Allowed Services Within Specified Limits:
+
|style="padding: 0px 0px 0px 30px;"|✔ Memory Limit
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 10px 30px;"|✔ Set Server Monitoring Check Limit
+
|style="padding: 0px 0px 10px 30px;"|✔ CPU Limit
 
|}
 
|}
  
 
*'''General Info:'''
 
*'''General Info:'''
 
{|
 
{|
|style="padding: 10px 0px 0px 30px;"|✔ Integrated With [https://www.modulesgarden.com/products/whmcs/sms-center SMS Center For WHMCS] - Send SMS Notifications On Failed Checks And Service Recovery
+
|style="padding: 10px 0px 0px 30px;"|✔ Requires Portainer Business Edition (BE)
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 30px;"|✔ Supports Docker Labels For Domain Routing Via Traefik
 
|}
 
|}
 
{|
 
{|
Line 106: Line 264:
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 30px;"|✔ Supports PHP 8.4 Back To PHP 8.1
+
|style="padding: 0px 0px 0px 30px;"|✔ Supports PHP 8.3 Back To PHP 8.1
 
|}
 
|}
 
{|
 
{|
Line 115: Line 273:
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 30px 30px;"|✔ Easy [https://www.docs.modulesgarden.com/How_To_Upgrade_WHMCS_Module Module Upgrade] To [https://www.modulesgarden.com/products/whmcs/server-monitoring#open-source-version Open Source Version]
+
|style="padding: 0px 0px 30px 30px;"|✔ Easy [https://www.docs.modulesgarden.com/How_To_Upgrade_WHMCS_Module Module Upgrade] To [https://www.modulesgarden.com/products/whmcs/portainer-docker-containers#open-source-version Open Source Version]
 
|}
 
|}
  
=Installation=
+
=Installation And Configuration=
 
{|
 
{|
|style="padding: 10px 0px 5px 0px;"|'''This tutorial will show you how to successfully install and configure [https://www.modulesgarden.com/products/whmcs/server-monitoring Server Monitoring For WHMCS.]''' <br />
+
|style="padding: 10px 0px 5px 0px;"|'''This tutorial will show you how to successfully install and configure [https://www.modulesgarden.com/products/whmcs/portainer-docker-containers Portainer Docker Containers For WHMCS.]''' <br />
 
We will guide you step by step through the whole installation and configuration process.  
 
We will guide you step by step through the whole installation and configuration process.  
 
|}
 
|}
Line 127: Line 285:
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:SM_1.png]]
+
|style="padding: 0px 0px 20px 25px;"|[[File:PDC_1.png]]
 
|}
 
|}
 
{|
 
{|
Line 134: Line 292:
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:SM_2.png]]
+
|style="padding: 0px 0px 20px 25px;"|[[File:PDC_2.png]]
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 15px 15px;"|'''3. When you install Server Monitoring For WHMCS for the first time you have to rename '' 'license_RENAME.php' '' file.'''<br />
+
|style="padding: 0px 0px 15px 15px;"|'''3. When you install Portainer Docker Containers For WHMCS for the first time you have to rename '' 'license_RENAME.php' '' file.'''<br />
The file is located in '' 'modules/addons/ServerMonitoring/license_RENAME.php'. '' Rename it from '' 'license_RENAME.php' '' to '' 'license.php'. ''
+
The file is located in '' 'modules/servers/PortainerDockerContainers/license_RENAME.php'. '' Rename it from '' 'license_RENAME.php' '' to '' 'license.php'. ''
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:SM_3.png]]
+
|style="padding: 0px 0px 20px 25px;"|[[File:PDC_3.png]]
 
|}
 
|}
 
{|
 
{|
Line 148: Line 306:
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:SM_4.png]]
+
|style="padding: 0px 0px 20px 25px;"|[[File:PDC_4.png]]
 
|}
 
|}
<!---
 
 
{|
 
{|
 
|style="padding: 0px 0px 15px 15px;"|'''5. Now, set up the '' 'storage' '' folder as recursively writable.<br/>
 
|style="padding: 0px 0px 15px 15px;"|'''5. Now, set up the '' 'storage' '' folder as recursively writable.<br/>
This folder is available at '' '/yourWHMCS/modules/addons/ServerMonitoring/'.''
+
This folder is available at '' '/yourWHMCS/modules/addons/PortainerDockerContainers/'.''<br/>
 +
'''''Note:''' It is needed for the Media Library to store uploaded images safely.''
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:SM_5.png]]
+
|style="padding: 0px 0px 20px 25px;"|[[File:PDC_5.png]]
 
|}
 
|}
--->
+
==Addon Activation==
 
{|
 
{|
|style="padding: 0px 0px 15px 15px;"|'''5. Now you have to activate the module in your WHMCS system. '''<br />
+
|style="padding: 10px 0px 15px 15px;"|'''6. Now you have to activate the module in your WHMCS system. '''<br />
Log in to your WHMCS admin area. Go to '' 'System Settings' '' → '' 'Addon Modules'. '' Afterwards, find '' 'Server Monitoring' '' and press the '' 'Activate' '' button.
+
Log in to your WHMCS admin area. Go to '' 'System Settings' '' → '' 'Addon Modules'. '' Afterwards, find '' 'Portainer Docker Containers' '' and press the '' 'Activate' '' button.
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:SM_6.png]]
+
|style="padding: 0px 0px 20px 25px;"|[[File:PDC_6.png]]
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 15px 15px;"|'''6. In the next step, you need to permit access to this module.'''<br />
+
|style="padding: 0px 0px 15px 15px;"|'''7. In the next step, you need to permit access to this module.'''<br />
 
To do so, click on the '' 'Configure' '' button, tick '' 'Full Administrator' '' and press '' 'Save Changes'. ''
 
To do so, click on the '' 'Configure' '' button, tick '' 'Full Administrator' '' and press '' 'Save Changes'. ''
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:SM_7.png]]
+
|style="padding: 0px 0px 20px 25px;"|[[File:PDC_6_1.png]]
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 15px 15px;"|'''7. The final step of the module installation is setting up cron commands that are required for several module features to work properly.
+
|style="padding: 0px 0px 15px 15px;"|'''8. You have just successfully installed Portainer Docker Containers For WHMCS!'''<br />
<pre> php -q /your_whmcs/modules/addons/ServerMonitoring/cron/cron.php checks:generate </pre>
+
You can access your module under '' 'Addons' '' → '' 'Portainer Docker Containers'.''<br/>
<pre> php -q your_whmcs/modules/addons/ServerMonitoring/cron/cron.php checks:run </pre>
+
Read the guide provided in the '' '[[#App_Templates|App Templates]]' '' or continue with this documentation.
The above directory is exemplary, please adjust the cron lines to your own needs. A 1-minute interval is recommended.<br/>
+
'''''Note:''' The second cron may require additional steps on some servers, see the [[#Tips|Tips]] section for more information.''
+
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 15px 15px;"|'''8. You have just successfully installed Server Monitoring For WHMCS!'''<br />
+
|style="padding: 0px 0px 30px 25px;"|[[File:PDC_6_2.png]]
You can access your module under '' 'Addons' '' → '' 'Server Monitoring'.''<br/>
+
Read the guide provided on the '' '[[#Dashboard|Dashboard]]' '' or continue with this documentation.
+
 
|}
 
|}
 +
 +
==Configuration of Server==
 
{|
 
{|
|style="padding: 0px 0px 30px 25px;"|[[File:SM_8.png]]
+
|style="padding: 10px 0px 20px 15px;"|'''9. Now, log in to your WHMCS and proceed to '' 'System Settings' '' → '' 'Servers' '' and press '' 'Add New Server'.''
 
|}
 
|}
 
=Management=
 
 
{|
 
{|
|style="padding: 10px 0px 30px 15px;"|'''Server Monitoring For WHMCS empowers your clients with tools to monitor their services directly from the WHMCS client area.'''<br/>
+
|style="padding: 0px 0px 20px 25px;"|[[File:PDC_7.png]]
In this brief guide, we will introduce the module’s capabilities and show you how to make the most of its features.
+
 
|}
 
|}
==Module Addon==
 
 
{|
 
{|
|style="padding: 10px 0px 30px 15px;"|The module addon is where all of the setup and management take place for the admin.  
+
|style="padding: 0px 0px 15px 15px;"|'''10. Fill in the ''Name'', provide the ''Hostname'' or ''IP Address'' in both fields at the top ''(filling in both Hostname and IP Address fields is required to proceed)''. '''<br/>
It allows you to add products to the module, enabling the creation of checks for services associated with those products.<br/> It also features several management tools like the queue, translations tool and module logs.
+
In the '''Server Details''' section:
 +
* Set '''Module''' to '' 'Portainer Docker Containers' ''
 +
* '''Access Key ID / Username''' - this field can be skipped.
 +
* Enter your '''Secret Access Key / Password''' - use an admin API key.
 +
* Click '''Test Connection''' to ensure proper communication with the Portainer instance.
 +
* Click the '''Configure''' button to select your desired '''environment''' (Portainer endpoint). <br/> '''''Note:''' The environment defines all core settings, such as available resources (CPU, RAM, GPU) and what container or stack templates will be used.<br/> These are configured directly in Portainer. In the WHMCS module, you only choose from existing environments.''
 +
* After selecting the environment, the '''Access Hash''' will be filled in automatically.
 +
* If your Portainer server uses SSL, ensure the '''Secure'''' checkbox is enabled. <br/>You can also enable the '''Override with Custom Port''' option and enter your custom Portainer API port.
 +
* Finally, adjust '''SSO Access Control''' if needed, then click '''Save Changes'''.
 
|}
 
|}
===Products===
 
 
{|
 
{|
|style="padding: 10px 0px 15px 15px;"|To start creating checks, the module functionality must first be enabled for specific products.
+
|style="padding: 0px 0px 20px 25px;"|[[File:PDC_8.png]]
This step is crucial as it defines how checks can be configured later on.<br/>
+
Start by navigating to the '' 'Products' '' tab and clicking on the '' 'Add Product' '' button.
+
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:SM_13.png]]
+
|style="padding: 0px 0px 20px 25px;"|[[File:PDC_8_1.png]]
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 15px 15px;"|Fill out the necessary fields as you add the products:
+
|style="padding: 0px 0px 20px 15px;"|'''11. It is time to create a server group. To do so, click on '' 'Create Server Group'.'' '''
*'''Status''' - set the initial status for the products, this can be changed later.
+
*'''Enable Graph Widget''' - enable a widget in the client area to display a 30-day graph comparing successful and failed checks for the service.
+
*'''Products''' - include the products you wish to add with this configuration. <br/> If you add more than one product in a single bundle, they will still be listed by one on the list of products, allowing configuration per product.
+
*'''Number of Failures Triggering Notification''' - set the amount of failed checks needed to trigger a notification.<br/>The number you set for the product here will be the minimum clients can set for their services.
+
*'''Checks Number Limit for Clients''' - limit how many checks clients can set up for their services.
+
*'''Verification Interval''' - set the minimum check interval clients can set for their services.
+
*'''Minimum Notification Delay''' - set the minimum time, in minutes, between notifications triggered by users.
+
*'''Available Check Types''' - select which check types will be available to set up.
+
**cURL Check - an HTTP GET request is sent to a server to retrieve data and check its availability.
+
**ICMP Ping Check - an ICMP ping is sent to a specific IP address to test if the server is reachable.
+
***Allow Custom IP Address - allow the client to enter a custom IP address instead of selecting from assigned ones.
+
**Socket Ping Check - a connection attempt is made to a specific IP address and port to check if the service is running and accessible.<br/>'''''Important:''' This check type requires specific configuration, see the [[#Tips|Tips]] section for details.''
+
**Port Connect - a connection attempt is made to a specific IP address and port using the TCP protocol to verify if the service on the specified port is running and accessible.
+
***Allow Custom IP Address - allow the client to enter a custom IP address instead of selecting from assigned ones.
+
*'''Available Notifications''' - include allowed notification types.
+
**Email Notification - send email messages when the checks fail, and when the service recovers.
+
***Email Template for Failed Checks - decide which email template will be used when the failed check threshold is exceeded.<br/>The default email template is named '' 'Server Monitoring - failed checks alert','' it includes merge fields and can be freely edited.
+
***Email Template for Service Recovery - decide which email template will be used when the service has recovered.<br/>The default email template is named'' 'Server Monitoring - service unreachable','' it includes merge fields and can be freely edited.
+
**SMS Notification - enable SMS notifications to keep clients informed of monitoring events.<br/>'''''Note:''' SMS notifications require [https://www.modulesgarden.com/products/whmcs/sms-center SMS Center For WHMCS].''
+
***Message Template for Failed Checks - choose the SMS template used to notify clients when a check fails.
+
***Message Template for Service Recovery - choose the SMS template used to notify clients when a service recovers following downtime.
+
***Number of Phone Slots - set how many phone number slots are available for adding multiple numbers.
+
***API Execution Admin - select the admin account that will execute API requests.
+
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:SM_14.png]]
+
|style="padding: 0px 0px 20px 25px;"|[[File:PDC_9.png]]
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 15px;"|Once products are added, you can disable/enable them with the '' 'Status' '' toggle.
+
|style="padding: 0px 0px 20px 15px;"|'''12. Enter a name, click on your previously created server, press '' 'Add' '' and afterward '' 'Save Changes'.'' '''
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:SM_15.png]]
+
|style="padding: 0px 0px 30px 25px;"|[[File:PDC_10.png]]
 
|}
 
|}
 +
 +
==Configuration of Product==
 
{|
 
{|
|style="padding: 0px 0px 20px 15px;"|Use the action buttons to edit or delete products from the list.
+
|style="padding: 10px 0px 15px 15px;"|'''13. In order to create and configure a product, go to '' 'System Settings' '' → '' 'Products/Services'.'' '''<br />
 +
Click on '' 'Create a New Group' ''.
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:SM_16.png]]
+
|style="padding: 0px 0px 20px 25px;"|[[File:PDC_11.png]]
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 15px;"|You can also delete multiple products with the mass action button.
+
|style="padding: 0px 0px 20px 15px;"|'''14. Enter a product group name and press '' 'Save Changes'.'''''
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 30px 25px;"|[[File:SM_16_1.png]]
+
|style="padding: 0px 0px 20px 25px;"|[[File:PDC_12.png]]
 +
|}
 +
{|
 +
|style="padding: 0px 0px 15px 15px;"|'''15. When you have a product group, you can create your product.'''<br />
 +
To create a product click on '' 'Create a New Product' ''.
 +
|}
 +
{|
 +
|style="padding: 0px 0px 20px 25px;"|[[File:PDC_13.png]]
 +
|}
 +
{|
 +
|style="padding: 0px 0px 15px 15px;"|'''16. Afterward, choose your product group, module and type from the dropdown menus, enter your product name and press '' 'Continue'. '' '''<br />
 +
'' 'Product Type' '' should be set to '' 'Shared Hosting'. ''
 +
|}
 +
{|
 +
|style="padding: 0px 0px 30px 25px;"|[[File:PDC_14.png]]
 
|}
 
|}
  
===Checks===
+
===App Templates===
 
{|
 
{|
|style="padding: 10px 0px 15px 15px;"|Once products are added, both admins and clients can create checks for services.<br/>
+
|style="padding: 10px 0px 5px 15px;"|Before continuing to the product's settings, you must ensure you have at least one application or group of applications ready to use. <br/> Proceed to the addon module → App Templates section and follow below instruction to create a ready application that will be installed by default on the server. <br/>
To see how clients can add and monitor checks for their services see the [[#Client_Area|Client Area]] section.<br/>
+
 
To add checks as an admin, navigate to the '' 'Checks' '' section of the module and click on the '' 'Create Check' '' button.
+
The '''App Templates''' section allows you to manage Docker-based applications that clients can deploy to their containers or stacks directly from the client area.<br/>
 +
Templates are divided into two types, available under separate tabs: '''Container Applications''' and '''Stack Applications'''.<br/>
 +
Use the interface to import, edit, group, and assign application templates to products.
 
|}
 
|}
 +
====Applications====
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:SM_17.png]]
+
|style="padding: 10px 0px 15px 15px;"|This section allows you to load available templates from your connected Portainer environment and manage them within WHMCS. <br/>
 +
* Switch between available categories: Container Applications or Stack Applications using the tabs at the top.
 +
* Click the refresh icon to import or update the list of templates from Portainer.
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 15px 15px;"|Provide the required fields:
+
|style="padding: 0px 0px 20px 25px;"|[[File:PDC_22.png]]
*'''Name''' - provide a name for the check.
+
*'''Status''' - select the initial status of the check, this can be changed later.
+
*'''Verification Interval''' -  decide how often the check should be performed (in minutes).
+
*'''Failure Count for Notification''' - indicates how many checks need to fail before a notification is sent.
+
*'''Notifications Delay''' - set the notification delay, in minutes, for sending notifications when checks fail.
+
*'''Monitored Service''' - select the service that will be checked.
+
*'''Type of Performed Check''' - pick the check type.
+
**cURL Check - an HTTP GET request is sent to a server to retrieve data and check its availability.
+
***Request URL - provide a URL that will return a code upon a GET request.
+
***Response Code - include the expected HTTP response code.
+
**ICMP Ping Check - an ICMP ping is sent to a specific IP address to test if the server is reachable.
+
***IP Address - provide the IP address for the check.
+
**Socket Ping Check - a connection attempt is made to a specific IP address and port to check if the service is running and accessible.<br/>'''''Important:''' This ping type requires specific configuration, see the [[#Tips|Tips]] section for details.''
+
***IP Address - provide the IP address for the check.
+
**Port Connect - a connection attempt is made to a specific IP address and port using the TCP protocol to verify if the service on the specified port is running and accessible.
+
***Allow Custom IP Address - allow the client to enter a custom IP address instead of selecting from assigned ones.
+
*'''Notification Type''' - select the notification type.
+
**Email Notification - email messages will be sent out after the threshold for failed checks is exceeded.
+
***Email Template for Failed Checks - decide which email template will be used when the failed check threshold is exceeded.<br/>The default email template is named '' 'Server Monitoring - failed checks alert','' it includes merge fields and can be freely edited.
+
***Email Template for Service Recovery - decide which email template will be used when the service has recovered.<br/>The default email template is named'' 'Server Monitoring - service unreachable','' it includes merge fields and can be freely edited.
+
***Notification Recipients - select where to send the notification.
+
**SMS Notification - enable SMS notifications to keep clients informed of monitoring events.<br/>'''''Note:''' SMS notifications require [https://www.modulesgarden.com/products/whmcs/sms-center SMS Center For WHMCS].''
+
***Message Template for Failed Checks - choose the SMS template used to notify clients when a check fails.
+
***Message Template for Service Recovery - choose the SMS template used to notify clients when a service recovers following downtime.
+
***API Execution Admin - select the admin account that will execute API requests.
+
***SMS Recipients - Provide the phone numbers to which the notification will be sent. Use a valid international format, such as +XX XXXXXXXXXX or +XX.XXXXXXXXX, where 'XX' is the country code.
+
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:SM_18.png]]
+
|style="padding: 0px 0px 15px 15px;"|Once templates are imported, you can use action buttons to edit, duplicate, or delete them. Mass actions are also available for bulk management.
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 15px;"|Once checks are added, you can turn them off and on with the '' 'Status' '' toggle.
+
|style="padding: 0px 0px 30px 25px;"|[[File:PDC_23.png]]
 
|}
 
|}
 +
 +
====Groups====
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:SM_19.png]]
+
|style="padding: 10px 0px 15px 15px;"|With the templates ready, all that is left is to gather them into groups and include said groups into products.<br/>
 +
Navigate to '' 'App Templates' '' → '' 'Groups' '' and click on the '' 'Create' '' button.
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 15px;"|Click the '' 'Show Logs' '' button to display logs related to the specific check.
+
|style="padding: 0px 0px 20px 25px;"|[[File:PDC_26.png]]
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:SM_20.png]]
+
|style="padding: 0px 0px 15px 15px;"|Read the information, then provide the group with:
 +
*Name
 +
*Description
 +
*Items to include
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 15px;"|The logs will include:
+
|style="padding: 0px 0px 20px 25px;"|[[File:PDC_27.png]]
*'''The result of the check'''
+
*'''Its message'''
+
*'''Its date'''
+
Note that clients will not be able to see messages when checking logs in the client area.
+
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:SM_21.png]]
+
|style="padding: 0px 0px 15px 15px;"|You can use the action button and the mass action function to edit and delete template groups.
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 15px;"|Use the action buttons to edit or delete checks as needed.
+
|style="padding: 0px 0px 20px 25px;"|[[File:PDC_28.png]]
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:SM_22.png]]
+
|style="padding: 0px 0px 30px 15px;"|Your basic configuration of App Templates is now ready. For more advanced configuration, manual creation guides please refer to [[#App_Templates_Advanced_Configuration|App Templates Advanced Configuration]] section in this documentation.<br/>
 +
For now, go back to your product's module settings and complete the configuration there.
 
|}
 
|}
 +
 +
===Module Settings===
 
{|
 
{|
|style="padding: 0px 0px 20px 15px;"|The mass action function can be used to delete multiple checks at once.
+
|style="padding: 10px 0px 15px 15px;"|'''17. Now, go to the '' 'Module Settings' '' section, choose your previously created server group from the dropdown menu.'''<br />
 +
The module should automatically save and reload settings. If not, click on '' 'Save Changes' '' manually.'''
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 30px 25px;"|[[File:SM_23.png]]
+
|style="padding: 0px 0px 20px 25px;"|[[File:PDC_15.png]]
 
|}
 
|}
 +
{|
 +
|style="padding: 0px 0px 15px 15px;"|'''18. Proceed to '' 'Configuration' '' section and adjust the following:'''<br/>
 +
* '''Default Instance Name''' - Enter the default name to be used when creating a new stack or container. The name must contain only lowercase letters, digits, hyphens (-), or underscores (_).  <br/> Available variables: <code>{$domain}</code>, <code>{$client.id}</code>, <code>{$service.id}</code>, <code>{$order.id}</code>, <code>{$random}</code>. <br/>If left empty, the domain name will be used.
  
===[https://www.docs.modulesgarden.com/Queue Queue]===
+
* '''Default Username''' - Enter the default username to be used when creating a new user. <br/>Available variables: <code>{$domain}</code>, <code>{$client.id}</code>, <code>{$service.id}</code>, <code>{$order.id}</code>, <code>{$random}</code>. <br/>If left empty, the domain name will be used.
 +
 
 +
* '''Open Container Console in New Window''' - Enable this option to open the container console in a new window when the feature is available in the client area.
 +
|}
 
{|
 
{|
|style="padding: 10px 0px 15px 15px;"|The "Queue" tool helps you track and manage the tasks created by the module.<br/>
+
|style="padding: 0px 0px 20px 25px;"|[[File:PDC_16.png]]
It allows you to view and interact with task details, including task IDs, statuses, and related items.<br/>
+
You can filter tasks, execute actions like deleting or running tasks, and even use mass actions for bulk operations.<br/>
+
For detailed guidance on using this tool, please refer to the dedicated article available [https://www.docs.modulesgarden.com/Queue here].
+
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 30px 25px;"|[[File:SM_Q.png]]
+
|style="padding: 0px 0px 15px 15px;"|'''19. Proceed with '' 'App Template Configuration'.''
 +
 
 +
'''App Templates Configuration''' - To create instances based on stack or container applications, you must first configure the App Templates in the module's addon. <br/> Once your applications and groups are set up there, you can select the desired application in the product's Module Settings tab to be used during instance creation. <br/> Please refer to the [[##App_Templates|App Templates]] and [[#App_Templates_Advanced_Configuration|App Templates Advanced Configuration]] sections of the documentation for detailed setup instructions.
 +
 
 +
* '''Default Application Group''' - The group of applications available for reinstalls. See the [[#Groups|Groups]] section for more details.
 +
* '''Default Application''' - The application that will be installed by default during container or stack creation. See the [[#Applications|Applications]] section.<br/> Note that if applications are downloaded from the server, they will be divided into two categories: '''Container Applications''' and '''Stack Applications'''.<br/> Make sure to choose the default application based on the type of product you are configuring.
 
|}
 
|}
 +
{|
 +
|style="padding: 0px 0px 20px 25px;"|[[File:PDC_17.png]]
 +
|}
 +
{|
 +
|style="padding: 0px 0px 15px 15px;"|'''20. Set up '' 'Container Limits':'' '''
 +
* '''Memory Reservation [MB]''' - Specify the amount of memory (in MB) reserved for the container. Set to 0 for no reservation.
 +
* '''Memory Limit [MB]''' - Set the maximum amount of memory (in MB) the container can use. Use 0 for unlimited. 
 +
* '''CPU Limit [Cores]''' - Set the maximum number of CPU cores available to the container. Use 0 for unlimited.  <br/>
  
===[https://www.docs.modulesgarden.com/Translations_Tool Translations]===
+
Alternatively, you can use configurable options to allow clients to define these limits at checkout.
 +
|}
 
{|
 
{|
|style="padding: 10px 0px 15px 15px;"|Customizing language files is now extremely easy with the '' "Translations" '' tool that is now available directly in the addon.<br.> Its user-friendly design makes managing various language file tweaks a smooth and efficient process. Prepare translations for the original English files with this handy built-in tool.<br/>
+
|style="padding: 0px 0px 20px 25px;"|[[File:PDC_18.png]]
For specific instructions on how to use this tool please refer to its dedicated article, you will find it [https://www.docs.modulesgarden.com/Translations_Tool here].
+
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 30px 25px;"|[[File:SM_T.png]]
+
|style="padding: 0px 0px 15px 15px;"|'''21. Next, select the features that will be available in the client area:''' 
 +
* '''Container Details''' - Show basic information about the container, such as status, IP address, and resource usage. 
 +
* '''Stack Details''' - Display information related to the assigned stack configuration. 
 +
* '''Start''' - Allow clients to start their container. 
 +
* '''Stop''' - Allow clients to stop their container. 
 +
* '''Restart''' - Allow clients to restart their container. 
 +
* '''Reinstallation''' - Enable access to predefined application templates for quick reinstall. 
 +
* '''Environment Variables''' - Allow clients to view or manage container environment variables. 
 +
* '''Published Ports''' - Show mapped ports between the host and the container. 
 +
* '''Container Logs''' - Provide access to real-time container logs. 
 +
* '''Console''' - Allow access to the container's interactive console. 
 +
* '''Graph''' - Show performance graphs such as CPU, memory, and network usage. 
 +
* '''Assigned Containers''' - Display a list of all containers assigned to the client. 
 +
* '''Action Logs''' - Provide a history of actions performed on the container (e.g. start, stop, reinstall).
 
|}
 
|}
 +
{|
 +
|style="padding: 0px 0px 20px 25px;"|[[File:PDC_19.png]]
 +
|}
 +
{|
 +
|style="padding: 0px 0px 15px 15px;"|'''22. Select the features that will be available in the admin area.'''<br/>
 +
These options define what information and controls admins will see within the WHMCS service management page:<br/>
  
===[https://www.docs.modulesgarden.com/Logs Logs]===
+
* '''Service Actions''' - Perform start, stop, or restart actions directly from the admin area.
 +
* '''Stack Details''' - View the full configuration and status of the assigned stack.
 +
* '''Assigned Containers''' - Display all containers linked to the service.
 +
* '''Container Details''' - Show detailed information about the container, such as IP address, image, and resource usage. 
 +
* '''Published Ports''' - View the port mappings for the container. 
 +
* '''Environment Variables''' - View environment variables set for the container. 
 +
* '''Container Logs''' - Access logs generated by the container. 
 +
* '''Graphs''' - Display real-time resource usage graphs (CPU, RAM, network, disk I/O) per container. 
 +
* '''Action Logs''' - Review all actions performed on the container or stack from within WHMCS.
 +
|}
 
{|
 
{|
|style="padding: 10px 0px 5px 15px;"|The '' "Logs" '' tool makes monitoring and managing module activity records simple and efficient. It provides options to categorize, filter, and view detailed entries, giving you control over the logs.<br/ > Features like bulk deletion, rule-based deletion, and export options make it easy to organize and maintain your logs.<br/>
+
|style="padding: 0px 0px 20px 25px;"|[[File:PDC_20.png]]
For detailed guidance on using this tool, check its dedicated article, which is available [https://www.docs.modulesgarden.com/Logs here].
+
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:SM_L.png]]
+
|style="padding: 0px 0px 15px 15px;"|'''23. At the end of the configuration process, you can decide whether to generate configurable options for the product.'''<br/>
 +
Configurable options allow clients to customize container parameters individually during the order process. 
 +
If no configurable options are defined, the fixed values set in the product configuration will be used instead.
 +
 
 +
'''Available Configurable Options:'''
 +
* <code>app</code> – '''Application''' 
 +
* <code>memory_reservation</code> – '''Memory Reservation''' 
 +
* <code>memory_limit</code> – '''Memory Limit''' 
 +
* <code>max_cpu_usage</code> – '''CPU Limit''' 
 
|}
 
|}
===Dashboard===
 
 
{|
 
{|
|style="padding: 10px 0px 15px 15px;"|The '' 'Dashboard' '' provides information and statistics related to the functions of the module.
+
|style="padding: 0px 0px 10px 25px;"|[[File:PDC_21.png]]
At the top, you will find a condensed setup guide, presenting the same information as this documentation.
+
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:SM_9.png]]
+
|style="padding: 0px 0px 20px 25px;"|[[File:PDC_21_0.png]]
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 15px;"|After familiarizing yourself with the guide, you can opt to hide it under '' 'Additional Actions' '' → '' 'Settings'.''
+
|style="padding: 0px 0px 15px 15px;"|'''Your product configuration is now complete. Do not forget to save the changes once ready.''' <br/>
 +
Before adding it to your offer, make sure to set appropriate pricing. Create as many products as needed, each with different applications or feature sets, to tailor your offer perfectly.
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:SM_9_1.png]]
+
|style="padding: 0px 0px 30px 25px;"|[[File:PDC_21_1.png]]
 
|}
 
|}
 +
 +
=Management=
 
{|
 
{|
|style="padding: 0px 0px 20px 15px;"|Monitor total check successes and failures over time with the line graph.
+
|style="padding: 10px 0px 30px 15px;"|'''Portainer Docker Containers For WHMCS allows your clients to manage and monitor their Docker containers directly from the WHMCS client area.'''<br/>
 +
In this short guide, you'll learn about the module's key features and how to configure them for both client and admin use.
 
|}
 
|}
 +
==Module Addon==
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:SM_10.png]]
+
|style="padding: 10px 0px 30px 15px;"|The module addon is the central place for all administrative setup and management. 
 +
Here, you can register products supported by the module, manage Docker templates, and access various utilities such as the media library, translation manager, and module logs.
 
|}
 
|}
 +
===App Templates Advanced Configuration===
 
{|
 
{|
|style="padding: 0px 0px 15px 15px;"|All check successes and failures are counted across different categories:
+
|style="padding: 10px 0px 30px 15px;"|Please see the [[#App_Templates|App Templates]] for basic configuration, here you will find instructions for advanced users on how to manually manage existing container and stack application templates.<br/>
*'''Check Results from the Last 24 Hours'''
+
Admins can manually edit applications, define their runtime behavior, set default values, and customize input fields in the "Setting Details" section.
*'''Check Results from the Last 7 Days'''
+
*'''Check Results from the Last 30 Days'''
+
*'''Total Check Results'''
+
 
|}
 
|}
 +
 +
====Default Stack Configuration====
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:SM_11.png]]
+
|style="padding: 10px 0px 15px 15px;"|When a stack application is created without a custom Docker Compose configuration (<code>template_stack_file</code> is left empty), the module uses the default templates from Portainer's official repository.<br/>
 +
 
 +
This behavior relies on two built-in variables:
 +
* <code>repository_url</code> - the base URL of the template repository (e.g. <code>https://github.com/portainer/templates</code>)
 +
* <code>repository_stack_file</code> - the path to the specific Docker Compose file in the repo (e.g. <code>stacks/wordpress/docker-compose.yml</code>)
 +
 
 +
These two values are automatically combined to form the full link to the stack definition: 
 +
https://github.com/portainer/templates/blob/master/stacks/wordpress/docker-compose.yml
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 15px 15px;"|The most recent checks are listed in the '' 'Recently Performed Checks' '' table, the information includes:
+
|style="padding: 0px 0px 20px 25px;"|[[File:PDC_42.png]]
*'''Check ID'''
+
*'''Check Name'''
+
*'''Related Service'''
+
*'''Check Type'''
+
*'''Status'''
+
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 30px 25px;"|[[File:SM_12.png]]
+
|style="padding: 0px 0px 15px 15px;"|You can preview all default stack templates directly [https://github.com/portainer/templates here]. <br/>
 +
To customize the default stack, simply copy the Docker Compose content from the original URL and paste it into the <code>template_stack_file</code> field.<br/> Once that field is filled in, only your custom configuration will be used.
 
|}
 
|}
  
==Client Area==
+
====Using Environment Variables in Custom Templates==== 
 
{|
 
{|
|style="padding: 10px 0px 15px 15px;"|Clients will be able to take advantage of Server Monitoring For WHMCS too, as long as they own one of the [[#Products|products]] you have configured.<br/>
+
|style="padding: 10px 0px 15px 15px;"|If you're using a custom Docker Compose config in the <code>template_stack_file</code> field, you can introduce dynamic environment variables.<br/> These are made available to the client so they can enter values during deployment.<br/>
The basic client area integration allows them to create and monitor checks for their service, within restrictions opposed by the admin.<br/>
+
To ensure these are parsed correctly:
To add a new check, click on the '' 'Create Check' '' button.
+
* Use variable names prefixed with <code>ENV_</code>, e.g., <code>ENV_MYSQL_ROOT_PASSWORD</code> - only variables with the <code>ENV_</code> prefix will be visible to clients and substituted during deployment.
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:SM_24.png]]
+
|style="padding: 0px 0px 20px 25px;"|[[File:PDC_43.png]]
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 15px 15px;"|Fill out the necessary fields:
+
|style="padding: 0px 0px 15px 15px;"|
*'''Name''' - provide a name for the check.
+
* In the Compose file, use the <code>{literal}</code> tag around any variables to prevent parsing errors, like this:
*'''Status''' - set the initial status of the check, it can be toggled off and on later as well.
+
{literal}MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}{/literal}
*'''Verification Interval''' - set how often the check should be performed (in minutes).
+
 
*'''Failure Count for Notification''' - set how many checks with the failed verification are needed to send a notification.
+
'''''Important:''' Skipping the <code>{literal}</code> wrapper will cause the configuration parser to fail, blocking the stack from being created.
*'''Type of Performed Check''' - select the type of the check.
+
*'''IP Address''' - select/provide an IP address to be checked.
+
*'''Notification Type''' - select the type of the notification.
+
*'''Notification Recipients''' - select where the notification should be sent.
+
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:SM_25.png]]
+
|style="padding: 0px 0px 30px 25px;"|[[File:PDC_44.png]]
 
|}
 
|}
 +
 +
====Setting a Default Terminal Command==== 
 
{|
 
{|
|style="padding: 0px 0px 20px 15px;"|Once the check is added, you can toggle it on/off as needed with the '' 'Status' '' toggle.  
+
|style="padding: 10px 0px 15px 15px;"|In both stack and container application templates, you can configure a <code>terminal_command</code> value.<br/> This determines the default command executed when the client accesses the container’s console.<br/>
 +
 
 +
Available values (based on Portainer console options):
 +
* <code>/bin/ash</code>
 +
* <code>/bin/bash</code> ''(default)''
 +
* <code>/bin/dash</code>
 +
* <code>/bin/sh</code> 
 +
 
 +
If the default command is not compatible with the container image, you can override it by editing the <code>terminal_command</code> setting default value.
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:SM_26.png]]
+
|style="padding: 0px 0px 30px 25px;"|[[File:PDC_44_1.png]]
 
|}
 
|}
 +
 +
====Traefik Labels in Container Applications====
 
{|
 
{|
|style="padding: 0px 0px 20px 15px;"|You can display logs for the specific check by clicking on the '' 'Show Logs' '' button.
+
|style="padding: 10px 0px 10px 15px;"|Portainer Docker Containers For WHMCS supports the Traefik reverse proxy to automatically expose deployed containers and stacks via domain-based routing.<br/> This is achieved using dynamic '''Docker labels''' set in the application template ''(Container Applications)'' or <code>docker-compose.yml</code> files ''(Stack Applications)''.
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:SM_27.png]]
+
|style="padding: 0px 0px 15px 15px;"|To configure '''Traefik for a container-based application''', go to the '''App Templates → Applications''' tab in the addon module, edit your container application, and navigate to the '''labels''' setting details.
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 15px;"|The logs only include results of the selected check, as opposed to all logs in the table below.
+
|style="padding: 0px 0px 20px 25px;"|[[File:PDC_32.png]]
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:SM_28.png]]
+
|style="padding: 0px 0px 15px 15px;"|Add the following labels as individual settings. You can use Smarty variables like <code>{$hosting.id}</code> or <code>{$hosting.domain}</code> for dynamic route generation:
 +
 
 +
traefik.enable=1
 +
traefik.docker.network=bridge
 +
traefik.http.routers.service-{$hosting.id}.entrypoints=web
 +
traefik.http.routers.service-{$hosting.id}.rule=Host(`{$hosting.domain}`)
 +
traefik.http.routers.service-{$hosting.id}.service=service-{$hosting.id}
 +
traefik.http.services.service-{$hosting.id}.loadbalancer.server.port=80
 +
 
 +
The application will be deployed with these labels automatically. The placeholder variables will be parsed at runtime, ensuring correct values for each service.<br/>
 +
 
 +
'''''Important:'''  Make sure that both the Traefik container and the newly created service are attached to the same Docker network (e.g., <code>bridge</code>) to ensure routing works as expected.''
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 15px 15px;"|Use the action buttons to edit or delete created checks whenever you need to.<br/>
+
|style="padding: 0px 0px 30px 25px;"|[[File:PDC_33.png]]
Consider disabling a check with the '' 'Status' '' toggle before deleting it for good.
+
 
|}
 
|}
 +
 +
====Traefik with Stack Applications====
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:SM_29.png]]
+
|style="padding: 10px 0px 20px 15px;"|'''Stack-based applications''' can also be configured with Traefik by modifying the <code>template_stack_file</code> field in the App Template form.
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 15px 15px;"|The '' 'Server Monitoring Logs' '' list check history of every check related to the service in a single table including:
+
|style="padding: 0px 0px 20px 25px;"|[[File:PDC_34.png]]
*'''Check Name'''
+
*'''Check Type'''
+
*'''Check Result'''
+
*'''Check Date'''
+
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:SM_30.png]]
+
|style="padding: 0px 0px 15px 15px;"|You must supply a full and valid <code>docker-compose.yml</code> script with the required Traefik labels.
 +
 
 +
Below is an example that exposes a WordPress stack through Traefik:
 +
 
 +
<pre>
 +
version: '2'
 +
 
 +
services:
 +
  db:
 +
    image: mysql:5.7
 +
    volumes:
 +
      - db_data:/var/lib/mysql
 +
    restart: always
 +
    network_mode: bridge
 +
    environment:
 +
      MYSQL_ROOT_PASSWORD: {literal}${MYSQL_DATABASE_PASSWORD}{/literal}
 +
      MYSQL_DATABASE: wordpress
 +
      MYSQL_USER: wordpress
 +
      MYSQL_PASSWORD: strongpassword
 +
    ports:
 +
      - "{$hosting.id}6:3306"
 +
 
 +
  wordpress:
 +
    image: wordpress:latest
 +
    network_mode: bridge
 +
    ports:
 +
      - "8{$hosting.id}:80"
 +
    restart: always
 +
    environment:
 +
      WORDPRESS_DB_HOST: {$params.serverip}:{$hosting.id}6
 +
      WORDPRESS_DB_USER: wordpress
 +
      WORDPRESS_DB_PASSWORD: strongpassword
 +
    labels:
 +
      traefik.enable: "true"
 +
      traefik.docker.network: "bridge"
 +
      traefik.http.routers.service-{$hosting.id}.entrypoints: "web"
 +
      traefik.http.routers.service-{$hosting.id}.rule: "Host(`{$hosting.domain}`)"
 +
      traefik.http.routers.service-{$hosting.id}.service: "service-{$hosting.id}"
 +
      traefik.http.services.service-{$hosting.id}.loadbalancer.server.port: "80"
 +
   
 +
 
 +
volumes:
 +
    db_data:
 +
</pre>
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 15px;"|A graph with check results over time will be drawn for the service as well, provided the function has been enabled.
+
|style="padding: 0px 0px 30px 25px;"|[[File:PDC_35.png]]
 
|}
 
|}
 +
 +
===Media Library===
 
{|
 
{|
|style="padding: 0px 0px 30px 25px;"|[[File:SM_30_1.png]]
+
|style="padding: 10px 0px 15px 15px;"|The media library allows you to upload images for use elsewhere in the module by admins and clients.<br/>
 +
To upload a new picture, click on the '' 'Upload Image' '' button.<br/>
 +
'''''Note:''' The icons used in the Media Library by default are provided by [https://github.com/simple-icons/simple-icons Simple Icons] and are licensed under the [https://creativecommons.org/publicdomain/zero/1.0/ CC0 1.0 Universal (Public Domain Dedication)] license.''
 +
|}
 +
{|
 +
|style="padding: 0px 0px 20px 25px;"|[[File:PDC_37.png]]
 +
|}
 +
{|
 +
|style="padding: 0px 0px 15px 15px;"|You can delete images one by one by clicking on them.<br/>
 +
To delete all images at once, use the additional action button.
 +
|}
 +
{|
 +
|style="padding: 0px 0px 30px 25px;"|[[File:PDC_38.png]]
 
|}
 
|}
  
<!---
+
===[https://www.docs.modulesgarden.com/Translations_Tool Translations]===
==Proxmox Integration==
+
{|
Not in 1.0
+
|style="padding: 10px 0px 15px 15px;"|Customizing language files is now extremely easy with the '' "Translations" '' tool that is now available directly in the addon.<br.>
http://git.mglocal/whmcs-products/monitoring-tool/-/issues/60
+
Its simple design makes managing various language file tweaks a smooth and efficient process. Use this built-in tool to prepare translations for the original English files. <br/> You can also add missing or custom elements and define dynamic translations for error messages to ensure that all output, whether visible to you or your clients, is fully user-friendly.<br/>
--->
+
For detailed instructions on how to use the tool, please refer to the dedicated article [https://www.docs.modulesgarden.com/Translations_Tool here].
 +
|}
 +
{|
 +
|style="padding: 0px 0px 30px 25px;"|[[File:PDC_39.png]]
 +
|}
  
<!--
+
===[https://www.docs.modulesgarden.com/Logs Logs]===
Odkomentować po updatcie proxmoxa
+
==Proxmox Integration==
+
 
{|
 
{|
|style="padding: 10px 0px 15px 15px;"|The module includes a dedicated integration with Proxmox VE VPS For WHMCS.
+
|style="padding: 10px 0px 15px 15px;"|The '' 'Logs' '' tab is where the module logs are stored.<br/>
To enable Server Monitoring For WHMCS features for your clients, in the module settings of a Proxmox product, find and enable the '' 'Server Monitoring' '' toggle.
+
You can filter the module logs by type with the '' 'Show' '' buttons:
 +
*'''Info'''
 +
*'''Notice'''
 +
*'''Error'''
 +
*'''Critical'''
 +
*'''Total'''<br/>
 +
'''All information on Logs can be found in the dedicated [https://www.docs.modulesgarden.com/Logs Logs] article.'''
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:SM_31.png]]
+
|style="padding: 0px 0px 30px 25px;"|[[File:PDC_40.png]]
 
|}
 
|}
 +
 +
===Dashboard===
 
{|
 
{|
|style="padding: 0px 0px 20px 15px;"|You can also set this toggle as a configurable option
+
|style="padding: 10px 0px 15px 15px;"|The '' 'Dashboard' '' provides information and statistics related to the functions of the module.
 +
Press "i" to see service details.
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:SM_32.png]]
+
|style="padding: 0px 0px 30px 25px;"|[[File:PDC_41.png]]
 
|}
 
|}
 +
 +
==Admin Area==
 
{|
 
{|
|style="padding: 0px 0px 15px 15px;"|In the Server Monitoring addon, add the Proxmox product as you normally would.<br/>
+
|style="padding: 10px 0px 20px 15px;"|'''Stack-based product type view:'''
If you need a reminder, see the [[#Products|Products]] section.<br/>
+
* Start/stop/restart the service
Remember to enable the product.
+
* See stack details
 +
* See assigned to the stack containers
 +
* Action logs (more details & remove options)
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:SM_33.png]]
+
|style="padding: 0px 0px 20px 25px;"|[[File:PDC 46.png]]
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 15px;"|Clients will be able to find the new '' 'Server Monitoring' '' section in the client area under '' 'Additional Tools'.''
+
|style="padding: 0px 0px 20px 15px;"|'''Container-based product type view:'''
 +
* Start/stop/restart the service
 +
* See container details
 +
* List of published ports (IP Address, Private Port, Public Port)
 +
* Environment Variables
 +
* Container Logs
 +
* Action Logs (more details & remove options)
 +
* Container Usage Graphs: Memory Usage, CPU Usage, Network Usage and Disk I/O Usage
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:SM_34.png]]
+
|style="padding: 0px 0px 30px 25px;"|[[File:PDC 46_0.png]]
 
|}
 
|}
 +
 +
==Ordering==
 
{|
 
{|
|style="padding: 0px 0px 15px 15px;"|They will be able to set up their own checks and monitor check history.
+
|style="padding: 10px 0px 15px 15px;"|Owing to configurable options, you are able to offer a product that your clients can tailor according to their needs.<br/>
For a detailed explanation see the [[#Client_Area|Client Area]] section.
+
Additionally, you are able to set up pricing for each configurable option, which makes your offer even more competitive.
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:SM_35.png]]
+
|style="padding: 0px 0px 30px 25px;"|[[File:PDC 45.png]]
 
|}
 
|}
 +
===Importing Existing Container===
 
{|
 
{|
|style="padding: 0px 0px 15px 15px;"|Additionally, you can prepare firewall rules that will automatically be added when a check is performed on a service.<br/>
+
|style="padding: 10px 0px 15px 15px;"|In this section, you can find short instructions on how to connect one of your clients to your already existing container in the Portainer panel. <br/> Take the following steps to make sure that the process will be carried out properly. <br/>  
Under /your_whmcs/modules/addons/ServerMonitoring/storage/app you will find a file named '' 'proxmox-firewall-rules_sample.json'.''<br/>
+
1. Firstly, manually create an order for your customer in WHMCS. Choose a client and in the summary, view click on the '' ' Add New Order' '' button. Next, select a '' 'Product/Service' '' and press '' 'Submit Order' ''. <br/> '''What is important, do not perform the '' 'Create' '' action.''' The status has to remain as '' 'Pending' ''. <br/> More info about placing orders can be found [https://docs.whmcs.com/Order_Management#Placing_an_Order here]<br/>
Create a copy of this file and remove the '' '_sample' '' suffix. Like this: '' 'proxmox-firewall-rules.json'.''<br/>
+
2. Proceed to the newly created product's card in your admin area. Find the following empty field:
The rules included in this file will be added when a check is performed.
+
*'''Instance ID'''
 +
*'''Instance Type'''
 +
*'''User ID'''
 +
*'''Username'''
 +
The above-mentioned information has to be consistent with the data in your Portainer panel. Now, complete this field as presented below. <br/> '''Important!''' Remember to make sure that the format of the provided data is compatible with the format supported by the module. You can preview it for another product of the module you have already created and enter it in a similar way. <br/> If you completed the required data, now change the status from '' 'Pending' '' to '' 'Active' '' and '' 'Save Changes'.''
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:SM_36.png]]
+
|style="padding: 0px 0px 20px 25px;"|[[File:Docker_import.png]]
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 15px;"|Utilize the samples provided to create firewall rules as needed.
+
|style="padding: 0px 0px 30px 15px;"|3. If the completed data is correct, after refreshing the page, you will see the attached container from Portainer. <br/> '''Important!'''  Remember to manually add other missing parameters such as credentials, IP Addresses, configurable options, etc. so they match the parameters of the attached container.  
 
|}
 
|}
 +
 +
==Client Area==
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:SM_37.png]]
+
|style="padding: 10px 0px 15px 15px;"|With '''Portainer Docker Containers For WHMCS''', clients can fully manage their Docker containers and stacks directly from the WHMCS client area. <br/>
 +
They can view service information, monitor performance, execute key actions, and deploy applications, all without needing direct access to Portainer.  <br/>Available features depend on the options enabled in the product configuration. <br/>
 +
 
 +
'''Service Actions''' that can be performed on either stack or container based product type: '''start, stop,''' and '''restart'''
 
|}
 
|}
 +
===Stack View===
 
{|
 
{|
|style="padding: 0px 0px 15px 15px;"|You can also create and download firewall rules from the client area, to add them to this file.<br/>
+
|style="padding: 0px 0px 15px 15px;"|Below, you can see what the product might look like for the client '''"Stack" type''' with assigned Containers.<br.>
More information regarding creating and downloading firewall rules can be found in the [https://www.docs.modulesgarden.com/Proxmox_VE_VPS_For_WHMCS#Firewall Proxmox VE VPS For WHMCS documentation].
+
'''Service Actions''' that can be performed on Stack-based product: '''start, stop,''' and '''restart'''.<br/>
 +
Table with '''Stack Details''' with any essential stack information, including name, current status, and exposed environment variables.<br/>
 +
Table with '''Assigned Containers''' that includes a list of all containers associated with the client’s stack.<br/> Each entry includes the container name, status, image, IP address, and published ports. <br/>
 +
Clicking a container entry opens a detailed view with technical and performance data.
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 30px 25px;"|[[File:SM_38.png]]
+
|style="padding: 0px 0px 20px 25px;"|[[File:PDC_47_0.png]]
 +
|}
 +
{|
 +
|style="padding: 0px 0px 15px 15px;"|'''Container assigned to stack view.'''<br/>
 +
Clicking on a container from the stack view opens a dedicated detail panel with full technical insight.  <br/>
 +
The view is divided into multiple sections for clarity and easier access to specific information.<br/>
 +
Use the same action buttons: '''Start''', '''Stop''', and '''Restart''' directly within the container view.<br/>
 +
* '''Service management options'''
 +
* '''Container details'''<br/>
 +
* '''Published ports''' - Mappings between private and public ports.
 +
* '''Environment variables'''  - All environment variables currently assigned to the container are displayed, including sensitive configuration data and service paths.
 +
|}
 +
{|
 +
|style="padding: 0px 0px 30px 25px;"|[[File:PDC_48.png]]
 
|}
 
|}
-->
 
  
=Tips=
+
===Container View===
 
{|
 
{|
|style="padding: 10px 0px 5px 15px;"|1. If you plan on using the '' 'Socket Ping Check' '' check type, make sure that queue executor cron has admin permissions.<br/>You can do this by running it from an account with sudo permissions or adding '' 'sudo' '' before the cron job line like this:<pre> sudo php -q /your_whmcs/modules/addons/ServerMonitoring/cron/cron.php checks:run </pre>
+
|style="padding: 10px 0px 15px 15px;"|Users can effortlessly start, stop, or restart their containers using intuitive action buttons ''('''Start''', '''Stop''', and '''Restart''').''
 +
* Service management options
 +
* Container details
 +
* Published ports
 +
* Environment variables
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 5px 15px;"|2. Use the Configurable Option below to enable module features in the client area for the selected service. This option can also be utilized to include additional charges if needed.<br/>'''''Note:''' Products still have to be added in the module addon.''
+
|style="padding: 0px 0px 30px 25px;"|[[File:PDC_47.png]]
serverMonitoring|Server Monitoring Tool
+
 
|}
 
|}
 +
 +
====Action Logs====
 +
{|
 +
|style="padding: 10px 0px 15px 15px;"|The '''Action Logs''' section tracks all actions performed on the container or stack, such as starting, stopping, reinstallation, and template deployments.<br/> This information provides clients with a history of operations for their services.
 +
|}
 +
{|
 +
|style="padding: 0px 0px 30px 25px;"|[[File:PDC_51.png]]
 +
|}
 +
 +
====Console====
 +
{|
 +
|style="padding: 10px 0px 15px 15px;"|An integrated console available for clients to execute commands directly within their container's environment. <br/>The console can be opened directly in the WHMCS client area or in a separate tab.
 +
|}
 +
{|
 +
|style="padding: 0px 0px 30px 25px;"|[[File:PDC_52.png]]
 +
|}
 +
 +
====Container Logs====
 +
{|
 +
|style="padding: 10px 0px 20px 15px;"|Clients have access to detailed container logs.
 +
|}
 +
{|
 +
|style="padding: 0px 0px 30px 25px;"|[[File:PDC_56.png]]
 +
|}
 +
 +
====Graphs====
 +
{|
 +
|style="padding: 10px 0px 20px 15px;"|Real-time graphs display vital metrics such as CPU usage, memory consumption, disk I/O, and network activity, allowing clients to monitor their container's performance.
 +
|}
 +
{|
 +
|style="padding: 0px 0px 30px 25px;"|[[File:PDC_58.png]]
 +
|}
 +
 +
====Reinstallation====
 +
{|
 +
|style="padding: 10px 0px 15px 15px;"|Clients can reinstall their container or stack using predefined application templates, enhancing the process of resetting or changing their environment.
 +
'''''Important:''' Reinstalling an application will permanently remove any existing container data.''
 +
|}
 +
{|
 +
|style="padding: 0px 0px 20px 25px;"|[[File:PDC_53.png]]
 +
|}
 +
{|
 +
|style="padding: 0px 0px 15px 15px;"|If required, fill in any fields related to the selected application. Some templates may ask for additional parameters (e.g. database password), while others may not require any input.<br/> Once you are ready, confirm the action to proceed with reinstallation.<br/>
 +
'''''Important:''' Reinstalling an application will permanently delete all existing container or stack data.''
 +
|}
 +
{|
 +
|style="padding: 0px 0px 30px 25px;"|[[File:PDC_54.png]]
 +
|}
 +
 +
=Tips=
 
{|
 
{|
|style="padding: 0px 0px 30px 15px;"|3. Use the Configurable Option below to allow clients to select their preferred checks limit during the ordering process. You may also configure pricing based on the selected limit.
+
|style="padding: 10px 0px 30px 15px;"|'''1. If any technical or unclear environment variables are visible to clients, you can easily make them more user-friendly using the Translations tool.''' <br/>
serverMonitoringChecksLimit|Checks Limit
+
Take a moment to review the [https://www.docs.modulesgarden.com/Translations_Tool Translations Tool] documentation and its [https://www.docs.modulesgarden.com/Translations_Tool#Missing_Elements Missing Elements] section to ensure all custom lines are properly translated.
 
|}
 
|}
  
Line 557: Line 927:
 
|style="padding: 10px 0px 30px 15px;"|Seeking a solution that offers greater flexibility, customization tailored to your precise needs, and unrestricted availability?<br/> There is an option that not only proves to be cost-effective in the long run but also includes prioritized support services, making it a truly valuable investment.<br/>
 
|style="padding: 10px 0px 30px 15px;"|Seeking a solution that offers greater flexibility, customization tailored to your precise needs, and unrestricted availability?<br/> There is an option that not only proves to be cost-effective in the long run but also includes prioritized support services, making it a truly valuable investment.<br/>
  
Opt for the [https://www.modulesgarden.com/products/whmcs/server-monitoring#open-source-version Open Source version] of your Server Monitoring For WHMCS module to unlock these benefits.<br/> Simply click on either the '''Get Source Code''' or '''Upgrade To Lifetime''' button found on the product's page in our client area to complete the one-step upgrade process, with a '''dedicated discount''' already applied.<br/>  
+
Opt for the [https://www.modulesgarden.com/products/whmcs/portainer-docker-containers#open-source-version Open Source version] of your Portainer Docker Containers For WHMCS module to unlock these benefits.<br/> Simply click on either the '''Get Source Code''' or '''Upgrade To Lifetime''' button found on the product's page in our client area to complete the one-step upgrade process, with a '''dedicated discount''' already applied.<br/>  
  
 
Follow a [https://www.docs.modulesgarden.com/How_To_Upgrade_WHMCS_Module comprehensive guide] covering the transition process, the advantages it brings, and step-by-step instructions on what to do next after the order has been successfully finalized.  
 
Follow a [https://www.docs.modulesgarden.com/How_To_Upgrade_WHMCS_Module comprehensive guide] covering the transition process, the advantages it brings, and step-by-step instructions on what to do next after the order has been successfully finalized.  

Latest revision as of 09:33, 3 June 2025

Contents

[edit] About Portainer Docker Containers For WHMCS

Portainer Docker Containers For WHMCS is a module that connects your WHMCS system with Portainer, allowing you to sell and manage Docker containers just like traditional hosting products.

It automates the deployment process, so containers are created, configured, and assigned to clients instantly upon purchase.
Clients can control their containers directly from the WHMCS client area, including start, stop, restart actions, viewing logs, accessing the console, and more.
You can also enable "App Templates" to let clients reinstall their stack using predefined configurations.

  • Admin Area Features:
✔ Create/Suspend/Unsuspend/Terminate Container Or Stack-Based Service
✔ Change Package
✔ Start/Stop/Restart Service
✔ View Service Status And Details
✔ View Containers Assigned To Stack
✔ View Published Ports
✔ View Environment Variables
✔ View Container Logs
✔ View, Manage And Show Details Of Action Logs
✔ View Statistic Graphs:
✔ Memory
✔ CPU Usage
✔ Network Usage
✔ Disk I/O Usage
✔ Configure Product Details:
✔ Provide Product General Configuration:
✔ Define Default Instance Name
✔ Define Default Username
✔ Toggle Opening Container Console In New Window
✔ Provide App Templates Configuration
✔ Select Default Application Group
✔ Select Default Application
✔ Define Container Limits
✔ Memory Reservation [MB]
✔ Memory Limit [MB]
✔ CPU Limit [Cores]
✔ Choose Features Available In Client Area:
✔ Select Available Container Details
✔ Select Available Stack Details
✔ Start/Stop/Restart Service
✔ Reinstallation
✔ Environment Variables
✔ Published Ports
✔ Container Logs
✔ Console
✔ Graphs
✔ Assigned Containers
✔ Action Logs
✔ Choose Features Available In Admin Area:
✔ Service Actions
✔ Stack Details
✔ Assigned Containers 
✔ Container Details
✔ Published Ports
✔ Environment Variables
✔ Container Logs
✔ Graphs
✔ Action Logs 
✔ Generate Configurable Options
✔ Configure WHMCS Server Details For Selected Environment
  • Addon Module Features:
✔ View Dashboard With List Of Launched Services
✔ Configure App Templates:
✔ Container Applications
✔ Stack Applications
✔ Customize Application Details And Logo Images
✔ Create Application Groups And Assign App Templates
✔ Manage Media Library With Logotypes For App Templates
✔ Customize Module Language Files With "Translations" Tool
✔ View And Manage Logs
  • Client Area Features:
✔ View Container/Stack Status And Details
✔ Start/Stop/Restart Service
✔ View Containers Assigned To Stack
✔ View Published Ports
✔ View Environment Variables
✔ View Action Logs
✔ Reinstall Service With Predefined Templates:
✔ Container Applications
✔ Stack Applications
✔ View Container Logs
✔ Access Console
✔ View Container Graphs:
✔ Memory Usage
✔ CPU Usage
✔ Network Usage
✔ Disk I/O Usage
  • Configurable Options:
✔ Application
✔ Memory Reservation
✔ Memory Limit
✔ CPU Limit
  • General Info:
✔ Requires Portainer Business Edition (BE)
✔ Supports Docker Labels For Domain Routing Via Traefik
✔ Multi-Language Support With Custom Translations Tool
✔ Supports PHP 8.3 Back To PHP 8.1
✔ Supports WHMCS V8.13 Back To WHMCS V8.10
✔ Requires ionCube Loader V14 Or Later
✔ Easy Module Upgrade To Open Source Version

[edit] Installation And Configuration

This tutorial will show you how to successfully install and configure Portainer Docker Containers For WHMCS.

We will guide you step by step through the whole installation and configuration process.

1. Log in to our client area and download the module.
PDC 1.png
2. Extract the package and upload its content into the main WHMCS directory.

The content of the package to upload should look like this.

PDC 2.png
3. When you install Portainer Docker Containers For WHMCS for the first time you have to rename 'license_RENAME.php' file.

The file is located in 'modules/servers/PortainerDockerContainers/license_RENAME.php'. Rename it from 'license_RENAME.php' to 'license.php'.

PDC 3.png
4. In order to configure your license key, you have to edit the previously renamed 'license.php' file.

Enter your license key between quotation marks as presented on the following screen. You can find your license key in our client area → 'My Products'.

PDC 4.png
5. Now, set up the 'storage' folder as recursively writable.

This folder is available at '/yourWHMCS/modules/addons/PortainerDockerContainers/'.
Note: It is needed for the Media Library to store uploaded images safely.

PDC 5.png

[edit] Addon Activation

6. Now you have to activate the module in your WHMCS system.

Log in to your WHMCS admin area. Go to 'System Settings' 'Addon Modules'. Afterwards, find 'Portainer Docker Containers' and press the 'Activate' button.

PDC 6.png
7. In the next step, you need to permit access to this module.

To do so, click on the 'Configure' button, tick 'Full Administrator' and press 'Save Changes'.

PDC 6 1.png
8. You have just successfully installed Portainer Docker Containers For WHMCS!

You can access your module under 'Addons' 'Portainer Docker Containers'.
Read the guide provided in the 'App Templates' or continue with this documentation.

PDC 6 2.png

[edit] Configuration of Server

9. Now, log in to your WHMCS and proceed to 'System Settings' 'Servers' and press 'Add New Server'.
PDC 7.png
10. Fill in the Name, provide the Hostname or IP Address in both fields at the top (filling in both Hostname and IP Address fields is required to proceed).

In the Server Details section:

  • Set Module to 'Portainer Docker Containers'
  • Access Key ID / Username - this field can be skipped.
  • Enter your Secret Access Key / Password - use an admin API key.
  • Click Test Connection to ensure proper communication with the Portainer instance.
  • Click the Configure button to select your desired environment (Portainer endpoint).
    Note: The environment defines all core settings, such as available resources (CPU, RAM, GPU) and what container or stack templates will be used.
    These are configured directly in Portainer. In the WHMCS module, you only choose from existing environments.
  • After selecting the environment, the Access Hash will be filled in automatically.
  • If your Portainer server uses SSL, ensure the Secure' checkbox is enabled.
    You can also enable the Override with Custom Port option and enter your custom Portainer API port.
  • Finally, adjust SSO Access Control if needed, then click Save Changes.
PDC 8.png
PDC 8 1.png
11. It is time to create a server group. To do so, click on 'Create Server Group'.
PDC 9.png
12. Enter a name, click on your previously created server, press 'Add' and afterward 'Save Changes'.
PDC 10.png

[edit] Configuration of Product

13. In order to create and configure a product, go to 'System Settings' 'Products/Services'.

Click on 'Create a New Group' .

PDC 11.png
14. Enter a product group name and press 'Save Changes'.
PDC 12.png
15. When you have a product group, you can create your product.

To create a product click on 'Create a New Product' .

PDC 13.png
16. Afterward, choose your product group, module and type from the dropdown menus, enter your product name and press 'Continue'.

'Product Type' should be set to 'Shared Hosting'.

PDC 14.png

[edit] App Templates

Before continuing to the product's settings, you must ensure you have at least one application or group of applications ready to use.
Proceed to the addon module → App Templates section and follow below instruction to create a ready application that will be installed by default on the server.

The App Templates section allows you to manage Docker-based applications that clients can deploy to their containers or stacks directly from the client area.
Templates are divided into two types, available under separate tabs: Container Applications and Stack Applications.
Use the interface to import, edit, group, and assign application templates to products.

[edit] Applications

This section allows you to load available templates from your connected Portainer environment and manage them within WHMCS.
  • Switch between available categories: Container Applications or Stack Applications using the tabs at the top.
  • Click the refresh icon to import or update the list of templates from Portainer.
PDC 22.png
Once templates are imported, you can use action buttons to edit, duplicate, or delete them. Mass actions are also available for bulk management.
PDC 23.png

[edit] Groups

With the templates ready, all that is left is to gather them into groups and include said groups into products.

Navigate to 'App Templates' 'Groups' and click on the 'Create' button.

PDC 26.png
Read the information, then provide the group with:
  • Name
  • Description
  • Items to include
PDC 27.png
You can use the action button and the mass action function to edit and delete template groups.
PDC 28.png
Your basic configuration of App Templates is now ready. For more advanced configuration, manual creation guides please refer to App Templates Advanced Configuration section in this documentation.

For now, go back to your product's module settings and complete the configuration there.

[edit] Module Settings

17. Now, go to the 'Module Settings' section, choose your previously created server group from the dropdown menu.

The module should automatically save and reload settings. If not, click on 'Save Changes' manually.

PDC 15.png
18. Proceed to 'Configuration' section and adjust the following:
  • Default Instance Name - Enter the default name to be used when creating a new stack or container. The name must contain only lowercase letters, digits, hyphens (-), or underscores (_).
    Available variables: {$domain}, {$client.id}, {$service.id}, {$order.id}, {$random}.
    If left empty, the domain name will be used.
  • Default Username - Enter the default username to be used when creating a new user.
    Available variables: {$domain}, {$client.id}, {$service.id}, {$order.id}, {$random}.
    If left empty, the domain name will be used.
  • Open Container Console in New Window - Enable this option to open the container console in a new window when the feature is available in the client area.
PDC 16.png
19. Proceed with 'App Template Configuration'.

App Templates Configuration - To create instances based on stack or container applications, you must first configure the App Templates in the module's addon.
Once your applications and groups are set up there, you can select the desired application in the product's Module Settings tab to be used during instance creation.
Please refer to the App Templates and App Templates Advanced Configuration sections of the documentation for detailed setup instructions.

  • Default Application Group - The group of applications available for reinstalls. See the Groups section for more details.
  • Default Application - The application that will be installed by default during container or stack creation. See the Applications section.
    Note that if applications are downloaded from the server, they will be divided into two categories: Container Applications and Stack Applications.
    Make sure to choose the default application based on the type of product you are configuring.
PDC 17.png
20. Set up 'Container Limits':
  • Memory Reservation [MB] - Specify the amount of memory (in MB) reserved for the container. Set to 0 for no reservation.
  • Memory Limit [MB] - Set the maximum amount of memory (in MB) the container can use. Use 0 for unlimited.
  • CPU Limit [Cores] - Set the maximum number of CPU cores available to the container. Use 0 for unlimited.

Alternatively, you can use configurable options to allow clients to define these limits at checkout.

PDC 18.png
21. Next, select the features that will be available in the client area:
  • Container Details - Show basic information about the container, such as status, IP address, and resource usage.
  • Stack Details - Display information related to the assigned stack configuration.
  • Start - Allow clients to start their container.
  • Stop - Allow clients to stop their container.
  • Restart - Allow clients to restart their container.
  • Reinstallation - Enable access to predefined application templates for quick reinstall.
  • Environment Variables - Allow clients to view or manage container environment variables.
  • Published Ports - Show mapped ports between the host and the container.
  • Container Logs - Provide access to real-time container logs.
  • Console - Allow access to the container's interactive console.
  • Graph - Show performance graphs such as CPU, memory, and network usage.
  • Assigned Containers - Display a list of all containers assigned to the client.
  • Action Logs - Provide a history of actions performed on the container (e.g. start, stop, reinstall).
PDC 19.png
22. Select the features that will be available in the admin area.

These options define what information and controls admins will see within the WHMCS service management page:

  • Service Actions - Perform start, stop, or restart actions directly from the admin area.
  • Stack Details - View the full configuration and status of the assigned stack.
  • Assigned Containers - Display all containers linked to the service.
  • Container Details - Show detailed information about the container, such as IP address, image, and resource usage.
  • Published Ports - View the port mappings for the container.
  • Environment Variables - View environment variables set for the container.
  • Container Logs - Access logs generated by the container.
  • Graphs - Display real-time resource usage graphs (CPU, RAM, network, disk I/O) per container.
  • Action Logs - Review all actions performed on the container or stack from within WHMCS.
PDC 20.png
23. At the end of the configuration process, you can decide whether to generate configurable options for the product.

Configurable options allow clients to customize container parameters individually during the order process. If no configurable options are defined, the fixed values set in the product configuration will be used instead.

Available Configurable Options:

  • appApplication
  • memory_reservationMemory Reservation
  • memory_limitMemory Limit
  • max_cpu_usageCPU Limit
PDC 21.png
PDC 21 0.png
Your product configuration is now complete. Do not forget to save the changes once ready.

Before adding it to your offer, make sure to set appropriate pricing. Create as many products as needed, each with different applications or feature sets, to tailor your offer perfectly.

PDC 21 1.png

[edit] Management

Portainer Docker Containers For WHMCS allows your clients to manage and monitor their Docker containers directly from the WHMCS client area.

In this short guide, you'll learn about the module's key features and how to configure them for both client and admin use.

[edit] Module Addon

The module addon is the central place for all administrative setup and management.

Here, you can register products supported by the module, manage Docker templates, and access various utilities such as the media library, translation manager, and module logs.

[edit] App Templates Advanced Configuration

Please see the App Templates for basic configuration, here you will find instructions for advanced users on how to manually manage existing container and stack application templates.

Admins can manually edit applications, define their runtime behavior, set default values, and customize input fields in the "Setting Details" section.

[edit] Default Stack Configuration

When a stack application is created without a custom Docker Compose configuration (template_stack_file is left empty), the module uses the default templates from Portainer's official repository.

This behavior relies on two built-in variables:

  • repository_url - the base URL of the template repository (e.g. https://github.com/portainer/templates)
  • repository_stack_file - the path to the specific Docker Compose file in the repo (e.g. stacks/wordpress/docker-compose.yml)

These two values are automatically combined to form the full link to the stack definition:

https://github.com/portainer/templates/blob/master/stacks/wordpress/docker-compose.yml 
PDC 42.png
You can preview all default stack templates directly here.

To customize the default stack, simply copy the Docker Compose content from the original URL and paste it into the template_stack_file field.
Once that field is filled in, only your custom configuration will be used.

[edit] Using Environment Variables in Custom Templates

If you're using a custom Docker Compose config in the template_stack_file field, you can introduce dynamic environment variables.
These are made available to the client so they can enter values during deployment.

To ensure these are parsed correctly:

  • Use variable names prefixed with ENV_, e.g., ENV_MYSQL_ROOT_PASSWORD - only variables with the ENV_ prefix will be visible to clients and substituted during deployment.
PDC 43.png
  • In the Compose file, use the {literal} tag around any variables to prevent parsing errors, like this:
{literal}MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}{/literal}

Important: Skipping the {literal} wrapper will cause the configuration parser to fail, blocking the stack from being created.

PDC 44.png

[edit] Setting a Default Terminal Command

In both stack and container application templates, you can configure a terminal_command value.
This determines the default command executed when the client accesses the container’s console.

Available values (based on Portainer console options):

  • /bin/ash
  • /bin/bash (default)
  • /bin/dash
  • /bin/sh

If the default command is not compatible with the container image, you can override it by editing the terminal_command setting default value.

PDC 44 1.png

[edit] Traefik Labels in Container Applications

Portainer Docker Containers For WHMCS supports the Traefik reverse proxy to automatically expose deployed containers and stacks via domain-based routing.
This is achieved using dynamic Docker labels set in the application template (Container Applications) or docker-compose.yml files (Stack Applications).
To configure Traefik for a container-based application, go to the App Templates → Applications tab in the addon module, edit your container application, and navigate to the labels setting details.
PDC 32.png
Add the following labels as individual settings. You can use Smarty variables like {$hosting.id} or {$hosting.domain} for dynamic route generation:
traefik.enable=1
traefik.docker.network=bridge
traefik.http.routers.service-{$hosting.id}.entrypoints=web
traefik.http.routers.service-{$hosting.id}.rule=Host(`{$hosting.domain}`)
traefik.http.routers.service-{$hosting.id}.service=service-{$hosting.id}
traefik.http.services.service-{$hosting.id}.loadbalancer.server.port=80

The application will be deployed with these labels automatically. The placeholder variables will be parsed at runtime, ensuring correct values for each service.

Important: Make sure that both the Traefik container and the newly created service are attached to the same Docker network (e.g., bridge) to ensure routing works as expected.

PDC 33.png

[edit] Traefik with Stack Applications

Stack-based applications can also be configured with Traefik by modifying the template_stack_file field in the App Template form.
PDC 34.png
You must supply a full and valid docker-compose.yml script with the required Traefik labels.

Below is an example that exposes a WordPress stack through Traefik:

version: '2'

services:
   db:
     image: mysql:5.7
     volumes:
       - db_data:/var/lib/mysql
     restart: always
     network_mode: bridge
     environment:
       MYSQL_ROOT_PASSWORD: {literal}${MYSQL_DATABASE_PASSWORD}{/literal}
       MYSQL_DATABASE: wordpress
       MYSQL_USER: wordpress
       MYSQL_PASSWORD: strongpassword
     ports:
       - "{$hosting.id}6:3306"

   wordpress:
     image: wordpress:latest
     network_mode: bridge
     ports:
       - "8{$hosting.id}:80"
     restart: always
     environment:
       WORDPRESS_DB_HOST: {$params.serverip}:{$hosting.id}6
       WORDPRESS_DB_USER: wordpress
       WORDPRESS_DB_PASSWORD: strongpassword
     labels:
       traefik.enable: "true"
       traefik.docker.network: "bridge"
       traefik.http.routers.service-{$hosting.id}.entrypoints: "web"
       traefik.http.routers.service-{$hosting.id}.rule: "Host(`{$hosting.domain}`)"
       traefik.http.routers.service-{$hosting.id}.service: "service-{$hosting.id}"
       traefik.http.services.service-{$hosting.id}.loadbalancer.server.port: "80"
     

volumes:
    db_data:
PDC 35.png

[edit] Media Library

The media library allows you to upload images for use elsewhere in the module by admins and clients.

To upload a new picture, click on the 'Upload Image' button.
Note: The icons used in the Media Library by default are provided by Simple Icons and are licensed under the CC0 1.0 Universal (Public Domain Dedication) license.

PDC 37.png
You can delete images one by one by clicking on them.

To delete all images at once, use the additional action button.

PDC 38.png

[edit] Translations

Customizing language files is now extremely easy with the "Translations" tool that is now available directly in the addon.

Its simple design makes managing various language file tweaks a smooth and efficient process. Use this built-in tool to prepare translations for the original English files.
You can also add missing or custom elements and define dynamic translations for error messages to ensure that all output, whether visible to you or your clients, is fully user-friendly.
For detailed instructions on how to use the tool, please refer to the dedicated article here.

PDC 39.png

[edit] Logs

The 'Logs' tab is where the module logs are stored.

You can filter the module logs by type with the 'Show' buttons:

  • Info
  • Notice
  • Error
  • Critical
  • Total

All information on Logs can be found in the dedicated Logs article.

PDC 40.png

[edit] Dashboard

The 'Dashboard' provides information and statistics related to the functions of the module.

Press "i" to see service details.

PDC 41.png

[edit] Admin Area

Stack-based product type view:
  • Start/stop/restart the service
  • See stack details
  • See assigned to the stack containers
  • Action logs (more details & remove options)
PDC 46.png
Container-based product type view:
  • Start/stop/restart the service
  • See container details
  • List of published ports (IP Address, Private Port, Public Port)
  • Environment Variables
  • Container Logs
  • Action Logs (more details & remove options)
  • Container Usage Graphs: Memory Usage, CPU Usage, Network Usage and Disk I/O Usage
PDC 46 0.png

[edit] Ordering

Owing to configurable options, you are able to offer a product that your clients can tailor according to their needs.

Additionally, you are able to set up pricing for each configurable option, which makes your offer even more competitive.

PDC 45.png

[edit] Importing Existing Container

In this section, you can find short instructions on how to connect one of your clients to your already existing container in the Portainer panel.
Take the following steps to make sure that the process will be carried out properly.

1. Firstly, manually create an order for your customer in WHMCS. Choose a client and in the summary, view click on the ' Add New Order' button. Next, select a 'Product/Service' and press 'Submit Order' .
What is important, do not perform the 'Create' action. The status has to remain as 'Pending' .
More info about placing orders can be found here
2. Proceed to the newly created product's card in your admin area. Find the following empty field:

  • Instance ID
  • Instance Type
  • User ID
  • Username

The above-mentioned information has to be consistent with the data in your Portainer panel. Now, complete this field as presented below.
Important! Remember to make sure that the format of the provided data is compatible with the format supported by the module. You can preview it for another product of the module you have already created and enter it in a similar way.
If you completed the required data, now change the status from 'Pending' to 'Active' and 'Save Changes'.

Docker import.png
3. If the completed data is correct, after refreshing the page, you will see the attached container from Portainer.
Important! Remember to manually add other missing parameters such as credentials, IP Addresses, configurable options, etc. so they match the parameters of the attached container.

[edit] Client Area

With Portainer Docker Containers For WHMCS, clients can fully manage their Docker containers and stacks directly from the WHMCS client area.

They can view service information, monitor performance, execute key actions, and deploy applications, all without needing direct access to Portainer.
Available features depend on the options enabled in the product configuration.

Service Actions that can be performed on either stack or container based product type: start, stop, and restart

[edit] Stack View

Below, you can see what the product might look like for the client "Stack" type with assigned Containers.

Service Actions that can be performed on Stack-based product: start, stop, and restart.
Table with Stack Details with any essential stack information, including name, current status, and exposed environment variables.
Table with Assigned Containers that includes a list of all containers associated with the client’s stack.
Each entry includes the container name, status, image, IP address, and published ports.
Clicking a container entry opens a detailed view with technical and performance data.

PDC 47 0.png
Container assigned to stack view.

Clicking on a container from the stack view opens a dedicated detail panel with full technical insight.
The view is divided into multiple sections for clarity and easier access to specific information.
Use the same action buttons: Start, Stop, and Restart directly within the container view.

  • Service management options
  • Container details
  • Published ports - Mappings between private and public ports.
  • Environment variables - All environment variables currently assigned to the container are displayed, including sensitive configuration data and service paths.
PDC 48.png

[edit] Container View

Users can effortlessly start, stop, or restart their containers using intuitive action buttons (Start, Stop, and Restart).
  • Service management options
  • Container details
  • Published ports
  • Environment variables
PDC 47.png

[edit] Action Logs

The Action Logs section tracks all actions performed on the container or stack, such as starting, stopping, reinstallation, and template deployments.
This information provides clients with a history of operations for their services.
PDC 51.png

[edit] Console

An integrated console available for clients to execute commands directly within their container's environment.
The console can be opened directly in the WHMCS client area or in a separate tab.
PDC 52.png

[edit] Container Logs

Clients have access to detailed container logs.
PDC 56.png

[edit] Graphs

Real-time graphs display vital metrics such as CPU usage, memory consumption, disk I/O, and network activity, allowing clients to monitor their container's performance.
PDC 58.png

[edit] Reinstallation

Clients can reinstall their container or stack using predefined application templates, enhancing the process of resetting or changing their environment.

Important: Reinstalling an application will permanently remove any existing container data.

PDC 53.png
If required, fill in any fields related to the selected application. Some templates may ask for additional parameters (e.g. database password), while others may not require any input.
Once you are ready, confirm the action to proceed with reinstallation.

Important: Reinstalling an application will permanently delete all existing container or stack data.

PDC 54.png

[edit] Tips

1. If any technical or unclear environment variables are visible to clients, you can easily make them more user-friendly using the Translations tool.

Take a moment to review the Translations Tool documentation and its Missing Elements section to ensure all custom lines are properly translated.

[edit] Update Instructions

An essential guidance through the process of updating the module is offered here.

Ensure successful completion of the module update by carefully following each step, thereby preventing data loss or any unforeseen issues.
Additionally, you will find a current list of supplementary actions necessary for a smooth update process there.

[edit] Upgrade Guide

Seeking a solution that offers greater flexibility, customization tailored to your precise needs, and unrestricted availability?
There is an option that not only proves to be cost-effective in the long run but also includes prioritized support services, making it a truly valuable investment.

Opt for the Open Source version of your Portainer Docker Containers For WHMCS module to unlock these benefits.
Simply click on either the Get Source Code or Upgrade To Lifetime button found on the product's page in our client area to complete the one-step upgrade process, with a dedicated discount already applied.

Follow a comprehensive guide covering the transition process, the advantages it brings, and step-by-step instructions on what to do next after the order has been successfully finalized.

[edit] Common Problems

1. When you have problems with connection, check whether your SELinux or firewall does not block ports.
Navigation
WHMCS Modules
WHMCS Widgets
Tools And Applications
Translations
General
FAQ
Community
Portainer Docker Containers For WHMCS