At techstricks, we believe that more you organize yourself and your team, easier it will become to achieve your goals. In this post we are going to discuss about a set of tools that will help your start-up or company to get more organized. Better yet, what we are about to discuss in this post will definitely help your startup look much more professional.

(To get to the phabricator installation part, click here)

Most of the tech / software companies do need / use set of tools to keep the work flow smooth and transparent. The product we are discussing today is exactly that. A set of tools or application combined in one to get your startup going. Phabricator is a collection of open source web applications that help software companies build better software. A few of the main applications it includes are:

  • Differential

    Differential is an amazing looking and very easy to use code review tool. This tool will help you and your team collaboratively write and review better code. (Learn more about Differential)

  • Maniphest

    Maniphest is a tool to help you and your team keep track of bugs and tasks. (Learn more about Maniphest)

  • Diffusion

    Diffusion is phabricator’s alternative to Github or Bitbucket. Diffusion helps you host, import code repositories and/or browse code. Don’t worry though if you would not like to import your repositories, you can still use phabricator. (Learn more about Diffusion)

  • Phriction

    Phriction is Phabricator’s wiki solution. (Know more about it)

  • Projects

    As the term itself suggests, Projects help you create and manage multiple project. (Learn more about it)

  • Arcanist

    Arcanist is a powerful Command Line Interface for phabricator that helps you do complex stuff with ease. Just to give you an example, with one command arcanist can pull the changes from a remote repo to your local one, rebase your work on top of it and can send your code for review or push it to a repository. (Learn more 🙂)

 

These are just some of the amazing applications that Phabricator comprises of. But these are not the only ones. Check out all that phabricator offers on Phabricator’s Application Page. As you’ll see phabricator offers all the applications your start-up needs to be organized and professional. Well ok, Phabricator is amazing, but to see the real power you’ll actually need to experience phabricator. So without any delay let’s get to the setup i.e. installing phabricator on your server.

Phabricator Installation

Phabricator is written in PHP and based on LAMP setup. So the good new is, it ain’t all that hard to get phabricator up and running. So Let’s get to it.

  • [one_half]Phabricator Installation[/one_half]
    [one_half last=last]First thing we’ll need to do is to get the Phabricator’s code on your server. In order to do so we’ll need to clone the following 3 repositories.

     

    So let’s start out with creating a directory where we’d be putting the above mentioned repositories. And then cloning the repositories into that directory. To do so, ssh to your server and type in the commands

    [/one_half]
    [clear]

  • mkdir phab_setup
    cd phab_setup
    git clone https://github.com/phacility/libphutil.git
    git clone https://github.com/phacility/arcanist.git
    git clone https://github.com/phacility/phabricator.git

  • Once you have all the repositories cloned to phab_setup directory on your server, The next step is to setup your web server to serve the webroot directory in the phabricator repository you just cloned. You can use any web server you wish to but for this post we’ll be configuring Apache2 web server to serve phabricator. We are here assuming that you have LAMP setup on your server.Before we configure apache2 to serve phabricator, we need to make sure that you have “mod_php” and “mod_rewrite” enabled for apache. In order to enable the mentioned mods run the following commands.


    sudo a2enmod php5
    sudo a2enmod rewrite
    sudo service apache2 restart

  • Once you get the mods up and running, The next step is to add a VirtualHost entry in your apache2 server’s configuration file. To do so create a new file called “phabricator.conf” in the “/etc/apache2/sites-available/” directory and add the following code to it (NOTE: In the following code please replace “yourdomain” and “/path/to/phabricator/webroot” with your respective domain name and absolute path to phabricator’s webroot directory).

    < VirtualHost *:80>
    ServerName phabricator.yourdomain.com
    DocumentRoot /path/to/phabricator/webroot

    RewriteEngine on
    RewriteRule ^/rsrc/(.*) - [L,QSA]
    RewriteRule ^/favicon.ico - [L,QSA]
    RewriteRule ^(.*)$ /index.php?__path__=$1 [B,L,QSA]
    < /VirtualHost>

    < Directory /home/projects/phab_setup/phabricator/webroot>
    Options Indexes FollowSymLinks
    AllowOverride None
    Require all granted
    < /Directory>

    Once, you have added the above code to phabricator.conf, you’ll need to create a symbolic link to this file under the “/etc/apache2/sites-enabled” to do so use the following command

    sudo ln -s /etc/apache2/sites-available/phabricator.conf /etc/apache2/sites-enabled/

  • After creating the symlink, we’ll install the last dependency that is required by phabricator i.e. curl. To install php curl use the following command.
    sudo apt-get install php5-curl
    Now restart the apache web server
    sudo service restart apache2

 

Are you expecting more steps ? Sorry, there aren’t any. Just open your web browser and point to your domain name follow the phabricator instructions :). Simple and easy phabricator installation is now complete.

If you have any questions or queries, feel free to put them into the comments section.