Skip to main content

Installation

This document provides setup instructions for Enterprise, self-hosted installations of Tines.

Prerequisites

Self-hosted installations of Tines require a host machine with the following minimum specifications:

  • 8GB RAM, 60GB HDD, 2 CPUs.
  • Docker and docker-compose should be installed on the host machine.

Downloading install package

Visit the /admin/upgrade page on a cloud tenant to download install packages. The file will be a zip archive named as follows: tines_<build id>.zip.

  • If you are visiting the page for the first time, the Tines support team may have to enable the downloads for you.
  • If you don't have an existing cloud tenant, you can sign up for a free Community Edition tenant at tines.com.

Unzip the archive and upload it to the host machine where Docker and Docker Compose are installed.

The install package contains the following files:

Tines self-hosted install package files

FilenameDescription
docker-compose.ymlConfiguration file for Docker Compose
.env.tmplTines environment setting. Needs to be edited.
postgres.tarPostgres docker image
redis.tarRedis Docker image
tines-app.tarTines application Docker image
tines-nginx.tarTines nginx docker image
upgrade.shScript to upgrade between Tines versions
setup.shScript to install Tines

Preparing installation

Creating installation directory

Create a directory for the Tines installation to live, for example /opt/tines:

sudo mkdir /opt/tines

Move files to installation directory

Unzip the installation package and move all files to the installation directory:

unzip tines_<build_id>.zip

cp -rT tines_<build_id>/ /opt/tines

Edit .env.tmpl file

The .env file contains Tines environment variables and is used to configure the Tines instance. Open the .env.tmpl file using a text editor. There are three sections that need to be updated to reflect your environment.

  • Tenant Configuration Enter basic information about the tenant, including its name, seed user details (the first user account that will be created) and domain (the FQDN).
  • Email Configuration Enter SMTP server details. Tines will use these when sending emails.

Here's an example of those parts of a configured .env file:

#############################
# Required: Tenant Configuration #
#############################

# A human friendly identifier for this instance of Tines, e.g. your company name:
TENANT_NAME=company_name
# Company name and stack name (eg. tines_prod). This is used to identify your tenant's telemetry data,
# if you have enabled that feature.
TELEMETRY_ID=company_name_prod

# This will be the first user to be created and get invited to this Tines instance:
SEED_EMAIL=alice@example.com
SEED_FIRST_NAME=Alice
SEED_LAST_NAME=Smith

# The domain that you ultimately want your Tines installation to be accessible at in your browser.
# This should match the SSL certificate installed into your tines-nginx container.
DOMAIN=tines.example.com
# This should match the port that you use to access the Tines UI.
# Unless you have chosen a custom port, you should use 443 as typical for HTTPS.
PORT=443

# This should be set to a random 128 character string to ensure security for your installation.
# Changing this value may force users to log in again.
# You can generate a value for this by running: openssl rand -hex 64
APP_SECRET_TOKEN=__SET_YOUR_SECRET_TOKEN__

#############################
# Required: Email Configuration #
#############################
# Outgoing email settings. This must be configured correctly in order for the invite email
# to be sent to the first user.
#
# To use Gmail or Google Apps, put your Google Apps domain or gmail.com
# as the SMTP_DOMAIN and your Gmail username and password as the SMTP_USER_NAME and SMTP_PASSWORD.
#
# If you have trouble with port 587 on Gmail, you can also try setting
# SMTP_AUTHENTICATION to login and the SMTP_PORT to 465.

SMTP_DOMAIN=mail.example.com
SMTP_USER_NAME=tines_smtp
SMTP_PASSWORD=...
SMTP_SERVER=smtp.example.com
SMTP_PORT=465
SMTP_AUTHENTICATION=login
SMTP_ENABLE_STARTTLS_AUTO=true

# This address will be the sender for all emails from this Tines instance:
EMAIL_FROM_ADDRESS=Example Support <support@example.com>

After updating the file, save it as .env.

Uploading SSL/TLS cert and key

Upload a SSL/TLS certificate file and corresponding key file to the installation directory. These files should be named tines.crt and tines.key.

Run setup script

Your installation directory should now contain the following files:

  • docker-compose.yml
  • .env (updated and renamed)
  • postgres.tar
  • redis.tar
  • tines-app.tar
  • tines-nginx.tar
  • tines.crt
  • tines.key
  • upgrade.sh
  • setup.sh

Use the following command to run the Tines setup script:

sh setup.sh

Updating tenant limits

Your tenant will have some default limits set based on the Teams plan. Admin users can update these to the correct limits for your plan by visiting /admin/configuration in the app.

Restarting Tines

If you need to restart Tines, for example, after modifying the env file, use the following command:

docker-compose down && docker-compose up -d

Troubleshooting

If Tines did not start after running docker-compose up, check the console for relevant errors. Contact support@tines.io with the output of docker-compose logs.