When your website or web application has outgrown your shared hosting account, it is time to move it to the cloud, or into a virtual private server (VPS). Nowadays, VPS providers offer better value in terms of CPU and RAM resources than the shared hosting counterparts. However, I can recall when I wanted to move my website to Amazon Web Services a few years ago, and it took me days to deploy the server and get it ready with PHP, MySQL and Apache.
Fortunately, that is not the case today as we have the help of some cool tools and third party services.
I took a look at three similar services – RunCloud, ServerPilot and Laravel Forge – and compared them to see which performs best. These are SaaS tools that can help deploy, configure, manage, and monitor VPS on any cloud hosting providers like AWS, Linode, Vultr, Digital Ocean, and others.
Registration was easy. You don’t need a credit card and you can even use your Facebook, Google, or GitHub account. If you don’t fancy using your social media account, then just use your email address.
With RunCloud, what you need to do is deploy a fresh Ubuntu 16.04 LTS VPS on almost any VPS hosting provider. Throughout this tutorial I used a Linode VPS which costs $5 per month.
When your server is ready, you go back to RunCloud and enter your server details like the IP address to get your connection command.
You will get a very long one-line command like this.
All that you need to do is run the command in your server as the root user and let it run. It will probably take about 15 to 20 minutes for the process to complete, and once you are done, you can start to manage your server from within the web panel.
Managing Your Server
Next you need to create a Web Application. That is like a virtual host in the web server. When you do that, you can select your PHP version, and you can assign your domain name to the Web Application. You can assign more than one.
The UI is very user friendly and intuitive and you can find whatever you need rather quickly and easily. My most basic need would be to be able to create virtual hosts (Web Application), assign domain names and create databases and perhaps deploy my application from GitHub or any other Git server. There is also a script installer that supports WordPress, Joomla, Concrete5, PHPMyAdmin and a few more common PHP tools.
If you do PHP development and use Git, RunCloud supports deploying your script from GitHub, Bitbucket, Gitlab and also your own custom Git server installation.
We’ll look into performance later.
ServerPilot.io is probably the oldest among the three, and most well-marketed. When I ask around if anybody is using a server management tool, it will probably be ServerPilot.io.
ServerPilot.io has a Free account that you can use with limited features, and there are also the Coach ($10/mo) and Business ($49/mo) plans. Please bear in mind, these prices are for server deployments and not per account to ServerPilot.
Coach has more features like free SSL via LetsEncrypt, server health stats and other. The Business package is more like a mini NewRelic or an application performance monitoring service. You can see slow script request, application resources stats and more.
Of course the Free package is good enough, but limited compared to their Coach and Business options.
Connecting A Server
This feels similar to RunCloud. You also need a fresh Ubuntu 16.04 VPS server to start. If you have the root password to your server, you don’t need to copy and paste the installer command via SSH. You can enter your server IP address and your root password, and ServerPilot will get your server ready in a few minutes.
However, if you don’t want to enter the root password of your server into ServerPilot, then you can opt not to do that. You can get install run command, and copy and paste that via SSH into your server.
Honestly, server deployment process feels pretty smooth and fast. I was amazed with that. Once done, I was redirected to create an App right away. Here, an App is like the virtual host. Once that was done, there is an option to install WordPress. I thought I’d give that a try. You can also select your PHP version if you want. I selected PHP 7.1.
Managing Your Server
From registration to deploying a server and getting it up and running, the experience was really good and fast. You get a server running in no time at all.
When WordPress is an install option, I was hoping to see other PHP tools like Joomla and Concrete5 to be available as well. Unfortunately, they are not present, and ServerPilot.io also does not give the option to set where your web root should be other than
Another thing that I was hoping to see is a way to deploy my application from GitHub. I can’t find that. And I found out from the documentation that if I want to deploy my script via Git, I would still have to do it via SSH.
This is also the case with scheduling or crontab. If you familiar with CPanel, you would hope to have scheduling built into the web panel of ServerPilot. Unfortunately, that is not the case. You can still manage your own crontab via SSH though.
Unfortunately if you just want to try this out, there is no free-level account. Price starts at $15/mo for the Growth account, and $39/mo for the Business account. The good thing is, that is for unlimited number of server deployments. However, there is a 5-day free trial for whatever account you choose to get. And if you subscribe for an annual subscription, you get a $40 discount off the Growth account, and $69 off the Business account.
The difference between these two is mainly about adding team members into your account to help you with your server administrations. The Growth account is mostly for personal users while the Business account allows you to add team members to help you out.
Connecting a Server
Unlike ServerPilot and RunCloud, Laravel Forge will connect to your cloud hosting provider via API and deploy servers there on your behalf. With this, you don’t have to deploy your server in the cloud hosting provider first, and later enter details into Laravel Forge. Laravel Forge will create them for you. For now, Laravel Forge supports Digital Ocean, AWS and Linode.
For any cloud hosting providers that are not currently supported, you can still add those into Laravel Forge under the Custom VPS option. There it works pretty much like Server Pilot and RunCloud. You will need a fresh Ubuntu 16.04 64-bit VPS, and later initiate the connect procedure in Laravel Forge. Just like RunCloud, you will need to enter the install script command via SSH.
Managing Your Server
Laravel Forge has a lot covered when it comes to managing your server. When your server is ready, you create a Site (virtual host). Since Laravel Forge is created by a PHP developer, Git is actually the main method for how you deploy your files. Or, you can get started by installing WordPress.
When creating your site, you are presented with the option to add your domain name. And you can set whether to have the wildcard sub-domain option enabled. However, there is no option for multiple domain names for a single site.
There is also Scheduling, MySQL database management and others. You can also integrate your server with Blackfire.io for application performance monitoring and Papertrail (https://papertrailapp.com/) for log analysis.
Continue reading %Let’s Compare: RunCloud vs Forge vs ServerPilot%