If API is not enabled, click on the "Enable API access" button or from terminal run `opencli config update api on`.
We recommend creating new Administrator user for API, to create a new user navigate to *OpenAdmin > OpenAdmin Settings* and create new admin user, or from terminal run: `opencli admin new USERNAME_HERE PASSWORD_HERE`
2.**Install OpenPanel WHMC Module**
Login to SSH for WHMCS server
Navigate to `path_to_whmcs/modules/servers`
Run this command to create a new folder and in it download the module: `git clone https://github.com/stefanpejcic/openpanel-whmcs-module.git openpanel`
3.**Establish connection between the two servers**
On OpenPanel server make sure that the OpenAdmin port 2087 is open on `OpenAdmin > Firewall` or whitelist the IP adress of your WHMCS server.
to whitelist ip address from terminal run: `ufw allow from WHMCS_IP_HERE`
On WHMCS server also make sure that the 2087 port is opened or whitelist the IP address of your OpenPanel server.
From WHMS navigate to: *System Settings > Products & Services > Servers*
Hosting packages need to be created on both OpenPanel and WHMCS servers.
On OpenPanel server login to admin panel and on `OpenAdmin > Plans` create hosting packages that you will be assinging to users on WHMCS.
On the WHMCS server create first a new group and then create new plans under this group. When creating products, make sure to select OpenPanel for Module and the newly created group
When troubleshooting cronjob, you can add ` >> /home/USERNAME/CRON.log 2>&1` in the cron command and output will be stored in the file everytime the cron is executed.
Administrators now have the ability to specify which OpenPanel versions to skip during updates by modifying the `/etc/openpanel/upgrade/skip_versions` file.
This feature proves handy when manually updating from an older version and wishing to skip certain intermediate versions.
For instance, if a user is updating from OpenPanel 0.1.3 with autopatches disabled, the update process would typically progress from 0.1.4 to 0.1.5, then to 0.1.6, and finally to the latest version, 0.1.7.
However, if there are minimal differences between versions 0.1.4 and 0.1.5, an admin can opt to skip version 0.1.4 by appending it to the `/etc/openpanel/upgrade/skip_versions` file:
Consequently, during the update procedure, specified version 0.1.4 will be skipped.
It's worth noting that while skipping versions is possible, it's generally not recommended since each update typically takes around 30 seconds.
In the event of a failed update to a particular version, the opencli update scripts will automatically add that version to the `/etc/openpanel/upgrade/skip_versions` file to prevent future attempts at updating to it.
Both `opencli user-add` and `opencli user-rename` scripts now use an external list of forbidden names from: `/usr/local/admin/scripts/helpers/forbidden_usernames.txt` file. Administrators can add usernames to this list.
SSH service inside users docker containers is disabled by default when account is created, and in OpenPanel <0.1.6wasalsodisabledbydefaultwhenserverisrebooted.
We now store the ssh service status for each user and if enabled, after reboot will be re-enabled. note: ssh service for users uses a random port, so after reboot the port is changed.
In order to reduce the memory footprint of Docker containers, we are implementing breaking changes to our official Docker images for Nginx and Apache:
- NodeJS, Python, PM2, and WP-CLI are removed from the images. They are installed only when needed: when a user adds a WordPress website or a Node.js/Python application.
- All services are disabled by default and will only be enabled when needed. MySQL is enabled when adding the first database or user, webservers are started only when a domain is added, SSH only when SSH access is enabled, cron service after cronjob is added, etc.
This ensures that only the services that are actually used are running.
Both official images [openpanel/nginx](https://hub.docker.com/r/openpanel/nginx) and [openpanel/apache](https://hub.docker.com/r/openpanel/apache) now use Ubuntu 24.04 as the base images.
MySQL service is now also run as a docker container. This allows Admins to set cpu and memory limits for the service, as well to easily manage backup and restore.