From 76fb87ab9007e1f51f7991c5998c2cf75fb925dd Mon Sep 17 00:00:00 2001 From: Robert Lin Date: Mon, 7 May 2018 13:27:39 -0700 Subject: [PATCH 1/5] Update README spacing and Motivation summary --- README.md | 27 +++++++++++++++++++-------- 1 file changed, 19 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index de5b3ba1..9c80c513 100644 --- a/README.md +++ b/README.md @@ -25,6 +25,8 @@

+
+ ---------------- Inertia is a simple cross-platform command line application that enables effortless setup and management of continuous, automated deployment on any virtual private server. It is built and maintained with :heart: by [UBC Launch Pad](https://www.ubclaunchpad.com/). @@ -46,13 +48,16 @@ Inertia is a simple cross-platform command line application that enables effortl ---------------- -- [Getting Started](#package-getting-started) +#### Contents +- **[Getting Started](#package-getting-started)** - [Setup](#setup) - [Continuous Deployment](#continuous-deployment) - [Deployment Management](#deployment-management) - [Release Streams](#release-streams) -- [Motivation and Design](#bulb-motivation-and-design) -- [Contributing](#books-contributing) +- **[Motivation and Design](#bulb-motivation-and-design)** +- **[Contributing](#books-contributing)** + +
# :package: Getting Started @@ -130,25 +135,27 @@ The daemon component of an Inertia release can be patched separately from the CL ## Swag -Add some bling to your Inertia-deployed project :sunglasses: +Add some bling to your Inertia-deployed project :sunglasses: + +[![Deployed with Inertia](https://img.shields.io/badge/Deploying%20with-Inertia-blue.svg)](https://github.com/ubclaunchpad/inertia) ``` [![Deployed with Inertia](https://img.shields.io/badge/Deploying%20with-Inertia-blue.svg)](https://github.com/ubclaunchpad/inertia) ``` -[![Deployed with Inertia](https://img.shields.io/badge/Deploying%20with-Inertia-blue.svg)](https://github.com/ubclaunchpad/inertia) +

# :bulb: Motivation and Design [UBC Launch Pad](http://www.ubclaunchpad.com) is a student-run software engineering club at the University of British Columbia that aims to provide students with a community where they can work together to build a all sorts of cool projects, ranging from mobile apps and web services to cryptocurrencies and machine learning applications. -Many of our projects rely on hosting providers for deployment. Unfortunately we frequently change hosting providers based on available funding and sponsorship, meaning our projects often need to be redeployed. Inertia is a project to develop an in-house deployment system to make setting up continuously deployed applications simple and painless, regardless of the hosting provider. +Many of our projects rely on hosting providers for deployment. Unfortunately we frequently change hosting providers based on available funding and sponsorship, meaning our projects often need to be redeployed. On top of that, deployment itself can already be a frustrating task, especially for students with little to no experience setting up applications on remote hosts. Inertia is a project we started to address these problems, with the goal of developing an in-house deployment system that can make setting up continuously deployed applications simple and painless, regardless of the hosting provider. -The primary design goals of Inertia are to: +There is a [Medium post](https://medium.com/ubc-launch-pad-software-engineering-blog/building-continuous-deployment-87a2bd8eedbe) that goes over the project, its motivations, the design choices we made, and Inertia's implementation - but in summary, the primary design goals of Inertia are to: * minimize setup time for new projects * maximimise compatibility across different client and VPS platforms -* offer a convenient interface for managing the deployed application +* offer an easy-to-learn interface for managing deployed applications ## How It Works @@ -166,8 +173,12 @@ The team has made a few presentations about Inertia that go over its design in a - [UBC Launch Pad internal demo](https://drive.google.com/file/d/1foO57l6egbaQ7I5zIDDe019XOgJm-ocn/view?usp=sharing) - [Vancouver DevOpsDays 2018](https://docs.google.com/presentation/d/e/2PACX-1vRJXUnRmxpegHNVTgn_Kd8VFyeuiIwzDQl9c0oQqi1QSnIjFUIIjawsvLdu2RfHAXv_5T8kvSgSWGuq/pub?start=false&loop=false&delayms=15000) ([video](https://youtu.be/amBYMEKGzTs?t=4h59m5s)) +

+ # :books: Contributing Any contribution (pull requests, feedback, bug reports, ideas, etc.) is welcome! Please see our [contribution guide](https://github.com/ubclaunchpad/inertia/blob/master/.github/CONTRIBUTING.md) for contribution guidelines and a detailed guide to help you get started with Inertia's codebase. + +
From 8daa28a41d4ff26680686da932cfe32df50554d7 Mon Sep 17 00:00:00 2001 From: Robert Lin Date: Mon, 7 May 2018 14:53:59 -0700 Subject: [PATCH 2/5] Update README.md --- README.md | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/README.md b/README.md index 9c80c513..1850d100 100644 --- a/README.md +++ b/README.md @@ -48,7 +48,7 @@ Inertia is a simple cross-platform command line application that enables effortl ---------------- -#### Contents +### Contents - **[Getting Started](#package-getting-started)** - [Setup](#setup) - [Continuous Deployment](#continuous-deployment) @@ -69,7 +69,7 @@ $> brew install ubclaunchpad/tap/inertia For other platforms, you can [download the appropriate binary from the Releases page](https://github.com/ubclaunchpad/inertia/releases). -## Setup +### Setup Initializing a project for use with Inertia only takes a few simple steps: @@ -90,7 +90,7 @@ This daemon will be used to manage your deployment. See our [wiki](https://github.com/ubclaunchpad/inertia/wiki/VPS-Compatibility) for more details on VPS platform compatibility. -## Deployment Management +### Deployment Management To manually deploy your project, you must first grant Inertia permission to clone your repository. This can be done by adding the GitHub Deploy Key that is displayed in the output of `inertia $VPS_NAME init` to your repository settings: @@ -109,7 +109,7 @@ Run `inertia $VPS_NAME --help` to see the other commands Inertia offers for mana Inertia also offers a web application - this can be accessed at `https://$ADDRESS:4303/web` once users have been added through the `inertia $VPS_NAME user` commands. -## Continuous Deployment +### Continuous Deployment To enable continuous deployment, you need the webhook URL that is printed during `inertia $VPS_NAME init`: @@ -121,7 +121,7 @@ Github WebHook Secret: inertia The daemon will accept POST requests from GitHub at the URL provided. Add this webhook URL in your GitHub settings area (at the URL provided) so that the daemon will receive updates from GitHub when your repository is updated. Once this is done, the daemon will automatically build and deploy any changes that are made to the deployed branch. -## Release Streams +### Release Streams The version of Inertia you are using can be seen in Inertia's `.inertia.toml` configuration file, or by running `inertia --version`. The version in `.inertia.toml` is used to determine what version of the Inertia daemon to use when you run `inertia $VPS_NAME init`. @@ -133,7 +133,7 @@ You can manually change the daemon version used by editing the Inertia configura The daemon component of an Inertia release can be patched separately from the CLI component - see our [wiki](https://github.com/ubclaunchpad/inertia/wiki/Daemon-Releases) for more details. -## Swag +### Swag Add some bling to your Inertia-deployed project :sunglasses: @@ -151,15 +151,19 @@ Add some bling to your Inertia-deployed project :sunglasses: Many of our projects rely on hosting providers for deployment. Unfortunately we frequently change hosting providers based on available funding and sponsorship, meaning our projects often need to be redeployed. On top of that, deployment itself can already be a frustrating task, especially for students with little to no experience setting up applications on remote hosts. Inertia is a project we started to address these problems, with the goal of developing an in-house deployment system that can make setting up continuously deployed applications simple and painless, regardless of the hosting provider. -There is a [Medium post](https://medium.com/ubc-launch-pad-software-engineering-blog/building-continuous-deployment-87a2bd8eedbe) that goes over the project, its motivations, the design choices we made, and Inertia's implementation - but in summary, the primary design goals of Inertia are to: +The primary design goals of Inertia are to: * minimize setup time for new projects * maximimise compatibility across different client and VPS platforms * offer an easy-to-learn interface for managing deployed applications -## How It Works +### How It Works -Inertia consists of two major components: a deployment daemon and a command line interface. +There is a detailed [Medium post](https://medium.com/ubc-launch-pad-software-engineering-blog/building-continuous-deployment-87a2bd8eedbe) that goes over the project, its motivations, the design choices we made, and Inertia's implementation. The team has made a few presentations about Inertia that go over its design in a bit more detail: +- [UBC Launch Pad internal demo](https://drive.google.com/file/d/1foO57l6egbaQ7I5zIDDe019XOgJm-ocn/view?usp=sharing) +- [Vancouver DevOpsDays 2018](https://docs.google.com/presentation/d/e/2PACX-1vRJXUnRmxpegHNVTgn_Kd8VFyeuiIwzDQl9c0oQqi1QSnIjFUIIjawsvLdu2RfHAXv_5T8kvSgSWGuq/pub?start=false&loop=false&delayms=15000) ([video](https://youtu.be/amBYMEKGzTs?t=4h59m5s)) + +In summary, Inertia consists of two major components: a deployment daemon and a command line interface. The deployment daemon runs persistently in the background on the server, receiving webhook events from GitHub whenever new commits are pushed. The CLI provides an interface to adjust settings and manage the deployment - this is done through HTTPS requests to the daemon, authenticated using JSON web tokens generated by the daemon. Remote configuration is stored locally in `.inertia.toml`. @@ -169,10 +173,6 @@ The deployment daemon runs persistently in the background on the server, receivi Inertia is set up serverside by executing a script over SSH that installs Docker and starts an Inertia daemon image with [access to the host Docker socket](https://bobheadxi.github.io/dockerception/#docker-in-docker). This Docker-in-Docker configuration gives the daemon the ability to start up other containers *alongside* it, rather than *within* it, as required. Once the daemon is set up, we avoid using further SSH commands and execute Docker commands through Docker's Golang API. Instead of installing the docker-compose toolset, we [use a docker-compose image](https://bobheadxi.github.io/dockerception/#docker-compose-in-docker) to build and deploy user projects. Inertia also supports projects configured for Heroku buildpacks using the [gliderlabs/herokuish](https://github.com/gliderlabs/herokuish) Docker image for builds and deployments. -The team has made a few presentations about Inertia that go over its design in a bit more detail: -- [UBC Launch Pad internal demo](https://drive.google.com/file/d/1foO57l6egbaQ7I5zIDDe019XOgJm-ocn/view?usp=sharing) -- [Vancouver DevOpsDays 2018](https://docs.google.com/presentation/d/e/2PACX-1vRJXUnRmxpegHNVTgn_Kd8VFyeuiIwzDQl9c0oQqi1QSnIjFUIIjawsvLdu2RfHAXv_5T8kvSgSWGuq/pub?start=false&loop=false&delayms=15000) ([video](https://youtu.be/amBYMEKGzTs?t=4h59m5s)) -

# :books: Contributing From 552ab21a622a01fbb0005256e348b5ad43105924 Mon Sep 17 00:00:00 2001 From: Robert Lin Date: Mon, 7 May 2018 14:55:51 -0700 Subject: [PATCH 3/5] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 1850d100..2e97dc77 100644 --- a/README.md +++ b/README.md @@ -159,7 +159,7 @@ The primary design goals of Inertia are to: ### How It Works -There is a detailed [Medium post](https://medium.com/ubc-launch-pad-software-engineering-blog/building-continuous-deployment-87a2bd8eedbe) that goes over the project, its motivations, the design choices we made, and Inertia's implementation. The team has made a few presentations about Inertia that go over its design in a bit more detail: +There is a detailed [Medium post](https://medium.com/ubc-launch-pad-software-engineering-blog/building-continuous-deployment-87a2bd8eedbe) that goes over the project, its motivations, the design choices we made, and Inertia's implementation. The team has also made a few presentations about Inertia that go over its design in some more detail: - [UBC Launch Pad internal demo](https://drive.google.com/file/d/1foO57l6egbaQ7I5zIDDe019XOgJm-ocn/view?usp=sharing) - [Vancouver DevOpsDays 2018](https://docs.google.com/presentation/d/e/2PACX-1vRJXUnRmxpegHNVTgn_Kd8VFyeuiIwzDQl9c0oQqi1QSnIjFUIIjawsvLdu2RfHAXv_5T8kvSgSWGuq/pub?start=false&loop=false&delayms=15000) ([video](https://youtu.be/amBYMEKGzTs?t=4h59m5s)) From 333d6ad135e536e9c2d9546a50aa1c36906ec3e0 Mon Sep 17 00:00:00 2001 From: Robert Lin Date: Fri, 11 May 2018 20:57:20 -0700 Subject: [PATCH 4/5] Add Windows installation instructions --- README.md | 23 ++++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 2e97dc77..5ac4bf35 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,7 @@

- Simple, self-hosted continuous deployment. + Effortless, self-hosted continuous deployment.

@@ -29,7 +29,7 @@ ---------------- -Inertia is a simple cross-platform command line application that enables effortless setup and management of continuous, automated deployment on any virtual private server. It is built and maintained with :heart: by [UBC Launch Pad](https://www.ubclaunchpad.com/). +Inertia is a simple cross-platform command line application that enables effortless setup and management of continuous, automated deployment all sorts of projects on any virtual private server. It is built and maintained with :heart: by [UBC Launch Pad](https://www.ubclaunchpad.com/).

@@ -49,24 +49,33 @@ Inertia is a simple cross-platform command line application that enables effortl ---------------- ### Contents -- **[Getting Started](#package-getting-started)** +- [Getting Started](#package-getting-started) - [Setup](#setup) - [Continuous Deployment](#continuous-deployment) - [Deployment Management](#deployment-management) - [Release Streams](#release-streams) -- **[Motivation and Design](#bulb-motivation-and-design)** -- **[Contributing](#books-contributing)** +- [Motivation and Design](#bulb-motivation-and-design) +- [Contributing](#books-contributing)
# :package: Getting Started -All you need to get started is a [compatible project](https://github.com/ubclaunchpad/inertia/wiki/Project-Compatibility), the Inertia CLI, and access to a virtual private server. The CLI can be installed using [Homebrew](https://brew.sh): +All you need to get started is a [compatible project](https://github.com/ubclaunchpad/inertia/wiki/Project-Compatibility), the Inertia CLI, and access to a virtual private server. + +**MacOS** - the CLI can be installed using [Homebrew](https://brew.sh): ```bash $> brew install ubclaunchpad/tap/inertia ``` +**Windows** - the CLI can be installed using [Scoop](http://scoop.sh): + +```bash +$> scoop bucket add ubclaunchpad https://github.com/ubclaunchpad/scoop-bucket +$> scoop install inertia +``` + For other platforms, you can [download the appropriate binary from the Releases page](https://github.com/ubclaunchpad/inertia/releases). ### Setup @@ -179,6 +188,6 @@ Inertia is set up serverside by executing a script over SSH that installs Docker Any contribution (pull requests, feedback, bug reports, ideas, etc.) is welcome! -Please see our [contribution guide](https://github.com/ubclaunchpad/inertia/blob/master/.github/CONTRIBUTING.md) for contribution guidelines and a detailed guide to help you get started with Inertia's codebase. +Please see our [contribution guide](https://github.com/ubclaunchpad/inertia/blob/master/.github/CONTRIBUTING.md) for contribution guidelines as well as a detailed guide to help you get started with Inertia's codebase.
From 8d4ad48ec7dee4cb9f6c0ed55b890e9a770ba575 Mon Sep 17 00:00:00 2001 From: Robert Lin Date: Fri, 11 May 2018 22:27:31 -0700 Subject: [PATCH 5/5] Only build on ubclaunchpad/inertia --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 9552935f..7f4ddfe8 100644 --- a/.travis.yml +++ b/.travis.yml @@ -69,5 +69,5 @@ jobs: file: inertia.* go: "1.10" on: - tags: true branch: master + repo: ubclaunchpad/inertia