Virtual Private Server (VPS) providers like Digital Ocean and Linode offer a great service that enable developers to host their sites in an affordable manner. A simple site with SSL that would cost $70 or more a month to run on Heroku, may cost as little as $5 or $10 a month to host on a VPS provider. Since personal and small business sites comprise the majority of my client work, using a VPS just makes sense because of the substantial cost savings. However, there is always a catch.
What is the catch with running your own VPS?
Running your own VPS generally means that you have to learn a lot of server management to get your code deployed properly. Digital Ocean has some nice guides that walk you through the steps for various languages and deployment types, but it still takes time; something we never seem to have enough of. There are also some pre-configured “images” that you can use as a starting point, but do you really know what you are getting? What happens when you want to deploy another site? What happens when you want to add SSL? Well, it is all up to you, and that is why a plain old VPS is less expensive than a service like Heroku. What if there was a way to run an inexpensive VPS and still get your code deployed in a reliable, fast, and easy manner? That has been my quest for the last two years.
How can I save both time and money?
My search for a better way to manage my VPS led me down several paths. I researched available tools on the market. Most of the ones I found were specific to Node, or PHP, or Python, or Ruby. Anything that claimed to do more was either expensive, or required lots of configuration, or both. Also, most solutions were based on closed source scripts that I just didn’t feel like I could trust.
I also looked at chef, puppet, and ansible. I wrote an extensive set of scripts in all of the above, attempting to make an investment that would prevent me from having to constantly re-learn how to deploy my code every time that part of the project came around. I went through several different revisions before I realized that I was on to something.
As I went through the revisions of my automation scripts I knew I needed a few things. First, I needed something to provision my server in a custom fashion. Next, I needed support for Node, PHP, Python, and Ruby. I also needed a development environment that matched my production environment along with a way to easily get my code from development to production. Above all, I knew I wanted to result to be open source so that other developers could benefit from and help improve the product.
The current version of the automation scripts are completely bash based. After trying the alternatives, most were overkill for my use-case of deploying small business sites. Also, I figured that anyone that does anything with server management needs to know bash so sticking with bash would keep it simple and understandable. And after nearly 1000 hours of my time, and countless more from my team, I finally have something that I believe can save other developers from the struggle I have had. I call it WarpSpeed.
What is WarpSpeed?
WarpSpeed is an extensive set of open source bash scripts that handle provisioning and configuring your server. It is also web interface (WarpSpeed.io) that allows one-click use of the bash scripts on a Digital Ocean or Linode server. It also includes a Vagrant development environment that mimics the deployment environment, nice features like git-push or git-pull deploys, and easy SSL configuration. Overall, I feel that this product has achieved all the objectives I initially set out to accomplish, and it certainly streamlines my workflow.
WarpSpeed really does help me get the most out of my VPS. It lets me run Node, PHP, Python, and Ruby sites side by side all on the same VPS. Although Digital Ocean may like it if you create a new VPS/Droplet for every site you host, that is generally very unnecessary. If you were on a shared host, they would put hundreds of sites on a server just like the one you have. It’s certainly not easy to set that kind of configuration up on your own, but with WarpSpeed it is all already done.
Besides offering affordable servers, I feel that one of the keys to the success of Digital Ocean has been their documentation and guides. Often times I found myself looking there for a solution to one of my deployment issues. Because of that, I made sure that WarpSpeed has an extensive list of examples and solid docs that will aid in the deployment of just about any type of project. Currently, we have sample projects in Node, PHP, Python, and Ruby. All are completely open source and are hosted on GitHub. The docs are hosted on GitHub pages and are also open source. If you have any ideas on how to make them even better, please let me know and feel free to contribute.
The path forward.
Each day, using WarpSpeed to help develop and deploy my client projects saves me a ton of time. I am happy to now be sharing that with other developers. I am also excited that the open source nature of the WarpSpeed core scripts will allow the community to help make the scripts even better.
All the scripts are open source and free to use. The WarpSpeed.io web interface that automates VPS creation, provisioning, site creation, SSL, and more starts at $10 per month. Use coupon code “launch” by 8/31 to get your first month free. The value proposition for the web interface subscription is that it saves so much time and costs so little that it will earn a position in your must-have toolset.
Please check out the video below to see what WarpSpeed is capable of, and I look forward to hearing your feedback!