Published on November 30, 2020 | Posted in Front End
My current website hosting, backup and deployment setup
I host/look after several different websites. Over the years I’ve used several different hosting companies. I want to run through what my current site setup which I’m using to manage the site I look after.
Sites
I start of by explaining my current setup. The sites I build can be broken down into three areas WordPress, Laravel and Node JS sites. So all my WordPress sites are on one server as are my Laravel sites and Node Js applications. I’ve used many different host providers in the past such as Ionos(Formerly 1and1), Mediatemple and 123-reg and many more.
Some point two or three years ago I decided to separate the managing of the server and actual server. For a long while I was using Laravel Forge. But decided to come off it. I had no problems with it whatsoever. However I found it was very geared toward Laravel. So settled for Runcloud and got to say a lot of the functionality it provides it’s like having a traditional host such as Godaddy.
If you’ve not used Runcloud basically you buy the server space for example from AWS or a DigitalOcean. Runcloud then setups the server installing all the usual stuff like Apahce/Nginx, MariaDB and Php. Then from the admin area you can change the PHP version per site, install SSL certificates using lets encrypt and loads of other features.
Servers
WordPress: For my WordPress sites they are all on one server and I’m using Amazon lightsail. I’m fully aware if I went with a EC2 instance it probably be cheaper but there is so much options. With LightSail I know how much it’s going to be each month up front.
Laravel: For the Laravel site I use Digital Ocean, just because it’s straight forward and easy to use.
NodeJS: These are small apps which run by being called by a cron job. Once a day so I don’t need a great server. So I’m using MVPS and I’m using there cheapest instance. If I had the time I would like to investigate how I could run this Serverless as these script would be a really good use case.
Backups
WordPress: For one of my WordPress sites I’m using Jetpack for backups as they many other tools which Jetpack offered for that site so I subscribed to Jetpack. The rest of sites I use a WordPress plugin called BackWPup which performs a regular backup and save the sites on Amazon S3.
Laravel: Like the WordPress sites everything is saved in S3, the code on Bitbucket. So it’s mainly the Databases and the uploaded assets which I’m concerned about
NodeJs: Since all the app does is send data to a Rest API. I don’t need any backups the code is stored on Bitbucket and the site has no data.
Deployments
WordPress: I use a mixture of Buddy and go old school and use SFTP. The site which use SFTP I rarely make any development changes. All my code is on Bitbucket so it’s all versioned control if I need to get a previous version template.
Laravel: I use Envoyer it has Zero downtime deployments and allows me to rollback which has saved me in the past. Again the sites which are built with Laravel are small sites but using Envoyer is easy and straight forward to do. I did a quick guide a while back using Runcloud and Laravel Envoyer together
NodeJS: Runcloud as a feature where it can pull your code from Git repository such as Github or Bitbucket. I use this whenever I push to a master branch it deploys my code.
Summary
So that’s a brief overview how I manage my sites currently. I’m happy with the setup I’m always looking at ways to optimize my workflow. But I think I’m settled with this method for now.