Installing Phabricator as a self-hosted service is quite simple, but there are many small steps involved that makes it tricky the first time.
When I try new software, I like to spend some effort to get the installation steps right. I find that doing so helps me understand the software better.
Setting up Phabricator on Vagrant first allows me to configure repeatable, manageable deploys, later on.
Getting a working Vagrant setup for Phabricator really makes developing easier. The commands
vagrant up and
vagrant provision helps to debug the Ansible configuration.
Since I’ll be running Phabricator on Ubuntu anyway, that’s the base box specified in the VagrantFile.
Browse the repository here: https://github.com/nicluo/phabricator-ansible
To get started, simply clone the repository and run
vagrant up. The default install is at
http://phabricator.dev, and Vagrant automatically updates your hosts file locally to support the domain name.
These are the major tasks that have to be handled by a provisioning script trying to install Phabricator on Ubuntu:
- PHP 7.1
- Phabricator Phd Daemon setup
- Phabricator Git VCS setup
- Phabricator SSHD setup
- Phabricator Alternate File Domain setup
- Phabricator weekly upgrade script
- Python Pygments setup
- ImageMagick setup
The playbook tasks are specifically for installing Phabricator on Ubuntu 16.04 Xenial LTS.
Right now, the next thing I’m working on is to get the Ansible script to deploy Phabricator on a Digital Ocean VPS.
Since Phabricator configuration can be quite complex, it is not really suitable as an Ansible Galaxy role unless you also write it in your specific configuration.
There are just so many ways to configure Phabricator that configuring your own repo will probably lead to better outcomes.