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
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.