Square SQ

Auto deploy to servers super quickly without any configuration needed!


The idea came to me after I was messing around with Git webhooks. It was super cool to auto detect when changes were posted to Github and I wrote some scripts to auto update some programs I regularly worked on so that I didn't have to touch the server as much.

To expand that one step further, I wanted to make the process as simple as adding the URL to github, thats it. The server will dynamically handle anything you throw at it and create separate, accessible URLS so that several projects can be run at the same time. The main idea was to make this as simple as possible for quick testing. Anything more complex and long term can be moved to a full-blown continuous integration platform.

What it does

The purpose of the project is to be able to quickly deploy and test new projects you are working on. It is as simple as adding a URL to your Github repo. Thats it. Then, everything you push to github will automatically be parsed, detected, and deployed onto the server without touching anything else!

How it works

The backend server portion lives on an AWS EC2 instance. It will actively listen to webhooks sent to it, which is configured from Github. When a commit is pushed, the server will read the webhook, parse it to determine what project it is, what kind of project it is, and if it already has the project. Afterwards, it will setup an instance for the project to run, including automatic Nginx configuration, or update the project if it already exists.

Due to time constraints, I was only able to fully finish pushing static web content. The detection code for Node projects is finished, but there was simply not enough time to fully implement auto deployment of node projects.

Share this project: