Commit web/assets/maps/ WebPs so deploys are self-contained
121 MB across 66 dungeon-floor WebPs (~150 KB–6 MB each). Previously gitignored on the assumption LFS would be needed; plain git handles this fine and it removes the kg_fetch → kg_stitch dependency from the deploy path. README and Ansible bring-up step updated.
4
.gitignore
vendored
|
|
@ -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/
|
||||
|
|
|
|||
11
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
|
||||
|
||||
|
|
|
|||
BIN
web/assets/maps/blackfathom_deeps_floor1.webp
Normal file
|
After Width: | Height: | Size: 1.7 MiB |
BIN
web/assets/maps/blackfathom_deeps_floor2.webp
Normal file
|
After Width: | Height: | Size: 1.7 MiB |
BIN
web/assets/maps/blackfathom_deeps_floor3.webp
Normal file
|
After Width: | Height: | Size: 1.5 MiB |
BIN
web/assets/maps/blackrock_depths_floor1.webp
Normal file
|
After Width: | Height: | Size: 2 MiB |
BIN
web/assets/maps/blackrock_depths_floor2.webp
Normal file
|
After Width: | Height: | Size: 2.1 MiB |
BIN
web/assets/maps/blackwinglair_floor1.webp
Normal file
|
After Width: | Height: | Size: 1.8 MiB |
BIN
web/assets/maps/blackwinglair_floor2.webp
Normal file
|
After Width: | Height: | Size: 1.7 MiB |
BIN
web/assets/maps/blackwinglair_floor3.webp
Normal file
|
After Width: | Height: | Size: 1.7 MiB |
BIN
web/assets/maps/blackwinglair_floor4.webp
Normal file
|
After Width: | Height: | Size: 1.6 MiB |
BIN
web/assets/maps/deadmines_floor1.webp
Normal file
|
After Width: | Height: | Size: 1.8 MiB |
BIN
web/assets/maps/deadmines_floor2.webp
Normal file
|
After Width: | Height: | Size: 1.9 MiB |
BIN
web/assets/maps/dire_maul_east_floor1.webp
Normal file
|
After Width: | Height: | Size: 1.8 MiB |
BIN
web/assets/maps/dire_maul_east_floor2.webp
Normal file
|
After Width: | Height: | Size: 2 MiB |
BIN
web/assets/maps/dire_maul_north.webp
Normal file
|
After Width: | Height: | Size: 2 MiB |
BIN
web/assets/maps/dire_maul_west_floor1.webp
Normal file
|
After Width: | Height: | Size: 1.8 MiB |
BIN
web/assets/maps/dire_maul_west_floor2.webp
Normal file
|
After Width: | Height: | Size: 2.1 MiB |
BIN
web/assets/maps/dire_maul_west_floor3.webp
Normal file
|
After Width: | Height: | Size: 1.9 MiB |
BIN
web/assets/maps/gnomeregan_floor1.webp
Normal file
|
After Width: | Height: | Size: 1.9 MiB |
BIN
web/assets/maps/gnomeregan_floor2.webp
Normal file
|
After Width: | Height: | Size: 1.9 MiB |
BIN
web/assets/maps/gnomeregan_floor3.webp
Normal file
|
After Width: | Height: | Size: 2 MiB |
BIN
web/assets/maps/gnomeregan_floor4.webp
Normal file
|
After Width: | Height: | Size: 2.1 MiB |
BIN
web/assets/maps/lower_blackrock_spire_floor1.webp
Normal file
|
After Width: | Height: | Size: 2.1 MiB |
BIN
web/assets/maps/lower_blackrock_spire_floor2.webp
Normal file
|
After Width: | Height: | Size: 2.1 MiB |
BIN
web/assets/maps/lower_blackrock_spire_floor3.webp
Normal file
|
After Width: | Height: | Size: 2 MiB |
BIN
web/assets/maps/lower_blackrock_spire_floor4.webp
Normal file
|
After Width: | Height: | Size: 2.1 MiB |
BIN
web/assets/maps/lower_blackrock_spire_floor5.webp
Normal file
|
After Width: | Height: | Size: 2.1 MiB |
BIN
web/assets/maps/lower_blackrock_spire_floor6.webp
Normal file
|
After Width: | Height: | Size: 2.1 MiB |
BIN
web/assets/maps/lower_blackrock_spire_floor7.webp
Normal file
|
After Width: | Height: | Size: 2.1 MiB |
BIN
web/assets/maps/mageclassshrine_floor1.webp
Normal file
|
After Width: | Height: | Size: 614 KiB |
BIN
web/assets/maps/mageclassshrine_floor2.webp
Normal file
|
After Width: | Height: | Size: 590 KiB |
BIN
web/assets/maps/maraudon_floor1.webp
Normal file
|
After Width: | Height: | Size: 1.9 MiB |
BIN
web/assets/maps/maraudon_floor2.webp
Normal file
|
After Width: | Height: | Size: 1.9 MiB |
BIN
web/assets/maps/moltencore.webp
Normal file
|
After Width: | Height: | Size: 1.7 MiB |
BIN
web/assets/maps/naxxramas_classic_floor1.webp
Normal file
|
After Width: | Height: | Size: 1.7 MiB |
BIN
web/assets/maps/naxxramas_classic_floor2.webp
Normal file
|
After Width: | Height: | Size: 1.8 MiB |
BIN
web/assets/maps/naxxramas_classic_floor3.webp
Normal file
|
After Width: | Height: | Size: 1.7 MiB |
BIN
web/assets/maps/naxxramas_classic_floor4.webp
Normal file
|
After Width: | Height: | Size: 1.8 MiB |
BIN
web/assets/maps/naxxramas_classic_floor5.webp
Normal file
|
After Width: | Height: | Size: 1.8 MiB |
BIN
web/assets/maps/naxxramas_classic_floor6.webp
Normal file
|
After Width: | Height: | Size: 1.8 MiB |
BIN
web/assets/maps/ragefire_chasm.webp
Normal file
|
After Width: | Height: | Size: 1.8 MiB |
BIN
web/assets/maps/razorfen_downs.webp
Normal file
|
After Width: | Height: | Size: 1.9 MiB |
BIN
web/assets/maps/razorfen_kraul.webp
Normal file
|
After Width: | Height: | Size: 1.6 MiB |
BIN
web/assets/maps/scarlet_monastery_armory.webp
Normal file
|
After Width: | Height: | Size: 2 MiB |
BIN
web/assets/maps/scarlet_monastery_cathedral.webp
Normal file
|
After Width: | Height: | Size: 2.2 MiB |
BIN
web/assets/maps/scarlet_monastery_graveyard.webp
Normal file
|
After Width: | Height: | Size: 2.1 MiB |
BIN
web/assets/maps/scarlet_monastery_library.webp
Normal file
|
After Width: | Height: | Size: 2.1 MiB |
BIN
web/assets/maps/scholomance.webp
Normal file
|
After Width: | Height: | Size: 163 KiB |
BIN
web/assets/maps/shadowfang_keep_floor1.webp
Normal file
|
After Width: | Height: | Size: 1.9 MiB |
BIN
web/assets/maps/shadowfang_keep_floor2.webp
Normal file
|
After Width: | Height: | Size: 1.9 MiB |
BIN
web/assets/maps/shadowfang_keep_floor3.webp
Normal file
|
After Width: | Height: | Size: 1.9 MiB |
BIN
web/assets/maps/shadowfang_keep_floor4.webp
Normal file
|
After Width: | Height: | Size: 1.9 MiB |
BIN
web/assets/maps/shadowfang_keep_floor5.webp
Normal file
|
After Width: | Height: | Size: 1.9 MiB |
BIN
web/assets/maps/shadowfang_keep_floor6.webp
Normal file
|
After Width: | Height: | Size: 2.1 MiB |
BIN
web/assets/maps/shadowfang_keep_floor7.webp
Normal file
|
After Width: | Height: | Size: 2 MiB |
BIN
web/assets/maps/stratholme_floor1.webp
Normal file
|
After Width: | Height: | Size: 1.9 MiB |
BIN
web/assets/maps/stratholme_floor2.webp
Normal file
|
After Width: | Height: | Size: 1.9 MiB |
BIN
web/assets/maps/the_stockade.webp
Normal file
|
After Width: | Height: | Size: 2 MiB |
BIN
web/assets/maps/thebeyond.webp
Normal file
|
After Width: | Height: | Size: 762 KiB |
BIN
web/assets/maps/uldaman_floor1.webp
Normal file
|
After Width: | Height: | Size: 1.9 MiB |
BIN
web/assets/maps/uldaman_floor2.webp
Normal file
|
After Width: | Height: | Size: 1.9 MiB |
BIN
web/assets/maps/upper_blackrock_spire_floor1.webp
Normal file
|
After Width: | Height: | Size: 1.5 MiB |
BIN
web/assets/maps/upper_blackrock_spire_floor2.webp
Normal file
|
After Width: | Height: | Size: 1.5 MiB |
BIN
web/assets/maps/upper_blackrock_spire_floor3.webp
Normal file
|
After Width: | Height: | Size: 1.6 MiB |
BIN
web/assets/maps/wailing_caverns.webp
Normal file
|
After Width: | Height: | Size: 1.7 MiB |
BIN
web/assets/maps/zul_farrak.webp
Normal file
|
After Width: | Height: | Size: 3 MiB |
BIN
web/assets/maps/zulgurub.webp
Normal file
|
After Width: | Height: | Size: 2.4 MiB |