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

compose.yaml

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
    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: postgresql
    url: jdbc:postgresql://$Placeholder:5432/relution?currentSchema=public # 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 = POSTGRES_PASSWORD

The password from the application.yml will be needed again later for the database configuration in the compose.yaml

DB Server

compose.yaml

services:
  database:
    image: postgres:18
    restart: always
    container_name: docker_database
    networks:
      relution-network:
        aliases:
          - database-docker
    environment:
      - TZ=Europe/Berlin
      - POSTGRES_DB=relution
      - POSTGRES_USER=relution
      - POSTGRES_PASSWORD=$Platzhalter # Password of the relution database = POSTGRES_PASSWORD
    expose:
      - "5432"
    ports: # externally exposed database port that the application server must be able to reach
      - "5432:5432" # externally exposed database port that the application server must be able to reach
    volumes:
      - 'postgresql:/var/lib/postgresql'

volumes:
  postgresql:

networks:
  relution-network: