Skip to main content

TSE server setup

Host system setup

install debian stable on the server that hosts the TSE USB sticks

create tse user

centos7 requires cgroupsv1, (if you use centos10, this might no longer be required...):

/etc/default/grub:

GRUB_CMDLINE_LINUX_DEFAULT="quiet systemd.unified_cgroup_hierarchy=false"

as root:

apt install incus
incus admin init --preseed <<- EOF
config: {}
networks:
- config:
ipv4.address: auto
ipv6.address: auto
description: ""
name: incusbr0
type: ""
project: default
storage_pools:
- config: {}
description: ""
name: default
driver: dir
profiles:
- config: {}
description: ""
devices:
eth0:
name: eth0
network: incusbr0
type: nic
root:
path: /
pool: default
type: disk
name: default
projects: []
cluster: null
EOF

Container setup

perform once for each USB stick

as user:

incus launch images:centos/10-Stream tse1
incus network set incusbr0 ipv4.address 10.0.0.1/24

download tse webservice RPM file

Find path of first TSE in /dev/serial/by-path/

incus config device add tse1 ttyACM0 unix-char mode=0666 path=/dev/ttyACM0 source=/dev/serial/by-path/pci-0000:00:1d.0-usb-0:1.2:1.0
incus config device override tse1 eth0 ipv4.address=10.0.0.101
incus config device add tse1 dieboldjson proxy listen=tcp:0.0.0.0:10001 connect=tcp:127.0.0.1:10001
incus file push dn-tse-webservice-1.19.2-9.x86_64.rpm tse1/tmp/tse-webservice.rpm
incus exec tse1 rpm -i /tmp/tse-webservice.rpm
incus config set tse1 boot.autostart true

Connecting to container:

incus shell tse1

In container tse1: create /etc/systemd/system/dntse.service

[Unit]
Description=Diebold Nixdorf TSE Websocket
After=network.target

[Service]
ExecStart=/opt/dn/tse/_run.sh

[Install]
WantedBy=multi-user.target
incus exec systemctl enable --now dntse.service
incus exec systemctl start dntse.service

visit http://IP:10001/ for web interface