Table of Contents
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.
