Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
DeploYML is a simple deployment solution that uses a single YAML file.
Ruby
branch: master

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
bin
lib
spec
.document
.gemtest
.gitignore Dropped Bundler.
.rspec
.yardopts
ChangeLog.md
LICENSE.txt Update the copyright dates.
README.md Require addressable ~> 2.2.
Rakefile
deployml.gemspec
gemspec.yml

README.md

DeploYML

Description

DeploYML is a simple deployment solution that uses a single YAML file, Git and SSH.

Features

  • Requires only one YAML file (config/deploy.yml) with a minimum of two settings (source and dest).
  • Supports multiple deployment environments (config/deploy/staging.yml).
  • Supports multiple deployment destinations.
  • Supports Git.
  • Can deploy Ruby web applications or static sites.
  • Supports common Web Servers:
  • Supports common Web Application frameworks:
  • Does not require anything else to be installed on the servers.
  • Does not use net-ssh.
  • Supports any Operating System that supports Ruby and SSH.
  • Provides a simple command-line interface using Thor.

Configuration Examples

Specifying source and dest URIs as Strings:

source: git@github.com:user/project.git
dest: deploy@www.example.com/var/www/site

Specifying dest URI as a Hash:

source: git@github.com:user/project.git
dest:
  user: deploy
  host: www.example.com
  path: /var/www/site

Specify multiple dest URIs:

source: git@github.com:user/project.git
dest:
  - deploy@www1.example.com/var/www/site
  - deploy@www2.example.com/var/www/site
  - deploy@www3.example.com/var/www/site

Specifying a server option:

source: git@github.com:user/project.git
dest: deploy@www.example.com/var/www/site
server: apache

Specifying a server with options:

source: git@github.com:user/project.git
dest: deploy@www.example.com/var/www/site
server:
  name: thin
  options:
    servers: 4
deamonize: true
socket: /var/run/thin.sock
rackup: true

Multiple environments:

# config/deploy.yml
source: git@github.com:user/project.git
framework: rails
orm: datamapper

# config/deploy/staging.yml
dest: ssh://deploy@www.example.com/srv/staging
server:
  name: thin
  options:
    config: /etc/thin/staging.yml
    socket: /tmp/thin.staging.sock

# config/deploy/production.yml
dest: ssh://deploy@www.example.com/srv/project
server:
  name: thin
  options:
    config: /etc/thin/example.yml
    socket: /tmp/thin.example.sock

Specifying before/after commands:

before:
  restart: rm public/some/file

after:
  install:
    - mkdir tmp
    - mkdir tmp/pids
    - mkdir log
  update: rake post_deploy

Synopsis

Cold-Deploy a new project:

$ deployml deploy

Redeploy a project:

$ deployml redeploy

Run a rake task on the deploy server:

$ deployml rake 'db:automigrate'

Execute a command on the deploy server:

$ deployml exec 'whoami'

SSH into the deploy server:

$ deployml ssh

List available tasks:

$ deployml help

Requirements

Install

$ sudo gem install deployml

Copyright

Copyright (c) 2010-2012 Hal Brodigan

See {file:LICENSE.txt} for license information.

Something went wrong with that request. Please try again.