Git Product home page Git Product logo

go-deploy's Introduction

go-deploy is a tarball deployment tool.

Usage:

  go-deploy [option...] <tarball> <uri...>

Details:

  go-deploy uses SSH, Goroutines and a time tested deployment method to atomically deploy tarballs (the old school way)
  to multiple servers in parallel. You pass in a tarball and a list of URIs, with paths, and the tool will SCP the
  tarball to the server, untar it, and atomically replace a symlink to the newest release. It automatically prunes old
  releases, while holding onto a configurable number of the most recent.  The folder structure created by go-deploy
  looks like this:

	.
	├── current -> ./releases/31e750f5-36ef-4205-9963-df79e1760777
	├── previous -> ./releases/542bcb06-b06f-4719-8ee5-7d32793f6b1b.
	├── releases
	│   ├── 31e750f5-36ef-4205-9963-df79e1760777
	│   │   └── ...
	│   ├── 4d1e2235-2d7a-495c-97ae-d3b88849b79f
	│   │   └── ...
	│   ├── 542bcb06-b06f-4719-8ee5-7d32793f6b1b
	│   │   └── ...
	│   ├── 81892b04-b6fe-4164-85b1-5c192a86e66c
	│   │   └── ...
	│   └── bdf655f6-291f-478d-a56b-648890b57e99
	│       └── ...
	└── shared

  go-deploy is designed to be dead simple, very fast, and quite reliable. It is inspired by Capistrano.

Customization:

  go-deploy can be customized by placing special files in a top-level folder of your releases named ".go-deploy". These
  files can influence the behavior of deploys.

  shared
	A list of files that will be replaced with symlinks to a "shared" folder.

  pre-hook
	A hook that is run immediately before symlinks are swapped.

  post-hook
	A hook that is run immediately after symlinks are swapped.

Options:

      --help        Displays this help text
      --id string   A unique release ID (default "<uuid>")
      --keep int    The number of releases to keep behind in the releases folder (default 5)

Arguments:

  <tarball>
	The path to the tarball you will be deploying.
  <uri...>
	A list of RFC 3986 URIs to deploy to (e.g. ssh://[email protected]/path/to/release), where "ssh" is the only
	valid protocol.

go-deploy's People

Contributors

tristanpemble avatar

Stargazers

 avatar

Watchers

James Cloos avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.