Recently I migrated my 4 Websites from shared hosting to Digital Ocean droplet. From past couple of months, I have been running 4 WordPress Websites (individual instances) and 1 .Net Core 3.0 instance along with email service on this droplet and it is working out fine.
Here is a list of need for hosting multiple Websites
- 4 individual instances of WordPress
- 1 instance of .Net Core 3.0 application
- 1 Webmin hosting panel
- Couple of thousands of sessions per day for static pages (WordPress caching plugin) across all sites
- Couple of thousands of API requests per day across all sites
- Approximately 100 emails (incoming + outgoing)
If you are new to Linux Administration or don’t want to configure Web server, Database server, email server etc, you need to install a control panel. I have found Webmin to be the ideal control panel that gives you everything you need for Linux administration
As a part of Webmin installation, you will install following components.
- Apache Web Server
- MySQL Database Server
- Postfix, Dovecot for email
- RoundCube Webmail application
- Let’s Encrypt SSL
Recommended Droplet Specification
On Digital Ocean, we can always increase the droplet resource (CPU, memory) but cannot reduce the resource. So out of caution, I started with minimum droplet specification.
- 1 CPU
- 1 GB RAM (with 2 GB swap)
- 25 GB SSD
- Ubuntu 18.04 64 bit
Even though Digital Ocean recommends 32 bit version for Ubuntu 18.04 if RAM is less than 4 GB but I need 64 bit for .Net Core 3.0. I am under impression that certain program might only support 64 bit so being future proof, I chose 64 bit. This way, I can upgrade and migrate to powerful server if need arises.
Is 1 CPU enough?
From past couple of months 1 CPU is more than enough to handle everything that I need for hosting all my Websites. In WordPress, I use caching plugins to generate static pages. It dramatically lowers CPU usage.
Is 1 GB RAM enough?
Yes and No. 1GB physical RAM is good enough but you must enable and use swap in order to get the performance you need. At the time of installing Webmin, it asks for enabling swap and generally it creates a swap for 270 MB. I increased swap to 1 GB and one time MySQL gave out of memory error. I have increased swap to 2 GB. Without swap, 1 GB RAM is not good enough.
1 CPU, 1 GB RAM droplet is good enough for hosting couple of Websites. Cost is less than shared hosting and power you get is more than what you need. Along with Webmin, you can easily handle day to day maintenance without any Linux administration experience.