A Java Spring Boot backend that runs the IT RPG platform.
In the past, I used to role-play on text-based platforms such as PBeM, IRC, Forum, and also on MUDs and MUSHs. Many of these games were based on the Nova platform, an RPG management system. Nova has no alternatives.
Today, that changes. Interative Tabletop aims to provide a variety of options for building an RPG game. The style I seek is a cross between a MUSH/MUD and PBeM.
- Retrieve, cache, and store user input and actions.
- Determine the outcome of events.
- Authorize user actions.
All of these can be installed with apt
if on Linux.
JDK: openjdk-18-jdk\
JRE: openjdk-18-jre
Optional: Maven ($ sudo apt install maven
on Ubuntu). This gives you access to the mvn cli
commands.
Recommended: Docker - If for some reason you don't want/can't install Java, all you really need
is Docker.
Docker Linux for amd64 systems:
If you get an error for i386 not being available, you can get rid of it by adding [arch=amd64] after the deb keyword in the docker source file.
Compiling: $ ./mvnw compile
This will skip packaging in a jar file, which isn't needed if you don't intend to distribute to other systems, which is prohibited by the license anyway.
Building: $ ./mvnw clean package
Newrelic is used as an APM (logging), and Maven will need to unzip its Java agent (to the target dir). If this fails, you may need to use sudo
Building: $ sudo ./mvnw spring-boot:build-image -Dspring-boot.build-image. imageName=<user>/interactive-tabletop
You will need to run with sudo, or it will fail. It will not work with rootless. If you require the use of rootless Docker, then you'll need to set up a Dockerfile and use the regular Docker build command, or another build plugin that will let you use rootless. The guide for current Spring Boot Dockerfile is about 25% down under Spring Boot Layer Index
Maven Spring has an internal Dockerfile, so you don't need one. This will tag the build, but you don't need a Docker username. Replace with a moniker of your choice (or your Docker user if you have a hub already). If you create a Docker Hub account, then it should be the same name you used for the tag.
If you want to use profiles, then you should set this before running:
$ export SPRING_PROFILES_ACTIVE=dev|test|prod
Build and run: $ ./mvnw spring-boot:run
Run the jar: $ java -jar target/*.jar
Running with Docker (after building): $ sudo docker run -p 8080:8080 -t <user>/interactive-tabletop
Simply fork, and create a pull request.