Page MenuHomePhorge
Diviner User Docs Installation Guide

Installation Guide
Phorge Administrator and User Documentation (Introduction)

This document contains basic install instructions to get Phorge up and running.

Overview

Phorge is a LAMP (Linux, Apache, MySQL, PHP) application. To install Phorge, you will need:

  • a normal computer to install it on (shared hosts and unusual environments are not supported) running some flavor of Linux or a similar OS;
  • a domain name (like phorge.example.com);
  • basic sysadmin skills;
  • Apache, nginx, or another webserver;
  • PHP;
  • MySQL (you will need a server with multiple databases);
  • git

The remainder of this document details these requirements.

You may be interested also in preparing these optional stuff:

  • have valid SMTP parameters for outgoing email notifications;
  • having nothing listening on port 22, to then setup a SSH+git server

Installation Requirements

You will need a computer. Options include:

  • A Normal Computer: This is strongly recommended. Many installs use a VM in EC2. Phorge installs properly and works well on a normal computer.
  • A Shared Host: This may work, but is not recommended. Many shared hosting environments have restrictions which prevent some of Phorge's features from working. Consider using a normal computer instead. We do not support shared hosts.
  • A SAN Appliance, Network Router, Gaming Console, Raspberry Pi, etc.: Although you may be able to install Phorge on specialized hardware, it is unlikely to work well and will be difficult for us to support. Strongly consider using a normal computer instead. We do not support specialized hardware.
  • A Toaster, Car, Firearm, Thermostat, etc.: Yes, many modern devices now have embedded computing capability. We live in interesting times. However, you should not install Phorge on these devices. Instead, install it on a normal computer. We do not support installing on noncomputing devices.

To install the Phorge server software, you will need an operating system on your normal computer which is not Windows. Note that the command line interface does work on Windows, and you can use Phorge from any operating system with a web browser. However, the server software does not run on Windows. It does run on most other operating systems, so choose one of these instead:

  • GNU/Linux: Most installs use Linux.
  • Mac OS X: Mac OS X is an acceptable non-flavor of Linux.
  • BSD: While BSD is certainly not a flavor of Linux, it is a fine operating system possessed of many desirable qualities, and Phorge will install and run properly on BSD.
  • Solaris, etc.: Other systems which look like *nix and quack like *nix will generally work fine, although we may suffer a reduced ability to support and resolve issues on unusual operating systems.

Beyond an operating system, you will need a webserver.

  • Apache: Many installs use Apache + mod_php.
  • nginx: Many installs use nginx + php-fpm.
  • lighttpd: lighttpd is less popular than Apache or nginx, but it works fine.
  • Other: Other webservers which can run PHP are also likely to work fine, although these installation instructions will not cover how to set them up.
  • PHP Builtin Server: Phorge will not work with the builtin webserver because Phorge depends on making requests to itself on some workflows, and the builtin webserver is single-threaded.

You will also need:

  • MySQL: You need MySQL. We strongly recommend MySQL 5.5 or newer. You will need a server with multiple databases.
  • PHP: You need a PHP engine:
    • PHP 7 - 7.2 or newer.
    • PHP 8 - 8.0 or newer.
  • git: You need git 2.5.0 or newer on the server. No particular version is needed on your clients.

You'll probably also need a domain name. In particular, you should read this note:

NOTE: Phorge must be installed on an entire domain. You can not install it to a path on an existing domain, like example.com/phorge/. Instead, install it to an entire domain or subdomain, like phorge.example.com.

Level Requirements

To install and administrate Phorge, you'll need to be comfortable with common system administration skills. For example, you should be familiar with using the command line, installing software on your operating system of choice, working with the filesystem, managing processes, dealing with permissions, editing configuration files, and setting environment variables.

If you aren't comfortable with these skills, you can still try to perform an install. The install documentation will attempt to guide you through what you need to know. However, if you aren't very familiar or comfortable with using this set of skills to troubleshoot and resolve problems, you may encounter issues which you have substantial difficulty working through.

We assume users installing and administrating Phorge are comfortable with common system administration skills and concepts. If you aren't, proceed at your own risk and expect that your skills may be tested.

Installing Required Components

Here's a general description of what you need to install:

  • git (usually called "git" in package management systems)
  • Apache (usually "httpd" or "apache2") (or nginx)
  • MySQL Server (usually "mysqld" or "mysql-server" or "mariadb-server")
  • PHP (usually "php")
  • Required PHP extensions: mbstring, iconv, mysql (or mysqli), curl, pcntl (these might be something like "php-mysql" or "php-mysqlnd")
  • Optional PHP extensions: gd, zip

If you already have LAMP setup, you've probably already got everything you need. It may also be helpful to refer to the install scripts above, even if they don't work for your system.

Now that you have all that stuff installed, grab Phorge and its dependencies:

$ cd somewhere/ # pick some install directory
somewhere/ $ git clone https://we.phorge.it/source/arcanist.git
somewhere/ $ git clone https://we.phorge.it/source/phorge.git

After cloning, flag them as safe (to avoid the error "fatal: detected dubious ownership in repository at ..."):

$ sudo git config --system --add safe.directory somewhere/arcanist
$ sudo git config --system --add safe.directory somewhere/phorge

Next Steps

Continue by: