Skip to content

A web-based multi-player text role-playing platform.

License

Notifications You must be signed in to change notification settings

jasonesteele/yggdrasil

Repository files navigation

Node.js CI CodeQL

Yggdrasil

Yggdrasil is a platform for text-based roleplaying (RP) in the style of old-school MUDs or MUSHs with a heavy influence from forum or chat-based RP. Users can create or utilize collaborative settings, define characters and then interact in real time to create stories.

Official Server

Coming soon

Development

Pre-requisites

Set up Discord authentication

Create an account on Discord Developer Portal

Yggdrasil will request the identity and email scopes for a user when they log in.

Running development servers with hot-reload

Run the Express/GraphQL/Websocket backend:

# Install dependencies
npm ci

# Configure Discord Oauth2
export DISCORD_ID=<CLIENT ID>
export DISCORD_SECRET=<CLIENT SECRET>

# Start local Postgres database and configure schema
docker-compose --profile dev up
npm run db:migrate:dev

# Start Express/GraphQL backend
npm start

Run the React frontend (in a separate shell):

cd client

# Install dependencies
npm ci

# Start React development server (in a separate shell)
npm start

Connect to http://localhost:3000 and log in through Discord.

Running production builds

docker compose build

# Configure Discord Oauth2
export DISCORD_ID=<CLIENT ID>
export DISCORD_SECRET=<CLIENT SECRET>

docker compose --profile integration up

Connect to http://localhost:3000 and log in through Discord.

About

A web-based multi-player text role-playing platform.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages