Skip to content

AsterYggdrasilDocumentation

Self-hosted Minecraft skin site and Yggdrasil/authlib-injector authentication server, documented from local setup to real launcher integration.

First, Understand It

AsterYggdrasil is a self-hosted Minecraft skin site and Yggdrasil/authlib-injector authentication server. It lets you host site accounts, Minecraft profiles, skin/cape textures, launcher login, and server join verification on your own service.

The current codebase already includes account auth, external auth, visual captcha, Minecraft profiles, wardrobe textures, the public texture library, Yggdrasil protocol endpoints, texture processing, runtime config, audit logs, and maintenance tasks. The docs describe those implemented capabilities instead of presenting future roadmap items as available features.

Choose Your Path

I just want to run it

Start with Getting Started. It walks through starting the backend, creating the first admin, checking /api/yggdrasil metadata, creating a profile, and verifying texture upload and public reads.

For production, continue to Deployment Overview and Docker Deployment. Public URLs, reverse proxy headers, cached signing keys, and object storage backups are the common failure points.

I am a player

Open Guides first. Normal users should read the User Guide, which follows account login, Minecraft profile creation, skin/cape management, launcher login, and common issues.

For profile names, UUIDs, renames, or deletion, go to Minecraft Profiles. For skins and capes, go to Textures.

I need launcher or server integration

Read Launcher Setup, then Launcher Login and Yggdrasil API. Launchers normally need this protocol root:

text
https://your-domain.example/api/yggdrasil

Launchers that support API Location Indication may use the site root instead. The homepage returns:

text
X-Authlib-Injector-API-Location: /api/yggdrasil/

I administer an instance

Start with Admin Guide and Config and Keys. Confirm public_site_url, yggdrasil_public_base_url, yggdrasil_texture_public_base_url, yggdrasil_skin_domains, and signing key rotation. Then read Audit and Tasks for token cleanup, texture consistency checks, and admin-visible audit logs.

For launcher login, server join, skin display, or signature verification issues, go directly to Troubleshooting. Short questions are covered in the FAQ.

Texture and uploaded-avatar persistence is covered in Object Storage. The available object storage backends are local, S3, and MinIO. S3/MinIO uses server-side streaming uploads and does not expose presigned uploads.

I want to edit the docs

Read Docs Contributing first. These docs are for real users, not a directory index for source modules. Before adding a page, ask: what task is the reader trying to complete?

Current Boundaries

  • Minecraft profile names support controlled renames through user or administrator APIs. Do not edit names directly in the database.
  • Deleting a profile handles texture bindings, reference counts, related Yggdrasil tokens, and audit records.
  • Yggdrasil protocol endpoints return protocol-shaped responses; site and admin APIs use { "code": "success", "msg": "", "data": ... }.
  • Available object storage backends are local, S3, and MinIO. Textures and uploaded avatars use the same object storage backend; S3/MinIO supports server-side streaming uploads only.
  • The product frontend now covers core account, profile, wardrobe, public texture library, and admin workflows, but this is still an alpha release; run full validation for your own deployment before public use.

Released under the MIT License.