Cluster Setup

Helix TeamHub is ready for Cluster deployment after fulfilling the hardware, firewall, inter-server connection, and operating system prerequisites.

Download the Helix TeamHub Cluster (hth-db and hth-web) packages specific to the host operating system from Perforce's package repositories. After uploading the packages to the server, install the dependencies and the packages itself.

Alternatively, use the Perforce's package repositories directly to install the packages instead of using the rpm -ivh or dpkg -i commands below.

Step 1: Installing Helix TeamHub DB

Upload the hth-db package to the server designated for Database role, install the dependencies and the package itself:

RHEL and CentOS

yum install cronie postfix bzip2
rpm -ivh hth-db-X.X.X-stable.el6.x86_64.rpm

Debian and Ubuntu

apt-get install sudo postfix cron bzip2
dpkg -i hth_db_X.X.X_amd64.deb

Step 2: Configuring Helix TeamHub DB

Every installation, upgrade, or configuration adjustment in Helix TeamHub will require the Helix TeamHub Control utility to reconfigure Helix TeamHub so the changes can take effect. To enable all required services after installation, run the following command:

sudo hth-ctl reconfigure

Step 3: Enabling Cluster Mode

In order for Helix TeamHub Web to be able to communicate to Helix TeamHub DB, configure MongoDB and Redis to accept authentication and remote connections.

Run the following command to create Helix TeamHub MongoDB admin and user credentials:

sudo su - hth
create_mongodb_users.sh

IMPORTANT: Remember the MongoDB credentials, they're also required to set up Helix TeamHub Web servers.

Next, reconfigure Helix TeamHub DB for Redis authentication. Open the Helix TeamHub Configuration file at /var/opt/hth/shared/hth.json add the following lines to the JSON file by replacing values in square brackets ([]):

{
  ... (snipped)
  "app" : {
    "is_cluster": true
  },
  ... (snipped)
  "redis": {
    "enable": true,
    "password": "[Choose Redis password]"
  },
  "mongodb": {
    "enable": true,
    "username": "[Enter username of Helix TeamHub MongoDB user]",
    "password": "[Enter password of Helix TeamHub MongoDB user]"
  },
  ... (snipped)
}

Finally, apply the changes by reconfiguring Helix TeamHub DB:

sudo hth-ctl reconfigure

Step 4: Installing Helix TeamHub Web

Upload the hth-web package to the server designated for Web application role, install the dependencies and the package itself:

RHEL and CentOS

yum install python-devel gettext python-docutils pam-devel cronie postfix libidn libidn-devel
rpm -ivh hth-web-X.X.X-stable.el6.x86_64.rpm

Debian and Ubuntu

apt-get install python-dev python-docutils gettext sudo libpam0g-dev postfix libidn11 libidn11-dev cron
dpkg -i hth_web_X.X.X_amd64.deb

Step 5: Connecting Helix TeamHub Web to Helix TeamHub DB

Note: Don't reconfigure Helix TeamHub Web yet. First, 'Turn' the server into a cluster node, and add Helix TeamHub DB credentials for it to connect to Helix TeamHub databases. Open the Helix TeamHub Configuration file at /var/opt/hth/shared/hth.json and add the following lines to the JSON file by replacing values in square brackets ([]):

{
  ... (snipped)
  "app" : {
    "is_cluster": true
  },
  ... (snipped)
  "backend": {
        "db_host": "[Enter IP address or hostname of Helix TeamHub DB server]",
        "db_port": "4002",
        "db_username": "[Enter username of Helix TeamHub MongoDB user]",
        "db_password": "[Enter password of Helix TeamHub MongoDB user]",
        "redis_host": "[Enter IP address or hostname of Helix TeamHub DB server]",
        "redis_password": "[Enter Redis password chosen on Helix TeamHub DB server]",
        "enable": true
  },
  ... (snipped)
}

Finally, apply the changes by reconfiguring Helix TeamHub Web:

sudo hth-ctl reconfigure

Step 6: Bootstrapping

At this stage Helix TeamHub is installed and running in Cluster mode, and can be accessed using hth as Company ID and admin as user ID and password (change them in company and user settings):

http://IP_ADDRESS_OF_YOUR_WEB_SERVER/login

However, the Helix TeamHub instance needs to have a valid license before accessing the dashboard. The license can be managed in Helix TeamHub Admin, see License for more information.

Helix TeamHub Admin can be used to further configure the instance (at minimum, configuring hostname and mail settings are recommended), see Bootstrap for more information.

Updated on: 5 October 2017