This is a website for our D&D group where we handle maps, character data and much more.
The frontend is exposed at https://fenice2.soulsbros.ch.
The website has a few integrations with some external services (100% self-hosted), which are not strictly required to run the website but might be needed for some parts of it:
- MongoDB database to store characters and campaigns. Required to browse, create, and edit characters and campaigns
- Keycloak OIDC identity provider to allow users to login and store their characters. Required to create and edit characters
- MinIO S3 storage to store files such as documents and sounds (optional)
- Gcal-API to easily fetch the date of our next session from our shared calendar (see steeven9/Gcal-API, optional)
- Home Assistant with the Alexa integration to announce whose turn it is in combat (optional)
- Node.js v22
- Yarn package manager
- Docker (if you want to run MongoDB locally)
# install dependencies
yarn install
# bootstrap local configuration
cp .env.example .env.local
Then adapt the values in the .env.local
file depending
on which external services you need (see "Dependencies" section).
# start DB
docker-compose up mongodb -d
# start frontend
yarn dev
Finally, open your browser and head to http://localhost:3000. The first load might take a while, so be patient!
If you want to load some characters and campaigns, there is some example data in the
mock_data
folder.
You will need a running MongoDB database and the MongoDB database tools
To load it in the MongoDB database, simply run the script:
cd mock_data
./load_data.sh
If you spot a bug or think there's a missing feature, feel free to open an issue on our GitHub page!
Before submitting a pull request, please check that the build is still passing even after the changes:
yarn build
Error logos by SAWARATSUKI
Art by rui
Dice logos by Zeno
And all our contributors here on GitHub:
(made with contributors-img)