cPanel doesn't support HA natively which is a pain so after spending the day researching options I've come up with a possible solution to deploy onto Digital Ocean for a high availability cPanel cluster with redundancy and no single points of failure. I did take a look at Autom8n and had some excellent responses from them but not quite what I was looking for. I've attached a rather rubbish network diagram to help explain what I'm thinking...

I haven't got as far as planning VPC/firewalls just yet, this is just to get the layout straight in my mind. So from the top...
Nameservers
Probably the easiest part as I get set up four name servers using cPanel DNS-Only licenses to handle DNS and replication. This will connect to...
Digital Ocean Load Balancer
Does what it says on the tin, handles requests from the outside world via the nameservers and then distributes this to...
Three cPanel Droplets
This is the tricky part but in essence, I will have three identical cPanel droplets with WHM configuration clusters enabled to keep the primary settings in place.
I'll then setup lsyncd to replicate content from a master server to the two slaves so the home directories, apache configs etc. I'll use Memcache to hold PHP sessions and share these amongst all the droplets. I won't be handling Mail on the server, that gets offloaded to G-Suite.
To make changes to the virtual hosts via SFTP or to access cPanel/WHM I'll direct traffic to a "master" and then sync to the other servers. Databases are handled by...
Digital Ocean MySQL Managed Database
As I can setup all the droplets to access the same remote MySQL managed instance, this will solve the sync problems for data. I'll probably have a standby instance added as well.
Now aside from the expense as there is quite a lot involved here, what are peoples thoughts from a practical solution considering the limitations of cPanel and HA plus the inability to use a Digital Ocean storage space and share this amongst droplets?

I haven't got as far as planning VPC/firewalls just yet, this is just to get the layout straight in my mind. So from the top...
Nameservers
Probably the easiest part as I get set up four name servers using cPanel DNS-Only licenses to handle DNS and replication. This will connect to...
Digital Ocean Load Balancer
Does what it says on the tin, handles requests from the outside world via the nameservers and then distributes this to...
Three cPanel Droplets
This is the tricky part but in essence, I will have three identical cPanel droplets with WHM configuration clusters enabled to keep the primary settings in place.
I'll then setup lsyncd to replicate content from a master server to the two slaves so the home directories, apache configs etc. I'll use Memcache to hold PHP sessions and share these amongst all the droplets. I won't be handling Mail on the server, that gets offloaded to G-Suite.
To make changes to the virtual hosts via SFTP or to access cPanel/WHM I'll direct traffic to a "master" and then sync to the other servers. Databases are handled by...
Digital Ocean MySQL Managed Database
As I can setup all the droplets to access the same remote MySQL managed instance, this will solve the sync problems for data. I'll probably have a standby instance added as well.
Now aside from the expense as there is quite a lot involved here, what are peoples thoughts from a practical solution considering the limitations of cPanel and HA plus the inability to use a Digital Ocean storage space and share this amongst droplets?
Last edited by a moderator: