docs: bootstrap bugs + networking docs from end-to-end LAN test #1
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "feature/bootstrap-fixes"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
Documentation work from the first end-to-end LAN test of the ubuntu-scripts bootstrap on a Multipass VM. Captures the 3 real bugs surfaced during testing + comprehensive networking guidance for adopters.
Changes
b34f73e— docs: capture #1 #2 #3 bootstrap bugs from first end-to-end world test9f2d75f— docs: expand networking docs from end-to-end LAN test findingsBug fixes for the 3 in docs/TODO.md not landed yet
Branch stays open after this merge for the actual bootstrap-fix commits to follow.
Test plan
Surfaces all publicly-useful learnings from the first end-to-end world test on the Multipass dune-test VM (Ubuntu 24.04 + k3s), generalized to a universal "what does my topology need?" reference. No personal-host details (no specific WAN IPs, no specific HostIds, no ISP-specific findings). User directive (verbatim, 2026-05-24): "How much of it is 'dont mention we did this' and how much is 'this is super helpful to others' that we can document for the ubuntu setup process? Cause this SHOULD work bare metal, but we are using an ubuntu VM, which either way, that much I know we should document." Changes: * ubuntu-scripts/README.md — three new troubleshooting subsections: - "Network topology — bare-metal vs VM" — explains why VM-based installs need iptables DNAT (game pods use hostNetwork:true and bind to the VM's bridge IP, not the host's LAN IP). Includes the working iptables rule pattern + the persistence step. - "NAT options — choosing your reachability path" — matrix covering real-public-IPv4 / single-NAT / double-NAT / CGNAT / LAN-only, with detection commands and recommended fix per case. Links to docs/networking.md for deeper detail. - "kubectl apply -f /home/dune/.dune/sh-*.yaml resets your world" — the rendered spec ships image tags as 0-0-shipping placeholder, so re-applying it after update-from-downloads or kubectl patch operations overwrites the live-patched state. Treat the rendered YAML as a seed, not the live source of truth. * docs/networking.md (NEW) — the deep design doc: - How HOST_DATACENTER_IP_ADDRESS announces work - Game-server port architecture (UDP 7777-7889 + TCP 31982) - Bare-metal vs VM topology with ASCII diagrams - Full iptables DNAT pattern for VM installs - NAT-piercing options for every common residential topology (single-NAT, double-NAT, CGNAT, LAN-only) with concrete commands - Tunnel-service options (Playit.gg, Tailscale Funnel, Cloudflare Spectrum, self-hosted WireGuard) - Diagnostic commands (ss listener check, tcpdump on WAN, director log search, iptables counter check) - Common failure-mode lookup table * ubuntu-scripts/examples/UserEngine.ini.example (NEW) — annotated example CVar overrides anyone can use as a starting point. Includes: - Sandworm tuning block - Sandstorm + treasure - World-border kill-mechanisms DISABLED (Hazard.EnableQuicksandOnIGWBorders, Vehicle.LevelBorders*) — for friend-server sandbox use - Resource yield multipliers (commented out, pointing to Funcom defaults) - Vehicle fuel multiplier (dw.VehiclePowerConsumptionMultiplier=0) flagged with the "this is Funcom-internal dw.* namespace, verify on your build" caveat - Player-death loot toggle (commented out, for PvE-friendly configs) Personal-host details (specific WAN/HostId/ISP topology) deliberately kept out — those stayed in the session conversation and are not part of the public release.