Public | Automated Build

Last pushed: 3 years ago
Short Description
Short description is empty for this repo.
Full Description


Runs Phabricator and all associated daemons in one image (this image does not contain a database). This image currently auto-updates Phabricator once a week and restarts all processes.

This image can be pulled by running docker pull offbyone/phabricator

This image was put together based off of the previous work done by and with insight from the previous work done by people at the following locations


To configure this image, create a config directory, with a script.pre file inside it. This
file should be marked as executable. Place the following content in that file:


# Set the name of the host running MySQL:
./bin/config set ""

# If MySQL is running on a non-standard port:
#./bin/config set mysql.port 3306

# Set the username for connecting to MySQL:
./bin/config set mysql.user "root"

# Set the password for connecting to MySQL:
./bin/config set mysql.pass "password"

# Set the base URI that will be used to access Phabricator:
./bin/config set phabricator.base-uri ""

To run this image:

/usr/bin/docker run -p 22:22 -p 24 -p 80:80 -p 443:443 -p 22280:22280 -v /path/to/config:/config -v /path/to/repo/storage:/var/repo --name=phabricator --link mariadb:linked_mariadb offbyone/phabricator

What do these parameters do?

-p 22:22 = forward the host's SSH port to Phabricator for repository access
-p 24 = publishes port 24 from your Phabricator's instance to the host running docker (can be retrieved to SSH in)
-p 80:80 = forward the host's HTTP port to Phabricator for web access
-p 443:443 = forward the host's HTTPS port to Phabricator for secure web access
-p 22280:22280 = forward the host's 22280 port for the notification server
-v path/to/config:/config = map the configuration from the host to the container
-v path/to/repo/storage:/var/repo = map the repository storage from the host to the container
--name phabricator = the name of the container
--link mariadb:linked_mariadb = (optional) if you are running MariaDB in a Docker container
offbyone/phabricator = the name of the image

Enabling SSL

To enable SSL, place cert.pem and cert.key files alongside script.pre. The Docker
container will automatically detect the presence of the certificates and configure
Nginx to run with SSL enabled.

Linking to a DB container

If you are running MariaDB in a Docker container (e.g. using the hachque/mariadb container), you can configure the script.pre file like so to use the linked MariaDB container:

./bin/config set "$LINKED_MARIADB_PORT_3306_TCP_ADDR"
./bin/config set mysql.port "$LINKED_MARIADB_PORT_3306_TCP_PORT"

Include the --link option as shown above to link the Phabricator container to the MariaDB container.

Enabling SSH

To enable SSH, place an authorized_keys file next to script.pre (in the config directory). You will be able to log in
using key authentication.
Username: root
Port: 24

(Note that repository hosting for Phabricator is served on port 22)

To retrieve the port that SSH is running on your server type docker port phabricator 24
Then log in using ssh -p PORT_NUM root@ where PORT_NUM is the output port from the docker port command

Uploading Files

NOTE: This image assumes you are either storing your files using MySQL or using S3, there is no guarantee that your files will stick around if you use either other method. If you'd like to store files on the filesystem, you'll want to add an additional volume.

Docker Pull Command
Source Repository