# Magallanes #
[](https://insight.sensiolabs.com/projects/ed0de53a-a12e-459b-9464-34def5907b56)
[](https://travis-ci.org/andres-montanez/Magallanes)
[](https://coveralls.io/r/andres-montanez/Magallanes?branch=master)
### What's Magallanes? ###
Magallanes is a deployment tool for PHP applications; it's quite simple to use and manage.
It will get your application to a safe harbor.
### So, What can it do? ###
You can instruct Magallanes to deploy your code to all the servers you want (via rsync over ssh),
and run tasks for that freshly deployed code.
### How can I install it via composer? ###
Simply add the following dependency to your project’s composer.json file:
```js
"require-dev": {
// ...
"andres-montanez/magallanes": "~1.0"
// ...
}
```
Now tell we update the vendors:
```bash
$ php composer update andres-montanez/magallanes
```
And finally we can use Magallanes from the vendor's bin:
```bash
$ bin/mage version
```
### System-wide installation with composer ###
```bash
$ composer global require "andres-montanez/magallanes=~1.0"
```
Make sure you have ~/.composer/vendor/bin/ in your path.
You can now use Magallanes by using the ````mage```` command.
### Can you give me some examples/ideas? ###
**Sure!**
Suppose you have a checkout of your app and you have to deploy it to four servers;
and after each deploy you have to run some boring tasks, like fixing file permissions, creating symlinks, etc.
You can define all this on Magallanes and with *just one command* you can do all this at once!
Like this:
```
$ mage deploy to:production
```
### What's this sorcery?! ###
Easy boy. It's not sorcery, just some *technomagick* !
In Magallanes you define environments like *testing* , *staging* , or *production* like on the example above.
Then, on that environment, you can configure a setup specifying to which hosts you want to deploy and what tasks to run (*after*, *on* , and *before* deploying).
And you are done!
### This is awesome! Where can I learn more? ###
You can read the whole source code (naaah!); or checkout the documentation at: http://magephp.com
Enjoy your magic trip with **Magallanes** to the land of the easily deployable apps!!
### "develop" branch ###
Please, all pull request now must be on the develop branch. Thanks!