The included docker-compose.yml manifest builds the Discord bot, API server,
and web interface container images from a set of subdirectories populated by
a utility script.
realm/
├─ docker-compose.yml
├─ scripts/ <-- helper scripts
├─ rpgbot/ <-- discord-bot repo
├─ rpgserver/ <-- api-server repo
└─ rpgweb/ <-- web-interface repo
Before building the service images, you will need the following configuration files. There are example versions of each in the same directory.
rpgbot/config.toml- Bot configuration filerpgweb/src/.env- Web interface build environment file
You must also have a $HOME/.npmrc file with credentials for
npm.pkg.github.com in order to build the web image in the stack. (See:
Authenticating with a personal access token)
Clone the repositories:
scripts/cloneBuild the service images:
docker compose buildStart the services:
# remove -d flag to run in foreground
docker compose up -dPull repository updates:
scripts/updateBuild updated service images:
docker compose buildRestart affected containers:
docker compose up -dCopy the development override configuration:
cp docker-compose.dev.yml docker-compose.override.ymlCode updates should be reflected after a service restart without needing to rebuild containers. However, you will need to rebuild static HTML manually:
cd rpgweb
npm ci # only need to do this when dependencies change
npm run build:local