Skip to content

labcabrera/rmu-api-core

Repository files navigation

RMU Engine Core API

License Rolemaster

Run in Postman

REST API for Rolemaster Unified Core services.

This project is part of RMU Online: https://github.com/labcabrera/rmu-platform

Warning
This application is an independent project developed by fans of Rolemaster Unified. It is not affiliated with, endorsed by, or licensed by Iron Crown Enterprises (ICE), the owners of the Rolemaster intellectual property. All Rolemaster trademarks, game systems, and materials are the property of Iron Crown Enterprises. This software is provided for personal, non-commercial use only. If you enjoy Rolemaster, please support the official publications and content from ICE.

Description

This API exposes endpoints to manage common entities used in the RMU ecosystem:

  • Realms

  • Races

  • Professions

  • Cultures

  • Skills (and categories)

  • Traits

  • Enumerations

and other related entities.

API Core Context System

Entities

In summary, the diagram of the main aggregates is as follows:

Class diagram

Quick Guide

This section describes the most important steps and environment variables to run and develop this API.

Requirements

  • Docker (recommended 20.10+)

  • Node.js (for local development): recommended 18+

  • npm or pnpm

Local configuration

Configuration is loaded from the .env file at the repository root (used by ConfigModule).

A sample configuration is as follows:

PORT=3001
RMU_MONGO_CORE_URI=mongodb://user:pass@localhost:27017/rmu-core?authSource=admin
RMU_KAFKA_CLIENT_ID=rmu-api-core
RMU_KAFKA_CONSUMER_GROUP_ID=rmu-api-core-consumer
RMU_KAFKA_DEFAULT_PARTITIONS=1
RMU_KAFKA_BROKERS=localhost:9092
RMU_IAM_JWK_URI=http://localhost:8090/realms/rmu-local/protocol/openid-connect/certs
RMU_IAM_TOKEN_URI=http://localhost:8090/realms/rmu-local/protocol/openid-connect/token
RMU_IAM_CLIENT_ID=rmu-client
RMU_IAM_CLIENT_SECRET={our-clientId-secret}
LOG_LEVEL=debug

Running with Docker

This project includes docker-run.sh which builds the image and runs the container on the rmu-network Docker network.

In https://github.com/labcabrera/rmu-platform/docker-compose there are some docker-compose files that run multiple services together such as MongoDB, Keycloak and Kafka.

Local development

Install dependencies and run in development mode (see package.json scripts):

npm install
npm run start:dev

For production build:

npm run build
npm run start:prod

Contributing

If you want to contribute:

  • Open an issue describing the change.

  • Create a branch with a clear name and a PR with description and tests when applicable.

About

Core domain API for Rolemaster Unified built with NestJS.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages