WPCD Version 4.0.0 is nothing short of a MASSIVE release. It includes a number of popular feature requests as well as our usual plethora of smaller tweaks, enhancements and fixes.
So, without further ado, here are all the new and updated features that we packed into it.
Custom Servers (Bring Your Own Server)
At the top of the list of new functionality is the ability to use Ubuntu servers from any cloud provider as well as use bare metal servers.
This is a feature request that we’ve received in just about every single pre-sales inquiry. So, we’re really pleased to finally push it out the door.
Because it’s a relatively large feature, we wrote a separate article about it – you can read it here.
Virtual Server Providers
Virtual Server Providers is the mechanism we’ve developed to allow us to connect multiple accounts to the same cloud service.
In prior versions of WPCD we could only connect to a single account at any cloud server provider. That works well for most customers. But there are use-cases where you might need to use multiple accounts.
This feature is also what enables the use of custom servers.
Learn more about it in the separate article we wrote.
Sell Cloud Server Subscriptions With WooCommerce
So, we have to admit that this is definitely our favorite new feature – even though we have no idea what our customers are going to do with it. It’s something we’ve always wanted to release even though we’ve never gotten any formal requests for it.
Now that it’s available, it’s up to you to see where you can take it. We’re going to listen closely to your feedback in order to decide what direction this should take.
Learn more about WooCommerce Subscription Integration.
In prior versions of WPCD the plugin collected data by reaching out to servers upon explicit direction of the admin or user. With this version we are including the ability for servers to reach out to the plugin on a periodic basis to provide information and updates about activity on the server.
As an Admin you still get to choose whether this is something you want – you will have to pro-actively trigger the installation of the associated scripts. One reason to not install them is if you’re running on a server that is memory constrained, cpu-bound or is simply a development server.
Once the scripts are installed, the server can update the plugin with information such as the following:
Another way to think of Server Callbacks is as a software “agent” – a lot of server management software uses similar programs that they call agents to push data from the server to a central location. Server Callbacks are simply software agents that happen to be Bash scripts.
You now have the option to install and run a malware scanner. LMD (Linux Malware Detect) and CLAMAV are the tools used here.
Using callback scripts, the results are reported directly on your server screen(s).
The scanner automatically runs once every day.
New Cloud Providers
You can now deploy servers directly at UPCloud. There are some limitations with this one so make sure you read the documentation!
Hetzner is now a first class citizen in our list of supported cloud providers. This means that you can deploy servers there without needing the custom server option – just like you can for DigitalOcean, Linode etc.
We’re also adding support for a direct connection to Exoscale. After connecting your account you can deploy new servers with just a few clicks.
Finally, with this release we’re including provisional support for a direct Alibaba ECS connection. It’s provisional because we’ve noticed that certain datacenters are off-limits – basically those in mainland China. But servers in datacenters outside of China seem to fire up just fine.
Learn more in the documentation.
Cloud Provider Improvements
All providers now implement a more consistent caching mechanism. Prior versions of providers were inconsistent in the way they handled caching so we cleaned that up for this release.
This improvement provides a number of benefits:
- Speeds up the SETTINGS screen since there is a much smaller number of api calls needed to get things such as keys, regions and server sizes/images.
- Reduces the chances of being rate-limited by a cloud provider since we’re now making substantially fewer api calls.
With the introduction of Virtual Providers, the number of providers that need to be handled could be dozens or hundreds. Thus this performance tweak prepares the way for the occasional user who might be handling an explosion of virtual providers and custom servers.
As part of this update admins can now perform two additional actions for each provider:
- Set the cache lifetime and
- Clear the cache for any individual provider.
New installations will set the cache lifetime for each provider to 15 minutes. But we strongly suggest that admins increase that to at least a full day once the initial setup is complete. Keys, Regions and Server Sizes do not change very often so long cache lifetimes are perfectly acceptable (and recommended) after the initial setup is complete.
New Command Line Scripts
We are including some new scripts that you can run only from the command line. Later we might add these to the UI but for now, you’ll need to use ssh to upload and run them.
- Fail2Ban: Install, configure and remove fail2ban.
As with most of our other releases we’ve added a few convenience features!
Server List Tweaks
The server list now shows up to four sites that are on the server. We decided not to show all sites in order to prevent each row from getting too tall.
On the server detail screen we now have a new tab that shows a list of all sites on the server. This makes it easy to quickly jump to a particular site without navigating to the full site list.
New Site List Filter Options
You can now filter the site list by the following attributes:
- Status (is the site enabled or disabled)?
- PHP version (quickly find all those sites still running 7.0 or 5.6!)
- Page Cache status
- Object Cache Status
- App Groups (quickly find all those sites you tagged as “dev”)
Additionally, the filter bar has been expanded to two lines since there are so many filter options.
New Site List Delete Option
You can now remove a site directly from the site/app list.
When searching in the server list, the short and long description fields are now included in the search for your keywords. The full list of fields used when searching on the server list screen becomes as follows:
- Provider Instance ID
- Short Description
- Long Description
- Current State
The teams list now shows the team members and their permissions. You no longer have to open a team to see that information unless you want to change it.
There is a chance that this new column might become a bit unwieldy so we’ll be paying close attention to the feedback we get on it.
Server & App Group List
We now show the color assigned to each server or app group right in the list:
It seems like such a little thing but it’s been handy in our internal use – not sure why we didn’t do this before now.
A few additional security options and tweaks have been added:
We added a new team option to control which teams are allowed to change PHP options on a site. This defaults only to WP ADMINS and SUPERADMINS unless specifically set for a team.
We also added an additional security layer on top of most AJAX functions that checks to see if a user can even view a site or server before attempting to perform an action on it.
The multisite add-on and core functions have been tweaked to be a little more resilient when cloning sites, changing the domain name and pushing the multsite to a new server.
Additionally, you can now see the multsite status in the main list – it’s shown as a label next to the title.
Development & Technical Support
The SETTINGS screen now has a new tab on it – TOOLS. It currently contains two options that can help reset certain things – but only at the direction of our technical support team!
There are new filter hooks in the settings screen required to support new providers such as UpCloud.
Additionally, there are action hooks that are included in the new CALLBACK feature – which can later be used to hook into tools such as UNCANNY AUTOMATOR, SIMPLE HISTORY and so-on.
The server name at the top of the application screen metabox is now a link that takes you directly to the server record:
There is a new column at the top of application screen that links to the list of other sites on the same server:
The WordPress user profile screen now shows the servers and apps that a user has access to (if they’ve been assigned access via the TEAMS function).
- When changing the domain for a site, we now backup the database, make the domain change in the database and rename it (among other things) to prevent possible future conflicts. While safer, it does require more diskspace (compared to previous versions) to change a domain for an existing site.
- We now hide the data entry fields after initiating a server or site deployment.
- When deploying a new site, we do not allow the INSTALL button to be clicked until all the fields are filled in.
- When deploying a new site, we now do some additional checks on the data before allowing the deployment to proceed.
- If the folder that contains the bash scripts cannot be accessed via http calls, a message is usually displayed. Admins can now immediately ask for a recheck instead of waiting 12 hours for it to be done automatically.
- Under certain circumstances SSL certificate requests are a bit more resilient.
- Slightly better real-time feedback when pushing sites to new servers and when changing domains.
- If a server post has been restored from trash we now add a prominent note to the server list screen warning the user than the server link has been severed and that the server likely has been deleted at their cloud provider.
- The data in the drop-downs on the filter bar for servers and sites did not respect the teams restrictions. This only affected users who offered the dashboard directly to their end customers.
- Fixed an issue where an extra comma caused an error in PHP 7.2 and earlier (it worked in PHP 7.3 and later).
- Added a check in bash script #2 to ensure that no fields were left blank before attempting to create a new site.
- Added a check in bash script #6 to ensure that no required fields were left blank before creating or modifying sftp users.
- A few strings were not being wrapped with the WP translation functions.
- The incorrect team showed up in the app list if the team array meta was empty (vs not being present which worked just fine). The team array meta could be present but empty if a site was cloned. (This was simply a display issue – the team wasn’t actually assigned to the app).
- Cloning multisite WP installs did not copy the multisite meta indicator.
- When pushing a site to a new server, an IPV6 bug with certbot needed some special processing to workaround. Without this work-around, NGINX servers failed to restart when sites were pushed to an existing server with existing sites.
- When refreshing services status the NGINX might show up as “unknown” in some cases or “errored”. This was an incorrect status and has been resolved.
- Digital Ocean made a sudden over-night change to their API that broke the ability to create new servers. This has been resolved with this release as well as back-ported to an emergency release in the 3.0 branch.
- Do not allow sites to be cloned over to an existing site.
- Do not allow domain changes that matches an existing site.
- Make sure that NGINX restarts when the server restarts – in the past this was not always the case.
- Addresses an issue where installing the Image Magic PHP module (which WP requires) automatically installed a beta version of PHP version 8.0 on new servers.
Whew. Is that enough for a release?
WPCD version 4.0.0 is now available. Please make sure you upgrade your add-ons as well since just about every single one of them has been updated for this release.
Automatic Notification Of New Articles
Sign up to get automatic notifications of new articles. This is a different list than our standard list - you only get new articles once a week (usually on Mondays). No other emails will be sent unless you sign up for our general list as well.
Follow us on Twitter! We post a lot of cool things there first. Click the bird below!