fix(map): revert to Leaflet + proxied OSM tiles, add CPE signal to popups

Reverted from MapLibre/PMTiles to Leaflet with nginx-proxied OSM raster
tiles — the MapLibre approach had unresolvable CSP and theme compat
issues. The proxy keeps all browser requests local (no third-party).

Also:
- Add CPE signal strength and parent AP name to fleet summary SQL
  and map popup cards (e.g. "Signal: -62 dBm to ap-shady-north")
- Add .dockerignore to exclude 8GB PMTiles and node_modules from
  Docker build context (was causing 10+ minute builds)
- Configure mailpit SMTP in dev compose

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Jason Staack
2026-03-19 21:47:15 -05:00
parent 877cb1a55c
commit 21f2934906
9 changed files with 145 additions and 558 deletions

View File

@@ -361,7 +361,8 @@ _FLEET_SUMMARY_SQL = """
d.uptime_seconds, d.last_cpu_load, d.last_memory_used_pct,
d.latitude, d.longitude,
d.tenant_id, t.name AS tenant_name,
wl.client_count, wl.avg_signal
wl.client_count, wl.avg_signal,
cpe.cpe_signal, cpe.ap_hostname
FROM devices d
JOIN tenants t ON d.tenant_id = t.id
LEFT JOIN LATERAL (
@@ -370,6 +371,14 @@ _FLEET_SUMMARY_SQL = """
FROM wireless_links
WHERE ap_device_id = d.id AND state IN ('active', 'discovered')
) wl ON true
LEFT JOIN LATERAL (
SELECT wl2.signal_strength AS cpe_signal,
ap.hostname AS ap_hostname
FROM wireless_links wl2
JOIN devices ap ON ap.id = wl2.ap_device_id
WHERE wl2.cpe_device_id = d.id AND wl2.state IN ('active', 'discovered')
LIMIT 1
) cpe ON true
ORDER BY d.hostname
"""