Docker - 1000 to 5000 Devices
Introduction
For a device count in the range of 1000 to 5000, it is recommended to operate the application and database servers separately.
The basic setup of the servers and the installation of the necessary software packages are described in detail in the General Docker Installation Guide →.
This guide describes the necessary configuration files with explanatory comments to make customization easier for you and supplements the general Docker installation guide.
Hardware Requirements and Setup
1x Application Server
- 2 CPU Cores
- 4 GB RAM
- Approximately 30 GB SSD Storage
1x Database Server
- 4 CPU Cores
- 8 GB RAM
- Approximately 100 GB SSD Storage
App Server
docker-compose.yml
services:
relution:
image: relution/relution:latest
restart: always
container_name: docker_relution
networks:
relution-network:
aliases:
- relution-docker
environment:
- TZ=Europe/Berlin
expose:
- '8080'
- '8099'
ports: # Externally exposed application port for testing // deactivate once the server is reachable under the URL
- '8080:8080' # Externally exposed application port for testing // deactivate once the server is reachable under the URL
volumes:
- './application.yml:/opt/relution/application.yml'
networks:
relution-network:
application.yml
relution:
system:
admin:
password: $Placeholder # Set initial password here and change it in the portal after the first login!
email: $Placeholder # Alternative to username "Admin" and for resetting the password
server:
externalURL: https://$Placeholder # Replace with the URL under which the server will be reachable. Always starts with https://
database:
type: mariadb
url: jdbc:mariadb://$Placeholder:3306/relution?useServerPrepStmts=true # IP, FQDN, or URL of the database server with port specification. The port will be further configured on the DB side in the guide.
username: relution # Database username
password: $Placeholder # Password of the relution database = MYSQL_PASSWORD
The password from the application.yml will be needed again later for the database configuration in the docker-compose.yml
DB Server
docker-compose.yml
services:
mariadb:
image: mariadb:lts
restart: always
container_name: docker_mariadb
networks:
relution-network:
aliases:
- mariadb-docker
environment:
- TZ=Europe/Berlin
- MYSQL_DATABASE=relution
- MYSQL_ROOT_PASSWORD=$Placeholder # Root password for the database
- MYSQL_USER=relution
- MYSQL_PASSWORD=$Placeholder # Password of the relution database = MYSQL_PASSWORD
expose:
- '3306'
ports: # externally exposed database port that the application server must be able to reach
- '3306:3306' # externally exposed database port that the application server must be able to reach
volumes:
- 'mariadb:/var/lib/mysql'
- '/opt/relution/relution.cnf:/etc/mysql/conf.d/relution.cnf'
volumes:
mariadb:
networks:
relution-network:
relution.cnf
[mysqld]
collation-server=utf8mb4_general_ci
character-set-server=utf8mb4
max_allowed_packet=1G
innodb_file_per_table=1