Diff: [root] @ eaf9289fbf5 | faq | css

Reploy

File created: reploy/examples [Diff]

-- /dev/null++ b/reploy/examples
@@ -1 +1,6 @@
h1. Reployment Examples

"Example config for merb, deployed from remote git repo and config-specific files copied from current directory.":http://gist.github.com/182314

"Simple config for plain transferring files from git by scp":http://gist.github.com/182319

File created: reploy/index [Diff]

-- /dev/null++ b/reploy/index
@@ -1 +1,6 @@
Reploy is deploying tool, written in Ruby. I decided to write it when i was tired of "Vlad":http://rubyhitsquad.com/Vlad_the_Deployer.html and "Capistrano":http://capify.org performing dark magic in my urxvt including throwing numerous tarballs over rsync, littering my server with backups and using three instances of git repo, one created on every run.

Currently it supports one target at time, which is drawback from Vlad'n'Cap, but for one-location use it's ok. This may improve over time.

See available [[recipes]] and [[manual]].

File created: reploy/manual [Diff]

-- /dev/null++ b/reploy/manual
@@ -1 +1,30 @@
h1. How To Reploy

* Install reploy gem

bc. gem sources -a http://gems.github.com # if github is not already in your gem sources
gem install Voker57-reploy

* Write a Rakefile

If you are using merb, you can write the following into @lib/tasks/reploy.rake@. Otherwise, consult local authority / call it @Rakefile@.

That's example script, using git to get versioned content from local working copy, rsync to transfer files and using merb methods to restart remote server

bc. require 'reploy'
Reploy.load(:host => "example.com", # remote host
:user => "username", # remote login
:path => "/var/www/example.com", # remote path to deploy site. Actual site vill be deployed to current/ subdir.
:recipes => ["git", "merb", "rsync"], # requiring bundled recipes, end one with .rb to load it from global search paths
:copy => [["config/database.yml","config"]], # files that are not included in version control
:store_backups => false, # setting this to true leaves named backups in their folders after deployment
# merb settings
:merb => { :host => "127.0.0.1", # host to listen on
:port => "4000", # port
:environment => "production", # environment
:adapter => "thin" # rack adapter
})
task :deploy => ["reploy:merb:deploy"] # shortcut for convenience

You can see more examples [[examples|here]]

File created: reploy/recipes/git [Diff]

-- /dev/null++ b/reploy/recipes/git
@@ -1 +1,6 @@
Git recipe currently supports case with local non-bare repo, it checks out current head and syncs it with remote copy, deleting all non-versioned files. To copy them, use @Reploy.copy@.

Implements: @checkout@

Config: none

File created: reploy/recipes/merb [Diff]

-- /dev/null++ b/reploy/recipes/merb
@@ -1 +1,13 @@
Merb recipe currently supports starting, stopping and restarting remotely running "Merb":http://merbivore.org server, as well as keeping "shared" folders (log/ and tmp/) not-overwritten during code updates and autoupgrading tables.

Implements: @start, stop, restart, symlink_shared, autoupgrade, deploy@

h2. Config entries:

* :host - Host to bind to
* :port - Port to listen on,
* :environment - Merb environment
* :adapter - Merb adapter

All those are given to merb daemon, port is additionally used to identify previously running daemon.

File created: reploy/recipes/rsync [Diff]

-- /dev/null++ b/reploy/recipes/rsync
@@ -1 +1,6 @@
Rsync recipes provide compressed syncronization of directories and file transfer via "rsync":http://www.samba.org/rsync

Implements: @sync, copy@

Config: none

File created: reploy/recipes/scp [Diff]

-- /dev/null++ b/reploy/recipes/scp
@@ -1 +1,6 @@
Scp recipe provides file transfers and directory syncronization using tarballs and SCP (protocol, not program)

Config:

* :tar - Use tarballs with specified compression method. Recognized methods are @gzip, bzip2, lzma@. If :tar is set but method is unrecognized, uncompressed tarballs are used

By Voker57 on 2009-09-07 12:04:01 +0000