Skip to content

ravachol-yang/prosopon

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

131 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Prosopon

Prosopon is a lightweight Minecraft identity manager

GitHub Release GitHub License GitHub Actions Workflow Status

Getting Started

Prosopon is a Minecraft identity manager with multi-profile, texture (both skin and cape) management and Yggdrasil api compatibility based on Next.js.

It's designed for small community and fast, serverless deployment

Configuration

Basic Requirements:

  • a PostgreSQL database
  • an S3-compatible object storage (Remember to configure CORS policy)
  • an RSA keypair (see authlib-injector docs)

All required environment variables:

Site info:

# (Required) your site domain, required for profile uuid generation
SITE_DOMAIN=""

# (Required) domain of your texture host. see Yggdrasil docs
TEXTURE_DOMAIN=""

Database:

# (Required) Postgres database url
DATABASE_URL=""

Texture storage:

# (Required) S3-compatible storage credentials, for storing textures
S3_ENDPOINT=""
S3_ACCESS_KEY_ID=""
S3_SECRET_ACCESS_KEY=""
S3_BUCKET_NAME=""

Cryptography:

# (Required) secret for jwt signing
APP_SECRET=""

# (Required) RSA key pair in base64, for yggdrasil texture signing
RSA_PUBKEY_B64=""
RSA_PRIVKEY_B64=""

Tip

see .env.example for all supported environment variables.

Deploy on Vercel

You can deploy this application by forking this repo and importing it into Vercel.

Download.env.example, fill in it and upload to Vercel (or manually fill in the environment variables) before deploying.

Manually Build

Preparing.

git clone https://github.com/ravachol-yang/prosopon.git
cd prosopon
pnpm install
cp .env.exmaple .env

Fill in the .envand build the app.

pnpm run build

Running.

pnpm run start

Usage

First deployment creates a default ADMIN with email prosopon@example.com and password prosopon, log into the dashboard, create your first Profile and upload Textures for it, ADMINs can create Invites for their friends to join.

Note

This project is designed for personal community, invite verification is required*

See authlib-injector docs for integration with supported launchers and usage on Minecraft servers.

See also

Yggdrasil Server-side Specs

Use authlib-injector on Minecraft servers