steamy

module
v0.0.0-...-7aa43f1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 30, 2016 License: MIT

README

steamy

Steamy is a deployment solution, it's simple & minimalistic making it quite flexible.

introduction

Steamy is a complete solution for deployment. It doesn't try to replace or be opiniated about the tool you use to provision machines, monitor your app, build deployable artifacts, restart processes, or balance load. It simply creates builds for every push you make to SCM then allows you to deploy that build to any host with the steamy-agent installed via a nice user interface.

This project is composed of four sub-components:

  • steamy-ui The user interface you as a human will interact with.
  • steamy-api The place where all the state and history of your deployments is kept.
  • steamy-agent The program that will on your target server ready to pull in new code when asked.
  • steamy-cli A command line tool to access steamy's information and trigger deploys (as an alternative to the UI).

quick start

Assuming Ubuntu (Upstart as init really):

$ curl -o /usr/local/bin/steamy-api https://github.com/kiasaki/steamy/releases/download/v0.1.0/steamy-api
$ curl -o /usr/local/bin/steamy-ui https://github.com/kiasaki/steamy/releases/download/v0.1.0/steamy-ui
$ chmod +x /usr/local/bin/steamy-api
$ chmod +x /usr/local/bin/steamy-ui
$ cat <<EOT >> /etc/init/steamy-api.conf
start on runlevel [2345]
stop on shutdown
exec /usr/local/bin/steamy-api >/var/log/steamy-api.log
EOT
$ cat <<EOT >> /etc/init/steamy-ui.conf
start on runlevel [2345]
stop on shutdown
exec /usr/local/bin/steamy-ui >/var/log/steamy-ui.log
EOT
$ service steamy-api start
$ service steamy-ui start

At this point the UI should be available at http://<server-ip>:9494/ given you have the right environment variables setup for steamy-api to connect to a postgres database.

concepts

Steamy doesn't:

  • Enforce a specific language
  • Enforce a specific load balancer
  • Enforce a monitoring tool
  • Enforce a specific cloud provider
  • Enforce a specific operating system
  • Enforce a way or stucturing you repo
  • Require SSH access
  • Require tons of setup

Steamy does:

  • Work better with Git and GitHub
  • Require an agent to run on your hosts
  • Includes a beatiful UI to help you visualize and control deployments
  • Allow for deploying multiple apps on the same host
  • Allow for complex deployment/restart sequences by making you write plain bash
How does it work?

1. Steamy installation

First step is to have steamy-{api,ui} up and running somewhere you have access to.

2. Agent installation

Next step you need to install steamy-agent on your target hosts and specify the hosts name and groups in a config file.

Make sure at least one host is in the build group as steamy will need at leat one machine to dispatch build tasks to.

3. Create a new project

Navigate to http://<steamy-server-ip>:9494/projects/create and create a new project specifying a build script and default deploy script.

4. Add a webhook to you Github repo

Follow instructions in here so that steamy gets notified when you push new commits.

5. Push code

Push some new code to your repo and you should see a new build apear in your project.

5. Deploy your new build to hosts

Next step is to start a deploy you newly created build to an environment.

After first push

contributing

See the contributing file in the docs/ folder.

license

See LICENSE file.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL