fmtm icon indicating copy to clipboard operation
fmtm copied to clipboard

Offline portable field mapping deployment

Open spwoodcock opened this issue 1 year ago • 0 comments

Related to #899

We currently have an install script to simplify deployment.

There are two extra requirements:

  • Deployment onto a field device, e.g. a raspberry pi that can be taken into the field.
    • Similar to UNVT (offline map server): https://github.com/unvt/portable
    • Side note: could we find a synergy and host both on one Pi?!
  • One command deployment.
    • Without a domain name requirement.

Envisioned workflow (entirely offline)

  1. Get a raspberry pi and WiFi antennae.
  2. Broadcast a WiFi network for users to connect to (via IP, or the device could probably have a nicer domain based routing, e.g. simply field.mapping in the browser).
  3. Simple FMTM deployment onto device.
    • Includes a bundled simple tile server (with low resolution world imagery).
    • Includes a bundled ODK Central.
    • No need for Minio?
    • The ODK Central URL would be set to the the device IP/domain.
    • Create a project and QR codes.
    • If the device is online in the office, optional download of basemap tiles.
  4. Take device into field.
  5. Users connect to WiFi network and then FMTM via IP/domain in browser.
  6. Users access the project and get the QR code for their task.
  7. Open QR in ODK Collect and map as normal.

Questions

  • How to handle OSM Auth if offline?
  • How to best serve map via tile server in parallel?
    • Could possible commit basic world tiles to repo, then include in bundled Nginx server.
    • Basemaps required Minio / more complex.

Note: in #899 I discussed the idea of using headscale for a VPN network that users connect to (to avoid requiring a domain).

This proposal is probably a more realistic approach: taking a small offline device into the field to connect to.

One command deployment

  • To facilitate the above, we need a streamlined deployment process.
  • A domain name is not required, and sane defaults can be provided for most variables.
  • The user should be able to run a script and have an FMTM deployment accessible from a URL.

spwoodcock avatar Jan 17 '24 12:01 spwoodcock