Collapse the override-file matrix into a single docker-compose.yml holding the whole stack: drasl, minecraft, mc-backup, caddy, nmsr, uptime-kuma. Bring-up is now just `docker compose up -d --build`. Removed features (dead-ends for this deployment): - airgap / full asset mirror (mirror-airgap.sh, mirror-mods.sh, 20-mirror.caddy, caddy local-CA export, /ca.crt) - dnsmasq + avahi/mDNS + dns-records.sh + mdns-host-setup.sh + ENABLE_MDNS; DNS is now handled outside this repo (HOST_LAN_IP dropped) - Blessing Skin auth variant (compose + 00-core-blessingskin.caddy + BS_* env) - host-nginx-static variant (docker-compose.nginx.yml, nginx/ulicraft.conf.tmpl) - build-stack.sh and its run modes (online/airgap/core) Production ingress is the only path now: host nginx terminates TLS (LE certs) in front of caddy on a localhost-only port; caddy routes every vhost by Host header. Launcher downloads move mirror/launcher -> launcher/. Docs: README, deploy skill, and plan/ rewritten to match; obsolete plan docs (dnsmasq, blessing-skin, assets-mirror, full-airgap-mirror, dns-and-run-modes) deleted. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
1.5 KiB
1.5 KiB
Minecraft server — itzg NeoForge
Summary
itzg/minecraft-server:java21, NeoForge 1.21.1, offline-mode + authlib-injector
pointing at drasl. Mods via PACKWIZ_URL. itzg installs MC + NeoForge +
libraries + server mods on first boot and re-syncs on restart; the stack assumes
the internet is present, so TYPE=NEOFORGE boots normally every time.
Server config
TYPE=NEOFORGE, VERSION=1.21.1, NEOFORGE_VERSION=21.1.x
PACKWIZ_URL=http://pack.${BASE_DOMAIN}/pack.toml
First boot installs MC + NeoForge + libraries + server mods into the mc_data
volume. Subsequent boots re-sync the pack against PACKWIZ_URL.
Auth / config
ONLINE_MODE=FALSE
ENFORCE_SECURE_PROFILE=FALSE # pairs with drasl SignPublicKeys=false
JVM_OPTS=-javaagent:/extras/authlib-injector.jar=http://auth.${BASE_DOMAIN}/authlib-injector
authlib URL uses the auth subdomain; resolves internally via the caddy alias.
(Server still needs the agent even though Fjord clients have it built in.)
Memory: INIT_MEMORY 4G, MAX_MEMORY 10G, USE_AIKAR_FLAGS TRUE.
RCON enabled for mc-backup.
Tasks
- Compose: authlib URL
http://auth.${BASE_DOMAIN}/authlib-injector - Compose:
PACKWIZ_URL=http://pack.${BASE_DOMAIN}/pack.toml - Mount
./runtimefor authlib-injector.jar at/extras depends_on: drasl + caddy (pack served before server installs)- Confirm
ENFORCE_SECURE_PROFILE=FALSE↔ draslSignPublicKeys=false - Verify a client joins with their drasl skin