Run it as a service
fuseraft-web listens on http://localhost:5000 by default, so only its own machine can reach it. To serve a team, run it as a service and put a TLS reverse proxy in front of it.
systemd
Section titled “systemd”Create a dedicated user, so agents can reach only that user’s files:
sudo useradd --system --create-home --home-dir /var/lib/fuseraft-web fuseraft-websudo mkdir -p /opt/fuseraft-websudo tar -xzf fuseraft-web-<version>-linux-x64.tar.gz -C /opt/fuseraft-webInstall the fuseraft CLI where that user can run it. Then create /etc/systemd/system/fuseraft-web.service:
[Unit]Description=fuseraft-webAfter=network.target
[Service]User=fuseraft-webWorkingDirectory=/opt/fuseraft-webExecStart=/opt/fuseraft-web/fuseraft-webEnvironment=ASPNETCORE_URLS=http://127.0.0.1:5000Environment=ASPNETCORE_FORWARDEDHEADERS_ENABLED=trueEnvironment=Fuseraft__Binary=/usr/local/bin/fuseraft# Environment=Auth__Oidc__ClientSecret=… (or an EnvironmentFile= with mode 600)Restart=on-failure# Sessions and chats run in relay processes that outlive the server (see [Restarts](/fuseraft-web/deploy/restarts/)); stop only the server itself.KillMode=process
[Install]WantedBy=multi-user.targetsudo systemctl enable --now fuseraft-webjournalctl -u fuseraft-web | grep setup # the first admin's setup linkOr create the first admin from a shell, as the service user, so it writes the same data directory:
sudo -u fuseraft-web /opt/fuseraft-web/fuseraft-web users add alice --adminWithout a desktop session, secret-tool has no keyring to use, so API keys fall back to mode-600 files in each account’s fuseraft home.
Upgrading
Section titled “Upgrading”Stop the service, unpack the new archive over /opt/fuseraft-web (keep your appsettings.json edits, or use environment variables instead), and start it. Keep the fuseraft CLI on a release that speaks the same wire protocol version; a mismatch is reported in the UI and the log. Sessions and chats already running keep their relays from the old binary until they end, and the new server takes them over.