Run your own ODM

If hosted Muninn isn't right for you — air-gapped network, sensitive imagery, existing GPU box, or you just like running your own kit — here's the honest path. NodeODM and WebODM are both free, open-source, and built by the same project that powers our cloud pods.

NodeODM or WebODM?

Both run the same ODM engine. The difference is the wrapper around it.

NodeODM

Pick this if you want a processing API

  • Headless HTTP API on port 3000
  • One processing node, one job at a time
  • You bring your own UI or CLI
  • Great for scripts, pipelines, or pairing with Muninn-style frontends

WebODM

Pick this if you want a full web app

  • Browser UI: upload, project management, map viewer, 3D viewer
  • User accounts, task queue, multi-node orchestration
  • Bundles one or more NodeODM workers under the hood
  • Closest drop-in to a hosted service like Muninn

If you're not sure, start with WebODM. You can always strip down to bare NodeODM later.

Docker quickstart

Both projects are shipped as Docker images. You need Docker installed and ~50 GB free disk per concurrent task.

NodeODM

docker run -p 3000:3000 opendronemap/nodeodm

That's it. Open http://localhost:3000 — you'll see a minimal upload form, or POST to the API directly. Add -v $(pwd)/data:/var/www/data if you want results to survive container restarts.

WebODM

git clone https://github.com/OpenDroneMap/WebODM --config core.autocrlf=input --depth 1
cd WebODM
./webodm.sh start

On Windows use webodm.bat from PowerShell. The script pulls all required images, runs migrations, and starts the stack on http://localhost:8000. First boot takes a while — the ODM image alone is several GB.

To stop, update, or reset the stack:

./webodm.sh stop
./webodm.sh update
./webodm.sh down       # remove containers (keeps data volumes)
GPU acceleration: ODM ships a separate GPU image (opendronemap/odm:gpu) that uses CUDA for SIFT feature extraction. It's 2–3× faster on feature-heavy scenes but needs an NVIDIA GPU plus the NVIDIA Container Toolkit. CPU-only is the default and works fine; just slower.

Hardware reality check

Photogrammetry is RAM-bound. SIFT feature matching and dense point cloud reconstruction will happily consume every gigabyte you give them. Run out of RAM and the task fails — or thrashes swap for hours and then fails.

Photo count Min RAM Recommended RAM Wall time (8-core CPU, no GPU)
50–200 8 GB 16 GB 30 min – 2 hr
200–500 16 GB 32 GB 2 – 6 hr
500–1,000 32 GB 64 GB 6 – 14 hr
1,000–2,000 64 GB 128 GB 14 – 30+ hr

A few notes worth knowing up front:

Storage and cleanup

ODM is enthusiastic about intermediate artifacts. A 500-photo dataset can produce 30–80 GB of working files before you get to the orthophoto and 3D model.

Official documentation — the source of truth

This page is a starting point. The ODM team maintains the real documentation, and it stays current with releases in a way a third-party guide can't:

For settings tuning — --feature-quality, --pc-quality, --matcher-neighbors, --mesh-size, and the rest — the arguments reference is what you want open.

If you'd rather not run any of that

Hosted Muninn handles the GPU pods, the storage, the cleanup, and the queue — and the planner is free forever either way.

Back to Muninn See pricing