Armorium Host
A small server for your group. It holds everyone's accounts, keeps their lists in sync between devices, and gives them all the same game data. Players use it from a browser or from the Armorium apps.
- What you need
- First run
- Inviting players
- Adding game data
- The admin tool
- Settings
- Running it as a service
- HTTPS and phones
- Backups
What you need
- A Windows or Linux machine that stays on while your group plays. A spare PC or a small home server is plenty.
- Node.js 22.5 or newer (24 LTS recommended) from nodejs.org. Nothing else: the host has no other dependencies.
First run
- Unpack the download anywhere you like, for example
C:\Apps\Armoriumor/opt/armorium. - Start it. On Windows, double-click
start-server.bat. On Linux, or in any terminal in that folder:npm run server - Open
http://localhost:8787on the same machine and create an account. The first account made on that machine becomes the admin. - The host prints its address, port and invite code when it starts. You can find them again under your username → Server.
Inviting players
Give your players the host's address and the invite code. They can either:
- open the address in a browser and create an account, or
- in the Armorium app, go to Settings → Connect to a server and enter the address, port and invite code.
Lists already on a player's device are added to their account when they connect. Signing out leaves their lists and data on the device.
Adding game data
Data you add to the host is what everyone signed in to it sees. It accepts BattleScribe files (.gst, .cat, .bsr, or a .zip of them), New Recruit exports and Armorium bundles (.armorium.json).
npm run admin -- data add <file or folder>
Admins can also add data in the app, under their username → Server, and correct it with the Data Builder. Edits are saved on the host with a history that can be undone, and everyone gets them the next time their app loads the data.
You're responsible for the data you host. Only share content you have the right to share, and keep the host private (invite-only) if in doubt.
The admin tool
Everything can be done without a screen, from a terminal in the host's folder:
npm run admin -- status name, access, invite code, accounts, data
npm run admin -- access invite new accounts need the invite code (the default)
npm run admin -- access open anyone who can reach the host can make an account
npm run admin -- invite new a new invite code (the old one stops working)
npm run admin -- add-user Sam --admin make an account from here
npm run admin -- data add <files/folder> add game data
npm run admin -- help everything else
Settings
Copy apps/server/config.example.json to apps/server/config.json and edit it, or set the same names as environment variables.
name: what the host calls itselfportandhost: where it listens (port 8787 by default)access:inviteoropen. Setting it here fixes it, so the admin tool can't change it.inviteCode: fixes the invite codewebApp:falseto serve only accounts and data, without the web app
Running it as a service
Windows
The simplest way to have it start with Windows is NSSM:
nssm install Armorium "C:\Program Files\nodejs\node.exe" "C:\Apps\Armorium\apps\server\server.mjs"
nssm set Armorium AppDirectory C:\Apps\Armorium
nssm start Armorium
Linux
A systemd unit, saved as /etc/systemd/system/armorium.service:
[Unit]
Description=Armorium Host
After=network.target
[Service]
WorkingDirectory=/opt/armorium
ExecStart=/usr/bin/node apps/server/server.mjs
Restart=on-failure
User=armorium
[Install]
WantedBy=multi-user.target
Then sudo systemctl enable --now armorium.
HTTPS and phones
Phones need HTTPS to install the web app on the home screen. Two good options:
- Tailscale (private, recommended): install Tailscale on the host and run
tailscale serve --bg 8787. Share the machine with your players from the Tailscale admin console; they install Tailscale and usehttps://<machine>.<your-tailnet>.ts.net. Nothing is exposed to the internet. - Your own domain: put Caddy in front, with a Caddyfile of
armory.example.com { reverse_proxy localhost:8787 }. Caddy gets the certificate automatically. Forward ports 80 and 443 to the host.
On a phone, open the HTTPS address, sign in, then choose Add to Home Screen (iPhone: Share menu; Android: browser menu → Install app).
Backups
Copy two folders regularly:
apps/server/var/: accounts, synced lists and the edit historydata/build/: the game data, including Data Builder edits