Docker Compose Installation Guide

Installing the software

Requirements

https://docs.docker.com/compose/install/

Docker Engine 17.09.0+

Docker Compose 1.17.0+

Contents

  • .env - configured file

  • docker-compose.yml - Docker Compose file

  • backup.sh - backup initiation script

  • restore.sh - backup restore script

  • images.tar.gz - archive of Docker images (only in the offline installation archive)

Preparation

Before installation, you need to change the default values and secrets in the .env file.

Set the parameter vm.max_map_count=262144:

echo 'vm.max_map_count=262144' >> /etc/sysctl.conf
sysctl -p

For security reasons, we recommend blocking all incoming ports other than port 80 from accessing the user interface. Optionally, in order to service the system via ssh, open port 22 (it can be reassigned to a specific configuration).

Example for CentOS7 (will allow access to ports 80 and 22):

firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --zone=public --add-port=22/tcp --permanent
firewall-cmd --reload

Offline installation

This type of installation will help you install the product if the server is isolated from the internet and it is not possible to get a Docker image from public repositories. Unzip the contents of the offline installation archive to a folder, e.g. ~/testit.

If you are using Docker Compose version 1.20.0 or later, do the following:

cd ~/testit
docker load -i images.tar.gz
docker-compose -f docker-compose.yml --project-name prod up --detach --timeout 120

If you are using Docker Compose version 1.17.0-1.19.0, do the following:

cd ~/testit
docker load -i images.tar.gz
docker-compose -f docker-compose.yml --project-name prod up -d

Online installation

Unzip the contents of the online installation archive to a folder, e.g. ~/testit.

If you are using Docker Compose version 1.20.0 or later, do the following:

cd ~/testit
docker-compose -f docker-compose.yml --project-name prod up --detach --timeout 120

If you are using Docker Compose version 1.17.0-1.19.0, do the following:

cd ~/testit
docker-compose -f docker-compose.yml --project-name prod up -d

Creating backups

The product will be paused while a backup is being created. Do not create backups using sudo.

To create a backup, do the following:

chmod +x backup.sh
./backup.sh docker-compose.yml prod

The system will start once the process is complete. A backup archive will be created in the working directory. The format of the archive filename is: backup{day}{month}_{year}.tar. E.g. backup_21_05_2019.tar.

The script described above does not apply to external databases (when configuring and using them). For external databases, configure the backup process in a separate step (using standard PostgreSQL tools).

Restoring from a backup

The product will be paused while restoring from a backup. To restore from a backup, do the following:

chmod +x restore.sh
./restore.sh docker-compose.yml prod backup_21_05_2019.tar

The system will start once the process is complete.

Restarting the system

Use the following command to restart the system:

docker-compose -f docker-compose.yml --project-name prod restart --timeout 120

Fully clearing data

To fully delete the system and its data, do the following:

docker-compose -f docker-compose.yml --project-name prod down --volumes --timeout 120

System requirements

The product can be installed on a virtual machine.

Minimum requirements

Client side

  • Browser: Chrome 69+, Firefox 62+, Safari 12+

  • CPU: I3, 2 cores, 1 GHz or faster

  • GPU: Intel HD Graphics 520/550/620 or above

  • RAM: 4 GB

  • HDD/SSD: minimum 4 GB of free disk space

  • Net: 100 Mbit/s.

Server side

  • CPU: 4 server-class cores with virtualization support, 2.2 GHz or faster

  • RAM: 8 GB

  • SWAP: Disabled

  • HDD / SSD: minimum 100 GB

  • Net: 100 Mbit/s

Server side

  • CPU: 8 server-class cores with virtualization support, 2.2 GHz or faster

  • RAM: 12 GB

  • SWAP: Disabled

  • Net: 1 Gbit/s

  • HDD / SSD: minimum 100 GB, preferably using at least RAID-1

Optimal

Server side

  • CPU: 12 server-class cores with virtualization support, 2.2 GHz or faster

  • RAM: 24 GB

  • SWAP: Disabled

  • Net: 1 Gbit/s

  • HDD / SSD: minimum 300 GB, preferably using at least RAID-1