← Grand Armorium

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.

Windows soon Linux soon

What you need

First run

  1. Unpack the download anywhere you like, for example C:\Apps\Armorium or /opt/armorium.
  2. Start it. On Windows, double-click start-server.bat. On Linux, or in any terminal in that folder:
    npm run server
  3. Open http://localhost:8787 on the same machine and create an account. The first account made on that machine becomes the admin.
  4. 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:

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.

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:

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: