Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

The required resources vary depending on the scenario. For orientation purposes, here are some recommendations for the use of internal ticket synchronization:

Small data volume 
< 300 transactions/h

Medium data volume 
< 1000 transactions/h

Large data volume 
>= 1000 transactions/h

CPU

x64 >= 2 Cores

x64 >= 4 Cores

x64 >= 4 Cores

Memory

>= 4 GB

>= 4 GB

>= 8 GB

Operating system

Windows 10 or Linux

Windows 10, Windows Server 2016 or Linux

Windows 10, Windows Server 2016 or Linux

Additional components

.NET 5.0 (incl. ASP.NET Core 5.0)

.NET 5.0 (incl. ASP.NET Core 5.0)

.NET 5.0 (incl. ASP.NET Core 5.0)

For small and medium-sized installations, you may use an existing (virtual) machine with sufficient capacity.

...

To create the local user, enter the following commands in a PowerShell with administrator privileges:

Code Block
languagepowershell
$accountName = "ConnectService"

...


New-LocalUser -Name $accountName

After The user has been successfully created, it must be assigned the permission to log in as a Windows service. Press the + R keys and enter secpol.msc in the following input window. Now a window will be displayed with a tree structure on the left side. There open the node "Local Policies" and then click on the node "Assign user rights". In the right half of the screen, select the "Log on as service" entry via double-click.

...

Now the new user must be allowed access to the folder where the application was installed. In this example, the folder "C:\Program Files\GalileoGroup\Connect" is used. To do this, enter the following commands in a PowerShell with administrator privileges:

Code Block
languagepowershell
$accountName = "ConnectService"

...


$fullPath = "C:\Program Files\GalileoGroup\Connect"

...


$User = Get-LocalUser -Name $accountName

...



if($User -ne $Null) {

...


  $acl = Get-Acl $fullPath -ea Stop

...


  $FileSystemRights = [System.Security.AccessControl.FileSystemRights]"Modify"

...


  $AccessControlType = [System.Security.AccessControl.AccessControlType]::Allow

...


  $InheritanceFlags = [System.Security.AccessControl.InheritanceFlags]"ContainerInherit, ObjectInherit"

...


  $PropagationFlags = [System.Security.AccessControl.PropagationFlags]"InheritOnly"

...


  
  $AccessRule = New-Object System.Security.AccessControl.FileSystemAccessRule ($User.SID, $FileSystemRights, $InheritanceFlags, $PropagationFlags, $AccessControlType)

...


  $acl.AddAccessRule($AccessRule)

...


  
  Set-Acl -Path $fullPath -AclObject $acl -ea Stop

...


  Write-Host ("Permission granted at {0}" -f $fullPath)

...


}

Registering the Connect Server as a Windows Service

Registration can also be accomplished using PowerShell. Here is an example which can be used as a template:

Code Block
languagepowershell
New-Service -Name ConnectServer

...

 -BinaryPathName "C:\Program Files\GalileoGroup\Connect\GalileoGroup.Connect.Server.Backend.exe".

...

 -Credential MYHOST\ConnectService -Description "Connect Server Service"

...

 -DisplayName "Connect Server" -StartupType Manual

Deregistering the Windows Service

If you want to remove the Windows service, you can do this with the following command in a shell with administrator privileges (please replace “<ServiceName>” with the name of the desired service):

Code Block
languagepowershell
sc delete <ServiceName>

Connect Server Configuration

...

Since CentOS does not have the library for developing international Unicode components installed by default, you may have to install it manually. Proceed as follows:

Code Block
languagebash
sudo yum install libicu

Preparations for Debian

Since Debian does not have the library for developing international Unicode components and curl installed by default, you may have to install them manually. Proceed as follows:

Code Block
languagebash
sudo apt update

...


sudo apt install libicu-dev

...


sudo apt install curl

Creating the user

It is recommended to create a separate user for the execution of the Connect Server.

The following example shows the creation of a new user with the name "connect":

Code Block
languagebash
CONNECT_USER=connect

...



sudo useradd -m $CONNECT_USER

...


sudo passwd $CONNECT_USER

Installing the ASP.NET Core 5.0 Runtime

...

Enter the following commands to download and execute the installation script:

Code Block
languagebash
CONNECT_USER=connect

...


su - $CONNECT_USER

...



DOTNET_ROOT=$HOME/.dotnet

...


DOTNET_INSTALL_URI=https://dot.net/v1/dotnet-install.sh

...


DOTNET_CHANNEL=5.0

...


DOTNET_RUNTIME=aspnetcore

...



curl -sSL $DOTNET_INSTALL_URI | bash /dev/stdin --channel $DOTNET_CHANNEL --runtime $DOTNET_RUNTIME

...

 --install-dir $DOTNET_ROOT

Alternatively, you can download the required package for Linux from https://dotnet.microsoft.com/download/dotnet/5.0 , place it in the home directory of the user created for Connect, and extract it as follows:

Code Block
languagebash
CONNECT_USER=connect

...


su - $CONNECT_USER

...



DOTNET_ROOT=$HOME/.dotnet

...


DOTNET_ARCHIVE=$HOME/aspnetcore-runtime-5.0.4-linux-x64.tar.gz

...



mkdir -p $DOTNET_ROOT

...


tar zxf $DOTNET_ARCHIVE -C $DOTNET_ROOT

...


rm $DOTNET_ARCHIVE

For general information about installing the .NET Core Runtime, see the following link:

...

To install the Connect Server, copy the Connect Server archive and the custom configuration archive to the home directory of the user you created for Connect. Follow the steps below to install the software (replace the name config.tar.gz highlighted in blue) with the name of the archive of configuration data provided for your use:

Code Block
languagebash
CONNECT_USER=connect

...


su - $CONNECT_USER

...



CONNECT_ROOT=$HOME/connect

...


CONNECT_SERVER_ARCHIVE=$HOME/GalileoGroup.Connect.Server.Backend.tar.gz

...


CONNECT_CONFIG_ARCHIVE=$HOME/config.tar.gz

...



mkdir -p "$CONNECT_ROOT"

...



tar zxf "$CONNECT_SERVER_ARCHIVE" -C "$CONNECT_ROOT"

...


rm "$CONNECT_SERVER_ARCHIVE"

...



tar zxf "$CONNECT_CONFIG_ARCHIVE" -C "$CONNECT_ROOT"

...


rm "$CONNECT_CONFIG_ARCHIVE"

Connect Server Configuration

...

To start the Connect Server in the foreground, proceed as follows:

Code Block
languagebash
CONNECT_USER=connect

...


su - $CONNECT_USER

...



DOTNET_ROOT=$HOME/.dotnet

...


CONNECT_ROOT=$HOME/connect

...



cd "$CONNECT_ROOT"

...



"$DOTNET_ROOT/dotnet" GalileoGroup.Connect.Server.Backend.dll

Starting the Connect Server in background

To start the Connect Server in the background, proceed as follows:

Code Block
languagebash
CONNECT_USER=connect

...


su - $CONNECT_USER

...



DOTNET_ROOT=$HOME/.dotnet

...


CONNECT_ROOT=$HOME/connect

...



LOG_DIR=$CONNECT_ROOT/log

...


LOG_FILE="$LOG_DIR/log-`date "+%Y%m%d-%H%M%S"`.txt"

...



mkdir -p $LOG_DIR

...



cd "$CONNECT_ROOT"

...



eval "nohup "$DOTNET_ROOT/dotnet" GalileoGroup.Connect.Server.Backend.dll >"$LOG_FILE" 2>&1 &"

...



echo "- PID: $!"

...


echo "- Output: $LOG_FILE"

We recommend creating a script for this action. You can find corresponding templates in the Scripts/Templates folder.

...

To stop all Connect Servers running in the background, proceed as follows::

Code Block
languagebash
CONNECT_USER=connect

...


su - $CONNECT_USER

...



DOTNET_ROOT=$HOME/.dotnet

...



ps -af | awk "{ if (\$8 == \"$DOTNET_ROOT/dotnet\" && \$9 == \"GalileoGroup.Connect.Server.Backend.dll\") { printf \"%s\n\", \$2} }" | while read pid

...


do

...


  echo "Stopping process with PID $pid."

...


  kill $pid

...


done

We recommend creating a script for this action. You can find corresponding templates in the Scripts/Templates folder.

...

As a basis for the creation of the image you need a Linux distribution and the current version of the ASP.NET Core 5.0 runtime environment. A corresponding image is provided by MicrosoftMicrosoft provides a corresponding image, but it may also be created according to your own requirements.

...

Before creating the image, the Dockerfile can be customized to your own requirements. The following example shows a Dockerfile for creating a container with the Debian based ASP.NET Core runtime, additional network tools, an editor, and the Connect Server:

Code Block
FROM http://mcr.microsoft.com/dotnet/aspnet

...



LABEL Description="This image contains the Connect! Server." Vendor="Galileo Group AG" Version="2021.0510"

...



RUN apt -y update

...


RUN apt -y upgrade

...


RUN apt -y install net-tools

...


RUN apt -y install iputils-ping

...


RUN apt -y install vim

...



COPY . /connect/app

...



RUN rm -r /connect/app/Certificates

...



VOLUME /connect/data

...



WORKDIR /connect/app

...



ENV Connect__Server__Paths__RepositoryPath=/connect/data/repositories

...


ENV Connect__Server__Paths__CertificatePath=/connect/data/certificates

...



ENTRYPOINT ["dotnet", "GalileoGroup.Connect.Server.Backend.dll", "settings=/connect/data/appsettings.json?"]

...



EXPOSE 80/tcp

...


EXPOSE 443/tcp

To create the Docker image, start a shell and change to the working directory using the cd command. Execute the following command to create an image with the name "connect":

Code Block
languagebash
docker build -t connect .

In this example, the web server uses the default configuration inside the Docker image and can be reached via HTTP on port 80. Externally, any port can be used for the container.

...

In the following, a container with the name "myconnect" is created, which is based on the image "connect" and uses port 8000 for access via HTTP. To resolve server names, a DNS server must be specified for the container (in this example, 192.168.1.110). Create and start the container using the following command:

Code Block
languagebash
docker run -d -v c:\connect\data:/connect/data -p 8000:80 --dns 192.168.1.110 --name myconnect connect

If required, you may add a DNS suffix be specifying Parameter --dns-search <suffix> before parameter –name.

...