Deployment · Reference

Where Meratyn Runs

The same React build ships three ways — a Tauri desktop shell with an on-demand Python sidecar, an nginx container that reverse-proxies the sidecar same-origin, and a Jupyter wheel with the app bundled into the kernel.

Meratyn deployment map Deployment of Meratyn across a container running nginx with the static bundle and a proxied sidecar, the user machine running the Tauri desktop shell with a local FastAPI sidecar, plus a browser client, a Jupyter wheel, and outbound connections to remote tile and OGC services. CONTAINER USER MACHINE EXTERNAL NETWORK HTTPS:443 PROXY /SIDECAR HTTP:8765 ANYIO FETCH CONTAINER x1 nginx runtime static site dist/ reverse proxy /sidecar same-origin bundled uvicorn sidecar opt-out DESKTOP NATIVE FETCH x1 Tauri v2 desktop app web app bundle Bun 1.4+ Rust core · guarded HTTP mTLS WebView (system) WKWebView · WebView2 · WebKitGTK MANAGED x1 FastAPI sidecar (optional) uv run --frozen · 127.0.0.1:8765 · started on demand BROWSER Browser / PWA any modern engine KERNEL mappview wheel anywidget · dist-embed EXTERNAL Remote tiles & OGC services XYZ · WMS · WFS · ArcGIS · styles Desktop keeps heavy processing local; the container proxies it; Jupyter leaves it out. LEGEND LIGHT BLUE · CROSSES NETWORK BOUNDARY SOLID · LOCAL LOOP DASHED · OPTIONAL OUTBOUND TEAL · OPTIONAL COMPONENT

Desktop (Tauri v2)

  • Sidecar launched on demand over 127.0.0.1
  • Local MBTiles through custom MapLibre protocol backed by Tauri commands
  • Native fetches trust the OS certificate store; mTLS via env vars

Container (nginx)

  • Built and verified on every push to main (no registry publish)
  • Browser reaches the sidecar same-origin at /sidecar
  • No Tauri shell — desktop filesystem workflows need the installed app

Jupyter (wheel)

  • App build embedded into the wheel (bun run build:embed)
  • PWA service worker disabled in the embed
  • Version sourced dynamically from mappview/__init__.py