# Mirror toggle — full client air-gap upstream mirror (see plan/11). # Layer on top of the base: `docker compose -f docker-compose.yml -f docker-compose.mirror.yml up -d` # (or `tooling/build-stack.sh --up mirror`). Adds the mirror vhost snippet, the # upstream content mount, and publishes :443 for Caddy's `tls internal` certs. # Populate the mirror first: tooling/mirror-airgap.sh (+ the proxy-capture step). services: caddy: ports: - "443:443" volumes: - ./caddy/conf.d/20-mirror.caddy:/etc/caddy/conf.d/20-mirror.caddy:ro - ./mirror/upstream:/srv/mirror:ro networks: mcnet: # Spoof the real upstream hosts -> Caddy (air-gap runtime only). Includes # the base aliases because compose replaces (not merges) the alias list. aliases: - "auth.${BASE_DOMAIN}" - "packwiz.${BASE_DOMAIN}" - "meta.prismlauncher.org" - "piston-meta.mojang.com" - "piston-data.mojang.com" - "libraries.minecraft.net" - "maven.neoforged.net" - "resources.download.minecraft.net"