Quickly Deploy LAMP Stacks with ServerPilot

Easily Deploy LAMP Stacks, and it’s free

I have yet to use ServerPilot, but will be setting up a new VPS at DigitalOcean in the coming weeks for a new venture. ServerPilot makes getting a LAMP stack setup very quickly.

ServerPilot will automatically install Nginx, Apache, PHP, and MySQL on a new, freshly installed/created, 64-bit Ubuntu 12.04 or Ubuntu 14.04. So if you’re using DigitalOcean, create your Droplet, and SSH to it. You should be able to harden SSH up a little, but make sure you don’t install any new packages yet.

Getting Started

Getting started with ServerPilot is crazy easy. All you need to be able to do is SSH into your server and run a command. I highly doubt anyone reading this doesn’t know how to do this. If you don’t, Google will tell you how.

1. Sign Up

Sign up for a free account with ServerPilot.

2. Connect A Server

“Connect” a new server. Just enter your servers hostname and click the “Continue With Setup” button. Screenshot below.
serverpilot-connect-server

3. Run The Install

Connect to your server via SSH. Remember, it must be a new server, preferably with no additional packages installed yet. To install Nginx, Apache, PHP, and MySQL, run the command below, from this gist:

The --server-id and --server-apikey values will be provided for you, they’re blacked out in the screenshot below.
serverpilot

Additional Information

On GitHub

ServerPilot also has a GitHub account with two repositories currently. One is ServerPilot/Vagrantfile and the other is ServerPilot/API.

ServerPilot/Vagrantfile

This repository provides a sample Vagrant configuration for testing ServerPilot. Basically a server that you can use to test ServerPilot before using it on a new, paid VPS. The README is very detailed, definitely read it if you need help using Vagrant. There’s even an example on using composer to create a Laravel app.

ServerPilot/API

From the README, The ServerPilot API is RESTful and allows you to manage ServerPilot resources using HTTP requests. All responses return JSON objects, including errors. As seems typical from ServerPilot, the documentation in the README is excellent.

The API will let you do things like list servers, connect new servers, or list all system users, among many others. An example that would list all servers can be seen in the gist below.

That request would return JSON similar to this:

Do you use Vagrant?

View Results

Loading ... Loading ...

Paid Accounts

You get a pretty cool monitoring dashboard for $10/month. I found the screenshot below in a post from Jake Peterson, it appears to be the ServerPilot monitoring dashboard.
serverpilot-dashboard
There’s the free plan, obviously, and then two paid plans. One is $10/month and the other is $49/month. You can see what you get for your money on their pricing page.

End

If you’re a PHP developer and use a VPS provider like DigitalOcean or Linode, ServerPilot is probably worth checking out. Even if you don’t end up using, it’s pretty neat that something like this even exists.

I only have one feature I’d really like to see, the ability to select certain packages to be installed. If that were included in the $10/month plan, I’d definitely do it. As it stands currently, though, it’s definitely a time saver and very well executed.

HackerNews Front Page: I Stayed Up

Load (cpu and memory) was significantly lower than I expected

Didn’t expect anything specific for load, but more load than what I did see, for sure.

A post I made hit the front page of HackerNews the other day. Here’s the discussion at HackerNews. Traffic was steady, For about five hours, there were between 50 and 250 users on the site at any given time.

I use two DigitalOcean droplets, one running Apache 2, the other for MySQL (mostly). The Apache 2 droplet is a 2GB droplet in the NYC2 datacenter and the MySQL droplet is a 1GB droplet in the same datacenter. They talk to each other over a private network.

I’ve really liked the setup so far, and without any tweaks to Apache or MySQL, both servers have performed quite well. I use a WordPress caching plugin and CloudFlare, but that’s all there is for caching.

CPU Usage
CPU usage remained quite low, you can clearly see the HackerNews traffic.

Eventually, one could expect thousands of users on a site at any given time. That greatly depends on the type of site, though.

At that point, you’d probably need the power of Nginx, using it as a front-end (reverse) proxy to Apache.

I’m going to setup a DigitalOcean droplet to serve as a reverse proxy in the event I need to serve massive amounts of traffic. It’s sole job will be to run Nginx.

I simply don’t need it right now, though. Unless this hits the front page of HackerNews and makes it further up the page. ;). Then I’ll be scrambling to get that Nginx box up. So, put me to work later.

Bandwidth Usage
Highest bandwidth usage was 2.33Mbps. DigitalOcean can do a LOT more than that.

I didn’t receive any alerts from New Relic, Mist.io, or Uptime Robot, so all was good. I am, however, still going to prep some kind of solution with Nginx sitting in front of Apache, to at least serve static files.

Nginx, Apache, or Nginx + Apache?

View Results

Loading ... Loading ...