refactor!: unify into one compose, drop airgap/mirror/dnsmasq/avahi/blessingskin
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>
This commit is contained in:
@@ -8,8 +8,8 @@ drasl account directly in the launcher (no manual JVM `-javaagent`), import the
|
||||
modpack, and play.
|
||||
|
||||
We host the launcher installers for **all platforms** on the landing page
|
||||
(`ulicraft.local`), served by Caddy from `./mirror/launcher/`. A script downloads
|
||||
the latest release assets ahead of time so the party is fully offline.
|
||||
(`ulicraft.net`), served by Caddy from `./launcher/` (mounted at `/srv/launcher`,
|
||||
reachable at `/launcher/`). A script downloads the release assets ahead of time.
|
||||
|
||||
## Release assets (latest = 11.0.2.0)
|
||||
|
||||
@@ -26,12 +26,12 @@ Setup `.exe`, macOS `.dmg`, Linux `.AppImage`.
|
||||
|
||||
```bash
|
||||
#!/usr/bin/env bash
|
||||
# Download all FjordLauncherUnlocked release assets for offline hosting.
|
||||
# Download all FjordLauncherUnlocked release assets for local hosting.
|
||||
# Halts on any error or ambiguity (no silent partial downloads).
|
||||
set -euo pipefail
|
||||
|
||||
REPO="hero-persson/FjordLauncherUnlocked"
|
||||
DEST_ROOT="$(dirname "$0")/../mirror/launcher"
|
||||
DEST_ROOT="$(dirname "$0")/../launcher"
|
||||
API="https://api.github.com/repos/${REPO}/releases/latest"
|
||||
|
||||
command -v curl >/dev/null || { echo "curl required"; exit 1; }
|
||||
@@ -59,13 +59,13 @@ ln -sfn "$tag" "${DEST_ROOT}/latest"
|
||||
echo "Done. ${#urls[@]} assets in ${dest}"
|
||||
```
|
||||
|
||||
Caddy mount: `./mirror/launcher:/srv/www/launcher:ro`.
|
||||
Caddy mount: `./launcher:/srv/launcher:ro` (served at `/launcher/…`).
|
||||
|
||||
### Stable symlinks (so landing links survive version bumps)
|
||||
|
||||
The landing page (`09-landing.md`) links to **fixed** filenames, not versioned
|
||||
ones. After downloading, `fetch-launcher.sh` must create these symlinks under
|
||||
`mirror/launcher/latest/` pointing at the real assets:
|
||||
`launcher/latest/` pointing at the real assets:
|
||||
|
||||
- `fjord-windows-setup.exe` → Windows Setup `.exe` (x64)
|
||||
- `fjord-macos.dmg` → macOS `.dmg`
|
||||
@@ -78,22 +78,19 @@ sync with `landing/src/data/site.ts`.**
|
||||
|
||||
## Per-guest flow
|
||||
|
||||
1. Open `http://ulicraft.local`, download launcher for their OS, install.
|
||||
1. Open `https://ulicraft.net`, download launcher for their OS, install.
|
||||
2. Add account: authlib-injector type, URL
|
||||
`http://auth.ulicraft.local/authlib-injector`, drasl username/password.
|
||||
3. (Offline) Settings → APIs → **Assets Server** =
|
||||
`https://assets.ulicraft.local/` so the heavy asset download comes from the LAN
|
||||
mirror (see 10-assets-mirror.md). Requires trusting the local CA.
|
||||
4. Import the modpack (packwiz URL `http://packwiz.ulicraft.local/pack.toml`,
|
||||
`https://auth.ulicraft.net/authlib-injector`, drasl username/password.
|
||||
3. Import the modpack (packwiz URL `https://pack.ulicraft.net/pack.toml`,
|
||||
or a shared instance zip).
|
||||
5. Connect to `mc.ulicraft.local:25565`.
|
||||
4. Connect to `mc.ulicraft.net:25565`.
|
||||
|
||||
## Tasks
|
||||
|
||||
- [ ] Create `tooling/fetch-launcher.sh` (above); `chmod +x`
|
||||
- [ ] Extend script: create stable symlinks (win/mac/linux) in `mirror/launcher/latest/`
|
||||
- [ ] Run it pre-party while online; verify all assets land in `./mirror/launcher/<tag>/`
|
||||
- [ ] `.gitignore` `./mirror/` (done)
|
||||
- [ ] Extend script: create stable symlinks (win/mac/linux) in `launcher/latest/`
|
||||
- [ ] Run it pre-party; verify all assets land in `./launcher/<tag>/`
|
||||
- [ ] `.gitignore` `./launcher/` (done)
|
||||
- [ ] Landing page DONE — `landing/` Astro project, builds to `www/` (see 09-landing.md)
|
||||
- [ ] Confirm Fjord authlib-injector account flow against drasl
|
||||
- [ ] Decide whether to ship a pre-built instance zip vs packwiz URL import
|
||||
|
||||
Reference in New Issue
Block a user