Skip to content

OpenDroneMap Migration Guide

This guide covers the steps needed to migrate from OpenDroneMap’s ecosystem to WebODM’s. In most cases, migrating is just a matter of switching to the new docker images or packages.

  • If you’re using the native installers simply download and install the latest version.

  • If you’re using docker, running ./webodm.sh update will upgrade the software to the latest version and automatically point to the new repositories.

If you manually added processing nodes or modified the docker .yml files, just make sure the processing nodes uses webodm/nodeodx instead of opendronemap/nodeodm. Make sure you are using webodm/webodm_webapp and not opendronemap/webodm_webapp. See the this file.

ODM is replaced by ODX. Change the docker image from opendronemap/odm to webodm/odx:

Terminal window
docker run -ti --rm -v /my/project:/datasets/code webodm/odx --project-path /datasets
  • ODX is substantially faster
  • ODX is substantially smaller in size to download
  • ODX will work with all your DJI images, ODM does not.
  • ODX will create crack-free 3D models, ODM does not
  • ODX will create 3D tiles in the correct orientation, ODM does not
  • ODX merges split-merge orthophotos quickly, ODM does not
  • ODX supports checkpoints, ODM does not
  • ODX supports GPU feature matching, ODM does not

There’s plenty of other improvements and fixes that have been added to ODX that are missing from ODM.

If you added custom changes to a fork on top of ODM before April 6th 2026, you should be able to simply update the repo by rewinding to the last shared commit and fast forwarding with:

Terminal window
git checkout -b odxupgrade 5f05b988eb63e8900fb9b66d0d183c0cab337b7c
git remote add odx https://github.com/WebODM/ODX
git pull odx master
# Resolve conflicts if any
git commit -a -m "Upgraded to ODX"

If you made changes after April 6th 2026, you need to perform the same procedure, but cherry-pick or reapply your changes on top of the new source tree.

NodeODM is replaced by NodeODX. Change the docker image from opendronemap/nodeodm to webodm/nodeodx:

Terminal window
docker run -ti --rm -p 3000:3000 webodm/nodeodx
  • Guarantee compatibility with future versions of WebODM.
  • NodeODX does not have deprecation warnings.

PyODM is replaced by PyODX. To migrate:

  1. Change the import from pyodm to pyodx:
from pyodx import Node
  1. Rename OdmError exceptions to GenericError:
from pyodx.exceptions import GenericError

There are no other changes. See also PyODX reference.

  • PyODX keeps receiving updates. PyODM does not

ClusterODM is replaced by ClusterODX. Change the docker image from opendronemap/clusterodm to webodm/clusterodx:

Terminal window
docker run --rm -ti -p 3000:3000 -p 8080:8080 webodm/clusterodx
  • ClusterODX keeps receiving updates. ClusterODM does not
  • ClusterODX does not have deprecation warnings.

CloudODM is replaced by CloudODX. Up to date releases are now published at https://github.com/WebODM/CloudODX/releases/.

  • CloudODX keeps receiving updates. CloudODM does not

Have any questions? Join a community and someone will help you.