Kalgoorlie Retro Docs

Documentation for the Kalgoorlie Retro BBS, its games and servers

User Tools

Site Tools


doorhub:hub_linux

Hub on Linux

The hub must run as the same user as Synchronet, because it makes users with Synchronet's jsexec. These steps assume that user is sbbs and Synchronet is in /sbbs. First prepare the door BBS.

Install

Unzip doorhub-0.1.0-linux-x64.zip (or -linux-arm64) and:

sudo mkdir /opt/doorhub
sudo cp doorhub /opt/doorhub/
sudo chown -R sbbs: /opt/doorhub
sudo chmod 700 /opt/doorhub
sudo ln -s /opt/doorhub/doorhub /usr/local/bin/doorhub
sudo -u sbbs doorhub init

init makes /opt/doorhub/hub.json and the host key, and prints the key's fingerprint:

Created /opt/doorhub/hub.json
Host key: SHA256:dJxkWMLh0S5bYYye72Yp0GsnfuJ0PZWjTMkXCcb9YGg
Next: doorhub set public_host <name>, add doors and BBSes, then doorhub serve

Give that fingerprint to member sysops so they can check it the first time their connector connects.

Configure

If Synchronet isn't in /sbbs:

sudo -u sbbs doorhub set jsexec /path/to/sbbs/exec/jsexec
sudo -u sbbs doorhub set sbbs_ctrl /path/to/sbbs/ctrl

Name the hub and set the address members will use:

sudo -u sbbs doorhub set hub_name "Example Door Hub"
sudo -u sbbs doorhub set public_host hub.example.com

Add games (Games) and members (Member BBSes). All settings are on the Settings page.

Run

Try it in the foreground (Ctrl+C stops it):

sudo -u sbbs doorhub serve
2026/11/09 11:30:36 Example Door Hub 0.1.0 listening on :2022 (key SHA256:dJxkWMLh0S5b...)

As a service

The package has doorhub.service. Edit User and Group (and the paths, if you used another folder):

[Unit]
Description=Door Hub (shared door games server)
After=network.target sbbs.service
 
[Service]
Type=simple
User=sbbs
Group=sbbs
Environment=DOORHUB_DIR=/opt/doorhub
WorkingDirectory=/opt/doorhub
ExecStart=/opt/doorhub/doorhub serve
Restart=always
RestartSec=10
 
[Install]
WantedBy=multi-user.target
sudo cp doorhub.service /etc/systemd/system/
sudo systemctl daemon-reload
sudo systemctl enable --now doorhub
systemctl status doorhub
journalctl -u doorhub -f        # the log

To keep a log file as well, add these two lines under [Service]:

StandardOutput=append:/opt/doorhub/doorhub.log
StandardError=append:/opt/doorhub/doorhub.log

Day to day

The admin commands work while the hub is running, and changes apply at once (except listen). Run them as the hub's user so files keep the right owner:

sudo -u sbbs doorhub bbs list
sudo -u sbbs doorhub door list

The folder is /opt/doorhub unless you add -d folder or set the DOORHUB_DIR environment variable.

Updating

sudo cp doorhub /opt/doorhub/doorhub.new
sudo mv /opt/doorhub/doorhub.new /opt/doorhub/doorhub
sudo systemctl restart doorhub

A restart ends games in progress, so pick a quiet time. Connectors reconnect by themselves.

Firewall

If the machine runs a firewall, allow the hub's port. For ufw: sudo ufw allow 2022/tcp. See Internet and security for the router side.

doorhub/hub_linux.txt · Last modified: by 127.0.0.1