diff --git a/.gitignore b/.gitignore index cc2976f..1d65a69 100644 --- a/.gitignore +++ b/.gitignore @@ -13,11 +13,9 @@ Thumbs.db .idea/ *.swp -# Large data assets — not tracked in git (no LFS yet) +# Large data assets # legacy hires PNG dump (gone, but keep ignored) data/maps_png_hires/ -# 336 MB of WebP map tiles — exclude until LFS is set up -web/assets/maps/ # Build output output/ diff --git a/README.md b/README.md index bb11afc..34de992 100644 --- a/README.md +++ b/README.md @@ -14,7 +14,8 @@ courtesy of RaiderIO (verbal permission, see attribution below). comments, gateways), NPC names from companion `en_US.js`. - **Frontend:** vanilla HTML/CSS/JS, single page, no build step. Pan/zoom via CSS transform on the canvas stage; SVG overlay in image-pixel space. -- **Hosting:** static. ~470 MB of WebPs total. Drop behind nginx; no backend. +- **Hosting:** static. ~120 MB of WebPs total, committed to the repo. Drop + behind nginx; no backend. ## Layout @@ -40,7 +41,7 @@ mplus-routes/ ├── app.js └── assets/ ├── dungeons.json - └── maps/ per-dungeon WebPs (gitignored — too big without LFS) + └── maps/ per-dungeon WebPs (~120 MB, committed) ``` ## Build @@ -50,7 +51,7 @@ python3 -m venv .venv .venv/bin/pip install Pillow .venv/bin/python tools/kg_fetch.py --workers 32 --zoom 4 # fetch tiles + data (~1.3 GB raw) -.venv/bin/python tools/kg_stitch.py --workers 4 # → web/assets/maps/*.webp (~470 MB) +.venv/bin/python tools/kg_stitch.py --workers 4 # → web/assets/maps/*.webp (~120 MB) .venv/bin/python tools/kg_build_data.py # → web/assets/dungeons.json ``` @@ -71,8 +72,8 @@ TLS automatically. First-time bring-up: 1. Add `mplus.exil.es` A/AAAA records in NetBox (→ public HAProxy VIPs) 2. Push the Ansible commit, trigger `Ansible_DeployPublicHaproxy` -3. Materialize `web/assets/maps/` on the deploy host (run the build pipeline above) -4. Run `playbooks/setup_mplus_routes.yml` +3. Run `playbooks/setup_mplus_routes.yml` — `web/assets/maps/` ships in the + repo, no pre-build step needed. ## Coverage diff --git a/web/assets/maps/blackfathom_deeps_floor1.webp b/web/assets/maps/blackfathom_deeps_floor1.webp new file mode 100644 index 0000000..7aa3086 Binary files /dev/null and b/web/assets/maps/blackfathom_deeps_floor1.webp differ diff --git a/web/assets/maps/blackfathom_deeps_floor2.webp b/web/assets/maps/blackfathom_deeps_floor2.webp new file mode 100644 index 0000000..388049d Binary files /dev/null and b/web/assets/maps/blackfathom_deeps_floor2.webp differ diff --git a/web/assets/maps/blackfathom_deeps_floor3.webp b/web/assets/maps/blackfathom_deeps_floor3.webp new file mode 100644 index 0000000..48fbd2a Binary files /dev/null and b/web/assets/maps/blackfathom_deeps_floor3.webp differ diff --git a/web/assets/maps/blackrock_depths_floor1.webp b/web/assets/maps/blackrock_depths_floor1.webp new file mode 100644 index 0000000..378128b Binary files /dev/null and b/web/assets/maps/blackrock_depths_floor1.webp differ diff --git a/web/assets/maps/blackrock_depths_floor2.webp b/web/assets/maps/blackrock_depths_floor2.webp new file mode 100644 index 0000000..c7e131b Binary files /dev/null and b/web/assets/maps/blackrock_depths_floor2.webp differ diff --git a/web/assets/maps/blackwinglair_floor1.webp b/web/assets/maps/blackwinglair_floor1.webp new file mode 100644 index 0000000..fdd755b Binary files /dev/null and b/web/assets/maps/blackwinglair_floor1.webp differ diff --git a/web/assets/maps/blackwinglair_floor2.webp b/web/assets/maps/blackwinglair_floor2.webp new file mode 100644 index 0000000..95b7ece Binary files /dev/null and b/web/assets/maps/blackwinglair_floor2.webp differ diff --git a/web/assets/maps/blackwinglair_floor3.webp b/web/assets/maps/blackwinglair_floor3.webp new file mode 100644 index 0000000..72bf236 Binary files /dev/null and b/web/assets/maps/blackwinglair_floor3.webp differ diff --git a/web/assets/maps/blackwinglair_floor4.webp b/web/assets/maps/blackwinglair_floor4.webp new file mode 100644 index 0000000..f8f42b7 Binary files /dev/null and b/web/assets/maps/blackwinglair_floor4.webp differ diff --git a/web/assets/maps/deadmines_floor1.webp b/web/assets/maps/deadmines_floor1.webp new file mode 100644 index 0000000..a49e8f0 Binary files /dev/null and b/web/assets/maps/deadmines_floor1.webp differ diff --git a/web/assets/maps/deadmines_floor2.webp b/web/assets/maps/deadmines_floor2.webp new file mode 100644 index 0000000..c92c6c8 Binary files /dev/null and b/web/assets/maps/deadmines_floor2.webp differ diff --git a/web/assets/maps/dire_maul_east_floor1.webp b/web/assets/maps/dire_maul_east_floor1.webp new file mode 100644 index 0000000..e34dbc7 Binary files /dev/null and b/web/assets/maps/dire_maul_east_floor1.webp differ diff --git a/web/assets/maps/dire_maul_east_floor2.webp b/web/assets/maps/dire_maul_east_floor2.webp new file mode 100644 index 0000000..3ab1f41 Binary files /dev/null and b/web/assets/maps/dire_maul_east_floor2.webp differ diff --git a/web/assets/maps/dire_maul_north.webp b/web/assets/maps/dire_maul_north.webp new file mode 100644 index 0000000..d1bec77 Binary files /dev/null and b/web/assets/maps/dire_maul_north.webp differ diff --git a/web/assets/maps/dire_maul_west_floor1.webp b/web/assets/maps/dire_maul_west_floor1.webp new file mode 100644 index 0000000..3bb1c72 Binary files /dev/null and b/web/assets/maps/dire_maul_west_floor1.webp differ diff --git a/web/assets/maps/dire_maul_west_floor2.webp b/web/assets/maps/dire_maul_west_floor2.webp new file mode 100644 index 0000000..75002f4 Binary files /dev/null and b/web/assets/maps/dire_maul_west_floor2.webp differ diff --git a/web/assets/maps/dire_maul_west_floor3.webp b/web/assets/maps/dire_maul_west_floor3.webp new file mode 100644 index 0000000..e4c7834 Binary files /dev/null and b/web/assets/maps/dire_maul_west_floor3.webp differ diff --git a/web/assets/maps/gnomeregan_floor1.webp b/web/assets/maps/gnomeregan_floor1.webp new file mode 100644 index 0000000..87839d7 Binary files /dev/null and b/web/assets/maps/gnomeregan_floor1.webp differ diff --git a/web/assets/maps/gnomeregan_floor2.webp b/web/assets/maps/gnomeregan_floor2.webp new file mode 100644 index 0000000..d2133e3 Binary files /dev/null and b/web/assets/maps/gnomeregan_floor2.webp differ diff --git a/web/assets/maps/gnomeregan_floor3.webp b/web/assets/maps/gnomeregan_floor3.webp new file mode 100644 index 0000000..ab2179d Binary files /dev/null and b/web/assets/maps/gnomeregan_floor3.webp differ diff --git a/web/assets/maps/gnomeregan_floor4.webp b/web/assets/maps/gnomeregan_floor4.webp new file mode 100644 index 0000000..927f574 Binary files /dev/null and b/web/assets/maps/gnomeregan_floor4.webp differ diff --git a/web/assets/maps/lower_blackrock_spire_floor1.webp b/web/assets/maps/lower_blackrock_spire_floor1.webp new file mode 100644 index 0000000..48a851f Binary files /dev/null and b/web/assets/maps/lower_blackrock_spire_floor1.webp differ diff --git a/web/assets/maps/lower_blackrock_spire_floor2.webp b/web/assets/maps/lower_blackrock_spire_floor2.webp new file mode 100644 index 0000000..d1a0975 Binary files /dev/null and b/web/assets/maps/lower_blackrock_spire_floor2.webp differ diff --git a/web/assets/maps/lower_blackrock_spire_floor3.webp b/web/assets/maps/lower_blackrock_spire_floor3.webp new file mode 100644 index 0000000..2faec7c Binary files /dev/null and b/web/assets/maps/lower_blackrock_spire_floor3.webp differ diff --git a/web/assets/maps/lower_blackrock_spire_floor4.webp b/web/assets/maps/lower_blackrock_spire_floor4.webp new file mode 100644 index 0000000..9087c5b Binary files /dev/null and b/web/assets/maps/lower_blackrock_spire_floor4.webp differ diff --git a/web/assets/maps/lower_blackrock_spire_floor5.webp b/web/assets/maps/lower_blackrock_spire_floor5.webp new file mode 100644 index 0000000..0aaad4b Binary files /dev/null and b/web/assets/maps/lower_blackrock_spire_floor5.webp differ diff --git a/web/assets/maps/lower_blackrock_spire_floor6.webp b/web/assets/maps/lower_blackrock_spire_floor6.webp new file mode 100644 index 0000000..4e90245 Binary files /dev/null and b/web/assets/maps/lower_blackrock_spire_floor6.webp differ diff --git a/web/assets/maps/lower_blackrock_spire_floor7.webp b/web/assets/maps/lower_blackrock_spire_floor7.webp new file mode 100644 index 0000000..ae25f6b Binary files /dev/null and b/web/assets/maps/lower_blackrock_spire_floor7.webp differ diff --git a/web/assets/maps/mageclassshrine_floor1.webp b/web/assets/maps/mageclassshrine_floor1.webp new file mode 100644 index 0000000..8ba7ea2 Binary files /dev/null and b/web/assets/maps/mageclassshrine_floor1.webp differ diff --git a/web/assets/maps/mageclassshrine_floor2.webp b/web/assets/maps/mageclassshrine_floor2.webp new file mode 100644 index 0000000..d8a8168 Binary files /dev/null and b/web/assets/maps/mageclassshrine_floor2.webp differ diff --git a/web/assets/maps/maraudon_floor1.webp b/web/assets/maps/maraudon_floor1.webp new file mode 100644 index 0000000..e3043be Binary files /dev/null and b/web/assets/maps/maraudon_floor1.webp differ diff --git a/web/assets/maps/maraudon_floor2.webp b/web/assets/maps/maraudon_floor2.webp new file mode 100644 index 0000000..a96f21a Binary files /dev/null and b/web/assets/maps/maraudon_floor2.webp differ diff --git a/web/assets/maps/moltencore.webp b/web/assets/maps/moltencore.webp new file mode 100644 index 0000000..86c2d9e Binary files /dev/null and b/web/assets/maps/moltencore.webp differ diff --git a/web/assets/maps/naxxramas_classic_floor1.webp b/web/assets/maps/naxxramas_classic_floor1.webp new file mode 100644 index 0000000..b28b67a Binary files /dev/null and b/web/assets/maps/naxxramas_classic_floor1.webp differ diff --git a/web/assets/maps/naxxramas_classic_floor2.webp b/web/assets/maps/naxxramas_classic_floor2.webp new file mode 100644 index 0000000..f4f40a2 Binary files /dev/null and b/web/assets/maps/naxxramas_classic_floor2.webp differ diff --git a/web/assets/maps/naxxramas_classic_floor3.webp b/web/assets/maps/naxxramas_classic_floor3.webp new file mode 100644 index 0000000..93940dd Binary files /dev/null and b/web/assets/maps/naxxramas_classic_floor3.webp differ diff --git a/web/assets/maps/naxxramas_classic_floor4.webp b/web/assets/maps/naxxramas_classic_floor4.webp new file mode 100644 index 0000000..b4540dc Binary files /dev/null and b/web/assets/maps/naxxramas_classic_floor4.webp differ diff --git a/web/assets/maps/naxxramas_classic_floor5.webp b/web/assets/maps/naxxramas_classic_floor5.webp new file mode 100644 index 0000000..6b6c242 Binary files /dev/null and b/web/assets/maps/naxxramas_classic_floor5.webp differ diff --git a/web/assets/maps/naxxramas_classic_floor6.webp b/web/assets/maps/naxxramas_classic_floor6.webp new file mode 100644 index 0000000..18d42ed Binary files /dev/null and b/web/assets/maps/naxxramas_classic_floor6.webp differ diff --git a/web/assets/maps/ragefire_chasm.webp b/web/assets/maps/ragefire_chasm.webp new file mode 100644 index 0000000..a326fb2 Binary files /dev/null and b/web/assets/maps/ragefire_chasm.webp differ diff --git a/web/assets/maps/razorfen_downs.webp b/web/assets/maps/razorfen_downs.webp new file mode 100644 index 0000000..4aae3e8 Binary files /dev/null and b/web/assets/maps/razorfen_downs.webp differ diff --git a/web/assets/maps/razorfen_kraul.webp b/web/assets/maps/razorfen_kraul.webp new file mode 100644 index 0000000..64ee3c1 Binary files /dev/null and b/web/assets/maps/razorfen_kraul.webp differ diff --git a/web/assets/maps/scarlet_monastery_armory.webp b/web/assets/maps/scarlet_monastery_armory.webp new file mode 100644 index 0000000..883947f Binary files /dev/null and b/web/assets/maps/scarlet_monastery_armory.webp differ diff --git a/web/assets/maps/scarlet_monastery_cathedral.webp b/web/assets/maps/scarlet_monastery_cathedral.webp new file mode 100644 index 0000000..f857119 Binary files /dev/null and b/web/assets/maps/scarlet_monastery_cathedral.webp differ diff --git a/web/assets/maps/scarlet_monastery_graveyard.webp b/web/assets/maps/scarlet_monastery_graveyard.webp new file mode 100644 index 0000000..62e9e7e Binary files /dev/null and b/web/assets/maps/scarlet_monastery_graveyard.webp differ diff --git a/web/assets/maps/scarlet_monastery_library.webp b/web/assets/maps/scarlet_monastery_library.webp new file mode 100644 index 0000000..0f63319 Binary files /dev/null and b/web/assets/maps/scarlet_monastery_library.webp differ diff --git a/web/assets/maps/scholomance.webp b/web/assets/maps/scholomance.webp new file mode 100644 index 0000000..89f7d1a Binary files /dev/null and b/web/assets/maps/scholomance.webp differ diff --git a/web/assets/maps/shadowfang_keep_floor1.webp b/web/assets/maps/shadowfang_keep_floor1.webp new file mode 100644 index 0000000..1b2288b Binary files /dev/null and b/web/assets/maps/shadowfang_keep_floor1.webp differ diff --git a/web/assets/maps/shadowfang_keep_floor2.webp b/web/assets/maps/shadowfang_keep_floor2.webp new file mode 100644 index 0000000..7e5b0ac Binary files /dev/null and b/web/assets/maps/shadowfang_keep_floor2.webp differ diff --git a/web/assets/maps/shadowfang_keep_floor3.webp b/web/assets/maps/shadowfang_keep_floor3.webp new file mode 100644 index 0000000..46000c8 Binary files /dev/null and b/web/assets/maps/shadowfang_keep_floor3.webp differ diff --git a/web/assets/maps/shadowfang_keep_floor4.webp b/web/assets/maps/shadowfang_keep_floor4.webp new file mode 100644 index 0000000..848035a Binary files /dev/null and b/web/assets/maps/shadowfang_keep_floor4.webp differ diff --git a/web/assets/maps/shadowfang_keep_floor5.webp b/web/assets/maps/shadowfang_keep_floor5.webp new file mode 100644 index 0000000..e8f64d9 Binary files /dev/null and b/web/assets/maps/shadowfang_keep_floor5.webp differ diff --git a/web/assets/maps/shadowfang_keep_floor6.webp b/web/assets/maps/shadowfang_keep_floor6.webp new file mode 100644 index 0000000..3ef775d Binary files /dev/null and b/web/assets/maps/shadowfang_keep_floor6.webp differ diff --git a/web/assets/maps/shadowfang_keep_floor7.webp b/web/assets/maps/shadowfang_keep_floor7.webp new file mode 100644 index 0000000..84db82d Binary files /dev/null and b/web/assets/maps/shadowfang_keep_floor7.webp differ diff --git a/web/assets/maps/stratholme_floor1.webp b/web/assets/maps/stratholme_floor1.webp new file mode 100644 index 0000000..eb72e03 Binary files /dev/null and b/web/assets/maps/stratholme_floor1.webp differ diff --git a/web/assets/maps/stratholme_floor2.webp b/web/assets/maps/stratholme_floor2.webp new file mode 100644 index 0000000..b121b55 Binary files /dev/null and b/web/assets/maps/stratholme_floor2.webp differ diff --git a/web/assets/maps/the_stockade.webp b/web/assets/maps/the_stockade.webp new file mode 100644 index 0000000..a4867b4 Binary files /dev/null and b/web/assets/maps/the_stockade.webp differ diff --git a/web/assets/maps/thebeyond.webp b/web/assets/maps/thebeyond.webp new file mode 100644 index 0000000..dbef29c Binary files /dev/null and b/web/assets/maps/thebeyond.webp differ diff --git a/web/assets/maps/uldaman_floor1.webp b/web/assets/maps/uldaman_floor1.webp new file mode 100644 index 0000000..e0652c6 Binary files /dev/null and b/web/assets/maps/uldaman_floor1.webp differ diff --git a/web/assets/maps/uldaman_floor2.webp b/web/assets/maps/uldaman_floor2.webp new file mode 100644 index 0000000..9101491 Binary files /dev/null and b/web/assets/maps/uldaman_floor2.webp differ diff --git a/web/assets/maps/upper_blackrock_spire_floor1.webp b/web/assets/maps/upper_blackrock_spire_floor1.webp new file mode 100644 index 0000000..3b32734 Binary files /dev/null and b/web/assets/maps/upper_blackrock_spire_floor1.webp differ diff --git a/web/assets/maps/upper_blackrock_spire_floor2.webp b/web/assets/maps/upper_blackrock_spire_floor2.webp new file mode 100644 index 0000000..76a1372 Binary files /dev/null and b/web/assets/maps/upper_blackrock_spire_floor2.webp differ diff --git a/web/assets/maps/upper_blackrock_spire_floor3.webp b/web/assets/maps/upper_blackrock_spire_floor3.webp new file mode 100644 index 0000000..2ed1a0e Binary files /dev/null and b/web/assets/maps/upper_blackrock_spire_floor3.webp differ diff --git a/web/assets/maps/wailing_caverns.webp b/web/assets/maps/wailing_caverns.webp new file mode 100644 index 0000000..9d1cf6d Binary files /dev/null and b/web/assets/maps/wailing_caverns.webp differ diff --git a/web/assets/maps/zul_farrak.webp b/web/assets/maps/zul_farrak.webp new file mode 100644 index 0000000..8054992 Binary files /dev/null and b/web/assets/maps/zul_farrak.webp differ diff --git a/web/assets/maps/zulgurub.webp b/web/assets/maps/zulgurub.webp new file mode 100644 index 0000000..0128f04 Binary files /dev/null and b/web/assets/maps/zulgurub.webp differ