Skip to content

A easy to install set of Table Top RPG Tools to help DM

License

Notifications You must be signed in to change notification settings

wushin/ttrpg-tools

Repository files navigation

License: CC BY 3.0 License: GPL v2

TTRPG Tools

About

  • A easy to install set of Table Top RPG Tools to help DM

    • Dungeon Revealer - Uses images to display dungeon and battle maps with fog of war
    • Improved Initiative - Combat tracker for Dungeons and Dragons (D&D) 5th Edition
    • Paragon - Configurable DM screen to use when running a tabletop RPGs
  • Other Software/Services Used

    • Docker & Docker-compose - Package Software into Standardized Units for Development, Shipment and Deployment
    • Terraform - An open-source infrastructure as code software tool
    • Let's Encrypt - A free ssl service
    • MongoDB - A general purpose, document-based, distributed database
    • AWS - Amazon Cloud Services

Prerequisites:

Initializing

  • Clone recursively

    • git clone --recursive (git 1+)
    • git clone --recurse-submodules (git 2+)
  • Copy over the .env.sample to .env and configure your settings.

  • AWS Build

  • Local Build

    • You can build using make, bash or Manually. Only one method needs to be used.
      • Make build
        • make build
      • Scripted Build
        • bash set-up.sh build
      • Manual Build
        • Build and Bring the docker-compose environment up
          • sudo docker-compose up -d --build
        • Then create or update your ssl certs
          • sudo docker exec nginx bash /var/www/certbot.sh
    • If you want to use localhost or the machine's IP add entries into your hosts file or DNS.
      • Example using localhost:
127.0.0.1	localhost dungeon-revealer.localdomain improved-initiative.localdomain paragon.localdomain
  • Localhost and SSL
    • Let's Encrypt SSL does not work with localhost as Let's Encrypt needs to hit a publically accessiable IP and hostname.
    • The default SSLs generated by nginx can work if you accept them and add them to your browser.

Env file options

  • DOMAIN - The domain all the hosts will bind too
  • DOMAIN_EMAIL - The Email address Let's Encrypt will notify you when the ssl is about to expire
  • DR_HOST - The hostname for Dungeon Revealer
  • DR_HOST_CN - The hostname for Dungeon Revealer
  • II_HOST - The hostname for Improved Initiative
  • II_HOST_CN - The hostname for Improved Initiative
  • PA_HOST - The hostname for Paragon
  • PA_HOST_CN - The hostname for Paragon
  • SSL - nossl to not use ssl and ssl to use ssl
  • HTACCESS - yes to set-up auth with separate player and gm password and no to not set-up auth
  • HT_USER - The name the players will use to login
  • DR_USER_PASS - The password the players will use to login
  • HT_DM_USER - The name the DM will use to login
  • DR_DM_PASS - The password the DM will use to login
  • MONGO_INITDB_ROOT_USERNAME - Name for root user of Mongo db
  • MONGO_INITDB_ROOT_PASSWORD - Password for root user of Mongo db
  • RESOLVER - 127.0.0.11 for Docker Build or 10.0.0.2 for AWS Build

Scripts

  • make install, make build, bash set-up.sh build
    • Builds the environment
  • make restart, bash set-up.sh restart
    • Restarts all built containers
  • make ssl, bash set-up.sh ssl
    • Runs the certbot script
  • make destroy, bash destroy.sh
    • This script will prompt you to:
      • Stop all containers
      • Destroy all containers
      • Destroy all Volumes

Working in containers

  • Login to container
    • sudo docker exec -it [<container_hostname>] bash
  • Get logs of container
    • sudo docker-compose logs -f [<container_name>]
  • Show all containers
    • sudo docker-compose ps
  • Build and start containers
    • sudo docker-compose up -d --build
  • Stop all containers
    • sudo docker-compose kill
  • Delete inactive containers
    • sudo docker system prune -a -f
  • Remove volumes
    • sudo docker volume prune -f