Skip to content

Instantly share code, notes, and snippets.

@kare
Last active May 21, 2023 13:16
Show Gist options
  • Star 2 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save kare/a0615a2a4a83491d422ac7cc75934553 to your computer and use it in GitHub Desktop.
Save kare/a0615a2a4a83491d422ac7cc75934553 to your computer and use it in GitHub Desktop.
Systemd unit file Streamr Broker Node

Streamr Broker Node Systemd Unit file

  1. Place the file to directory /etc/systemd/system/
  2. Customise line 21 --network streamr \ to match your Docker network or remove it to use the default network (not recommended)
  3. Customise line 25 --volume /host/broker/config/dir:/root/.streamr:rw \ replace /host/broker/config/dir with the directory of you broker-config.json file.
  4. Current configuration exposes WebSocket plugin port 7170 to public internet. You may open other ports for plugins if you like. For example to publish MQTT port add: --publish 1883:1883/tcp \
  5. Run sudo systemctl enable /etc/systemd/system/streamr-broker-node.service
  6. Run sudo systemctl start streamr-broker-node
  7. Check logs with sudo journalctl -xefu streamr-broker-node or if you have pino-pretty installed use sudo journalctl -xefu streamr-broker-node | pino-pretty -t
[Unit]
Description=Streamr Broker Node
After=docker.service
Requires=docker.service
[Service]
TimeoutStartSec=0
Type=simple
Restart=always
RestartSec=5
ExecStartPre=-/usr/bin/docker stop --time 0 %N
ExecStartPre=-/usr/bin/docker rm --force %N
ExecStart=/usr/bin/docker run \
--name %N \
--hostname %N \
--security-opt no-new-privileges=true \
--security-opt apparmor=docker-default \
--log-driver journald \
--pull always \
--restart unless-stopped \
--network streamr \
--memory 250M \
--memory-swap 300M \
--cpus 2 \
--volume /host/broker/config/dir:/root/.streamr:rw \
--publish 7170:7170/tcp \
--env NODE_ENV=production \
--env LOG_LEVEL=info \
streamr/broker-node:latest
ExecStop=/usr/bin/docker stop --time 5 %N
[Install]
WantedBy=multi-user.target
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment