Altax

An extensible deployment tool for PHP.


What is Altax?

Altax is a deployment tool for PHP. I designed it as a command-line tool for running tasks to remote servers like the Capistrano, Fabric and Cinamon. It also has a plugin mechanism for managing and installing tasks easily.

This is a simple git deploy task definition. You can write any tasks in PHP.

// Autoloading for plugin command classes.
if (is_file(__DIR__ . '/vendor/autoload.php')) require_once __DIR__ . '/vendor/autoload.php';

// Register managed nodes to a role.
Server::node("web1.example.com", "web");
Server::node("web2.example.com", "web");
Server::node("db1.example.com",  "db");

// Register a task.
Task::register("deploy", function($task){

    $appDir = "/path/to/app";

    // Execute parallel processes for each nodes.
    $task->exec(function($process) use ($appDir){

        // Run a command remotely and get a return code.
        if ($process->run("test -d $appDir")->isFailed()) {
            $process->run("git clone git@github.com:path/to/app.git $appDir");
        } else {
            $process->run(array(
                "cd $appDir",
                "git pull",
                ));
        }

    }, array("web"));

});

Features

Running Processes In Parallel

Altax runs processes in parallel to execute command on remote servers.

Easy To Use

You can use Altax as a single PHP Archive(phar) file. All dependences to run are packed into the file. And there is a online installation script, so you can install it using one-liner.

Plugin Mechanism

Altax has a plugin mechanism for managing and installing tasks easily. The plugins use composer to install. So the plugins can be shared at Packagist.

Embedded Composer

Altax contains embedded composer to install plugins. You can run composer functionalities in Altax command. You don't need to install composer.


Where to start

If you are a begginer of Altax, I recommend you to read a tutorial.