Coder Social home page Coder Social logo

altax's Introduction

Altax

Build Status Coverage Status Latest Stable Version License

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.

// 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 [email protected]:path/to/app.git $appDir");
        } else {
            $process->run(array(
                "cd $appDir",
                "git pull",
                ));
        }

    }, array("web"));

});

You can run it like below

$ altax deploy
[web1.example.com:8550] Run: test -d /var/tmp/altax
[web1.example.com:8550] Run: git clone [email protected]:kpath/to/app.git /path/to/app
Initialized empty Git repository in /path/to/app/.git/
[web2.example.com:8551] Run: test -d /var/tmp/altax
[web3.example.com:8551] Run: git clone [email protected]:kpath/to/app.git /path/to/app
Initialized empty Git repository in /path/to/app/.git/

You can get more information at http://kohkimakimoto.github.io/altax/.

Requirement

PHP5.3 or later.

Installation

I recommend you to install Altax as a phar (PHP Archive) which compiled to single executable file. Run the below command to get latest version of Altax.

$ curl -L https://raw.github.com/kohkimakimoto/altax/master/installer.sh | bash -s system

You will get altax command file to /usr/local/bin directory. In order to check installation, execute just altax command.

$ altax
Altax version 3.0.0

Altax is a extensible deployment tool for PHP.
Copyright (c) Kohki Makimoto <[email protected]>
Apache License 2.0
...

Usage

I describe basic usage in this section.

Run altax init command to generate first configuration.

$ altax init
Created file: /path/to/your/directory/.altax/config.php
Created file: /path/to/your/directory/.altax/composer.json
Created file: /path/to/your/directory/.altax/.gitignore

Created .altax/config.php file in your current directory is a main configuration file for altax. You can modify this file to define tasks and servers you managed. So now, add the following code in the file.

Task::register("hello", function($task){

  $task->writeln("Hello world!");

})->description("This is a first sample task.");

This is a simple task definition. Defined task is listed by executing just altax command.

$ altax
Altax version 3.0.0

Altax is a deployment tool for PHP.
it's designed as a command-line tool for running tasks to remote servers.
Copyright (c) Kohki Makimoto <[email protected]>
Apache License 2.0

...

Available commands:
  hello   This is a first sample task.
  ...

hello task you defined can be executed by altax command with task name like the followiing.

$ altax hello
Hello world!

You got a first altax task now!

If you want to see more information, visit a documentation page.

Documentation

See documentation page.

Plugins

Altax has a extensible plugin mechanism. It makes adding functionality easy. Plugins are stored at Packagist and installed using composer. As Altax includes embedded composer, you can install plugins by altax command.

For instance, if you use PHP5.4 and MySQL database in your product, you can use Adminer database management tool via Altax plugin. Edit your .altax/composer.json file like the following.

{
  "require": {
    "kohkimakimoto/altax-adminer": "dev-master"
  }
}

And run altax update command which is a wrapper command of composer update for Altax.

$ altax update

Adminer altax plugin will be installed in your .altax/vendor directory. In order to register the plugin to your task, add the following line your .altax/config.php file.

Task::register('adminer', 'Altax\Contrib\Adminer\Command\AdminerCommand');

Run the registered plugin task commnad.

$ altax adminer

Altax runs adminer on built-in web server. So you can use adminer at http://localhost:3000/.

If you are interested in Altax plugins, Search plugins at packagist!

Author

Kohki Makimoto [email protected]

License

Apache License 2.0

See LICENSE

Previous version

If you use Altax version 2. You can see 2.x branch. Altax version 1 is no longer maintained.

altax's People

Contributors

kohkimakimoto avatar piranhageorge avatar pitpit avatar stekycz 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.