yggdrasil/README.md
2023-06-21 16:21:27 -04:00

1.5 KiB

Yggdrasil

Self-hosted Minecraft authentication server with authlib-injector support

Setup

  1. Declare database URL
$ export DATABASE_URL="sqlite:yggdrasil.db"

1.5 Create .env

echo 'DATABASE_URL="sqlite:yggdrasil.db" >> .env'
  1. Create database (install sqlx cli tool if not already)
$ sqlx db create
  1. Run SQL migrations (this creates the tables)
$ sqlx migrate run

Yggdrasil Server

  • Run convenience script ./yggdrasil
  • OR DATABASE_URL=<url> cargo run --bin yggdrasil

Database tool (dbtool)

  • Run convenience script ./dbtool
  • OR DATABASE_URL=<url> cargo run --bin dbtool

Available commands

  • add-account: Creates a new account

    • Email (email@example.com)
    • Language (en-us)
    • Country (US)
  • add-profile: Creates a new profile for an account

    • Email (email@example.com) (Must match existing account)
    • Username (EpicMinecrafter4000)
  • attach-profile: Attaches a specific profile to an account

    • Account ID (5) (Must match existing account)
    • Profile ID (3) (Must match existing profile)
  • del-account: Deletes an account

    • Account ID (5)
  • del-profile: Deletes a profile

    • Profile ID (3)
  • search: Search for a specific profile or account

    • Search type (account-id, profile-id, email (account), name (profile), uuid (profile))
    • Query (Can have multiple)
  • dump: Dumps a table in the database (Mostly for debug)

    • Table name (accounts, profiles, sessions, tokens)