Windows 10 Pro Install, does this look normal? Having problems with 3D Model display after processing with MicMac Node

Hi Everyone, I am relatively new to this and have been having numerous issues with the 3D model not displaying when I have processed imagery using NodeMicMac, when I process with NodeODM the 3D model is displaying properly. As such decided to reinstall everything to see if that fixed the problem but that doesn’t seem to have helped me…

As such I am trying to eliminate things from the start of the install process and wondered if anyone could tell me whether this Update and adding NodeMicMac process has run properly on my PC? Or if there are any glaring issues?

[email protected] MINGW64 ~/Documents/WebODM (master)
$ ./webodm.sh update
docker-compose -f docker-compose.yml -f docker-compose.nodeodm.yml -f docker-compose.nodemicmac.yml down --remove-orphans
Removing network webodm_default
Network webodm_default not found.
Updating WebODM…
git pull origin master
From GitHub - OpenDroneMap/WebODM: User-friendly, commercial-grade software for processing aerial imagery. 🛩

  • branch master → FETCH_HEAD
    Already up to date.
    docker-compose -f docker-compose.yml -f docker-compose.nodeodm.yml pull
    Pulling db … done
    Pulling node-odm … done
    Pulling broker … done
    Pulling worker … done
    Pulling webapp … downloading (13.2%)

ERROR: for webapp error pulling image configuration: unexpected EOF
error pulling image configuration: unexpected EOF

[email protected] MINGW64 ~/Documents/WebODM (master)
$ ./webodm.sh update
docker-compose -f docker-compose.yml -f docker-compose.nodeodm.yml -f docker-compose.nodemicmac.yml down --remove-orphans
Removing network webodm_default
Network webodm_default not found.
Updating WebODM…
git pull origin master
From GitHub - OpenDroneMap/WebODM: User-friendly, commercial-grade software for processing aerial imagery. 🛩

  • branch master → FETCH_HEAD
    Already up to date.
    docker-compose -f docker-compose.yml -f docker-compose.nodeodm.yml pull
    Pulling node-odm … error
    Pulling broker … done
    Pulling db … error
    Pulling worker … done
    Pulling webapp … done

ERROR: for db Get https://registry-1.docker.io/v2/: net/http: TLS handshake timeout

ERROR: for node-odm Get https://registry-1.docker.io/v2/opendronemap/nodeodm/manifests/latest: Get https://auth.docker.io/token?account=johnrichardson19&scope=repository%3Aopendronemap%2Fnodeodm%3Apull&service=registry.docker.io: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
Get https://registry-1.docker.io/v2/: net/http: TLS handshake timeout
Get https://registry-1.docker.io/v2/opendronemap/nodeodm/manifests/latest: Get https://auth.docker.io/token?account=johnrichardson19&scope=repository%3Aopendronemap%2Fnodeodm%3Apull&service=registry.docker.io: net/http: request canceled (Client.Timeout exceeded while awaiting headers)

[email protected] MINGW64 ~/Documents/WebODM (master)
$ ./webodm.sh restart --with-micmac
Checking for docker… OK
Checking for git… OK
Checking for docker-compose… OK
Restarting WebODM…
docker-compose -f docker-compose.yml -f docker-compose.nodeodm.yml -f docker-compose.nodemicmac.yml down --remove-orphans
Removing network webodm_default
Network webodm_default not found.
Starting WebODM…

Using the following environment:

Host: localhost
Port: 8000
Media directory: appmedia
SSL: NO
SSL key:
SSL certificate:
SSL insecure port redirect: 80
Celery Broker: redis://broker
Default Nodes: 1

Make sure to issue a ./webodm.sh down if you decide to change the environment.

docker-compose -f docker-compose.yml -f docker-compose.nodeodm.yml -f docker-compose.nodemicmac.yml start || docker-compose -f docker-compose.yml -f docker-compose.nodeodm.yml -f docker-compose.nodemicmac.yml up --scale node-odm=1
Starting node-odm … failed
Starting broker … failed
Starting node-micmac-1 … failed
Starting db … failed
Starting worker … failed
Starting webapp … failed
No containers to start
Creating network “webodm_default” with the default driver
Creating volume “webodm_dbdata” with default driver
Creating volume “webodm_appmedia” with default driver
Pulling node-micmac-1 (dronemapper/node-micmac:)…
Get https://registry-1.docker.io/v2/dronemapper/node-micmac/manifests/latest: net/http: TLS handshake timeout

[email protected] MINGW64 ~/Documents/WebODM (master)
$ ./webodm.sh start
Checking for docker… OK
Checking for git… OK
Checking for docker-compose… OK
Starting WebODM…

Using the following environment:

Host: localhost
Port: 8000
Media directory: appmedia
SSL: NO
SSL key:
SSL certificate:
SSL insecure port redirect: 80
Celery Broker: redis://broker
Default Nodes: 1

Make sure to issue a ./webodm.sh down if you decide to change the environment.

docker-compose -f docker-compose.yml -f docker-compose.nodeodm.yml start || docker-compose -f docker-compose.yml -f docker-compose.nodeodm.yml up --scale node-odm=1
Starting broker … failed
Starting node-odm … failed
Starting db … failed
Starting worker … failed
Starting webapp … failed
No containers to start
Creating db … done
Creating broker … done
Creating webodm_node-odm_1 … done
Creating worker … done
Creating webapp … done
Attaching to webodm_node-odm_1, broker, db, worker, webapp
broker | 1:C 11 Aug 2020 18:34:09.840 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
broker | 1:C 11 Aug 2020 18:34:09.840 # Redis version=6.0.6, bits=64, commit=00000000, modified=0, pid=1, just started
broker | 1:C 11 Aug 2020 18:34:09.840 # Warning: no config file specified, using the default config. In order to specify a config file use redis-server /path/to/redis.conf
broker | 1:M 11 Aug 2020 18:34:09.841 * Running mode=standalone, port=6379.
broker | 1:M 11 Aug 2020 18:34:09.841 # WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128.
broker | 1:M 11 Aug 2020 18:34:09.841 # Server initialized
broker | 1:M 11 Aug 2020 18:34:09.841 # WARNING overcommit_memory is set to 0! Background save may fail under low memory condition. To fix this issue add ‘vm.overcommit_memory = 1’ to /etc/sysctl.conf and then reboot or run the command ‘sysctl vm.overcommit_memory=1’ for this to take effect.
broker | 1:M 11 Aug 2020 18:34:09.841 # WARNING you have Transparent Huge Pages (THP) support enabled in your kernel. This will create latency and memory usage issues with Redis. To fix this issue run the command ‘echo never > /sys/kernel/mm/transparent_hugepage/enabled’ as root, and add it to your /etc/rc.local in order to retain the setting after a reboot. Redis must be restarted after THP is disabled.
broker | 1:M 11 Aug 2020 18:34:09.842 * Ready to accept connections
db | The files belonging to this database system will be owned by user “postgres”.
db | This user must also own the server process.
db |
db | The database cluster will be initialized with locale “en_US.utf8”.
db | The default database encoding has accordingly been set to “UTF8”.
db | The default text search configuration will be set to “english”.
db |
db | Data page checksums are disabled.
db |
db | fixing permissions on existing directory /var/lib/postgresql/data … ok
db | creating subdirectories … ok
db | selecting default max_connections … 100
db | selecting default shared_buffers … 128MB
db | selecting dynamic shared memory implementation … posix
db | creating configuration files … ok
db | creating template1 database in /var/lib/postgresql/data/base/1 … ok
db | initializing pg_authid … ok
db | initializing dependencies … ok
db | creating system views … ok
db | loading system objects’ descriptions … ok
db | creating collations … ok
node-odm_1 | info: Authentication using NoTokenRequired
node-odm_1 | info: Listening on 0.0.0.0:6367 UDP for progress updates
node-odm_1 | info: No tasks dump found
node-odm_1 | info: Checking for orphaned directories to be removed…
node-odm_1 | info: Server has started on port 3000
worker | psql: could not connect to server: Connection refused
worker | Is the server running on host “db” (172.18.0.4) and accepting
worker | TCP/IP connections on port 5432?
worker | Postgres is unavailable - sleeping
db | creating conversions … ok
db | creating dictionaries … ok
webapp | psql: could not connect to server: Connection refused
webapp | Is the server running on host “db” (172.18.0.4) and accepting
webapp | TCP/IP connections on port 5432?
webapp | Postgres is unavailable - sleeping
db | setting privileges on built-in objects … ok
db | creating information schema … ok
db | loading PL/pgSQL server-side language … ok
db | vacuuming database template1 … ok
db | copying template1 to template0 … ok
db | copying template1 to postgres … ok
db | syncing data to disk …
db | WARNING: enabling “trust” authentication for local connections
db | You can change this by editing pg_hba.conf or using the option -A, or
db | --auth-local and --auth-host, the next time you run initdb.
db | ok
db |
db | Success. You can now start the database server using:
db |
db | pg_ctl -D /var/lib/postgresql/data -l logfile start
db |
db | ****************************************************
db | WARNING: No password has been set for the database.
db | This will allow anyone with access to the
db | Postgres port to access your database. In
db | Docker’s default configuration, this is
db | effectively any other container on the same
db | system.
db |
db | Use “-e POSTGRES_PASSWORD=password” to set
db | it in “docker run”.
db | ****************************************************
db | waiting for server to start…LOG: could not bind IPv6 socket: Cannot assign requested address
db | HINT: Is another postmaster already running on port 5432? If not, wait a few seconds and retry.
db | LOG: database system was shut down at 2020-08-11 18:34:10 UTC
db | LOG: MultiXact member wraparound protections are now enabled
db | LOG: autovacuum launcher started
db | LOG: database system is ready to accept connections
worker | psql: could not connect to server: Connection refused
worker | Is the server running on host “db” (172.18.0.4) and accepting
worker | TCP/IP connections on port 5432?
worker | Postgres is unavailable - sleeping
webapp | psql: could not connect to server: Connection refused
webapp | Is the server running on host “db” (172.18.0.4) and accepting
webapp | TCP/IP connections on port 5432?
webapp | Postgres is unavailable - sleeping
db | done
db | server started
db | ALTER ROLE
db |
db |
db | /usr/local/bin/docker-entrypoint.sh: running /docker-entrypoint-initdb.d/init-db.sql
db | ALTER ROLE
db | CREATE DATABASE
db | ALTER DATABASE
db | ALTER DATABASE
db |
db |
db | LOG: received fast shutdown request
db | waiting for server to shut down…LOG: aborting any active transactions
db | LOG: autovacuum launcher shutting down
db | LOG: shutting down
db | LOG: database system is shut down
worker | psql: could not connect to server: Connection refused
worker | Is the server running on host “db” (172.18.0.4) and accepting
worker | TCP/IP connections on port 5432?
worker | Postgres is unavailable - sleeping
webapp | psql: could not connect to server: Connection refused
webapp | Is the server running on host “db” (172.18.0.4) and accepting
webapp | TCP/IP connections on port 5432?
webapp | Postgres is unavailable - sleeping
db | done
db | server stopped
db |
db | PostgreSQL init process complete; ready for start up.
db |
db | LOG: database system was shut down at 2020-08-11 18:34:12 UTC
db | LOG: MultiXact member wraparound protections are now enabled
db | LOG: autovacuum launcher started
db | LOG: database system is ready to accept connections
worker | Postgres is up - executing command
worker | wait-for-it.sh: waiting for broker:6379 without a timeout
worker | wait-for-it.sh: broker:6379 is available after 0 seconds
worker | wait-for-it.sh: waiting for webapp:8000 without a timeout
webapp | Postgres is up - executing command
webapp | wait-for-it.sh: waiting for broker:6379 without a timeout
webapp | wait-for-it.sh: broker:6379 is available after 0 seconds
webapp |
webapp | _ __ __ ____ ____ __ ___
webapp | | | / /__ / /_ / __ / __ / |/ /
webapp | | | /| / / _ / __ / / / / / / / /|/ /
webapp | | |/ |/ / __/ /
/ / // / // / / / /
webapp | |/|/_/./_/__// //
webapp |
webapp |
webapp | Checking python version… 3.x, good!
webapp | Checking GDAL version… GDAL 3.1.2, released 2020/07/07, excellent!
webapp | Running migrations
webapp | Generated secret key
webapp | INFO Initializing GRASS engine using /usr/bin/grass78
webapp | Operations to perform:
webapp | Apply all migrations: admin, app, auth, contenttypes, guardian, nodeodm, sessions
webapp | Running migrations:
webapp | Applying contenttypes.0001_initial… OK
webapp | Applying auth.0001_initial… OK
webapp | Applying admin.0001_initial… OK
webapp | Applying admin.0002_logentry_remove_auto_add… OK
webapp | Applying admin.0003_logentry_add_action_flag_choices… OK
webapp | Applying contenttypes.0002_remove_content_type_name… OK
webapp | Applying auth.0002_alter_permission_name_max_length… OK
webapp | Applying auth.0003_alter_user_email_max_length… OK
webapp | Applying auth.0004_alter_user_username_opts… OK
webapp | Applying auth.0005_alter_user_last_login_null… OK
webapp | Applying auth.0006_require_contenttypes_0002… OK
webapp | Applying auth.0007_alter_validators_add_error_messages… OK
webapp | Applying auth.0008_alter_user_username_max_length… OK
webapp | Applying nodeodm.0001_initial… OK
webapp | Applying app.0001_initial… OK
webapp | Applying app.0002_task_auto_processing_node… OK
webapp | Applying app.0003_auto_20170615_1300… OK
webapp | Applying app.0004_auto_20170707_1014… OK
webapp | Applying app.0005_auto_20170707_1014… OK
webapp | Applying app.0006_task_available_assets… OK
webapp | Applying app.0007_auto_20170712_1319… OK
webapp | Applying app.0008_preset… OK
webapp | Applying app.0009_auto_20170721_1332… OK
webapp | Applying app.0010_auto_20170725_1324… OK
webapp | Applying app.0011_auto_20171109_1237… OK
webapp | Applying app.0012_public_task_uuids… OK
webapp | Applying app.0013_public_task_uuids… OK
webapp | Applying app.0014_public_task_uuids… OK
webapp | Applying app.0015_public_task_uuids… OK
webapp | Applying app.0016_public_task_uuids… OK
webapp | Applying app.0017_auto_20180219_1446… OK
webapp | Applying app.0018_auto_20180311_1028… OK
webapp | Applying app.0019_remove_task_processing_lock… OK
webapp | Applying app.0020_plugindatum… OK
webapp | Applying app.0021_auto_20180726_1746… OK
webapp | Applying app.0022_auto_20181205_1644… OK
webapp | Applying app.0023_task_running_progress… OK
webapp | Applying app.0024_update_task_assets… OK
webapp | Applying app.0025_auto_20190220_1854… OK
webapp | Applying app.0026_update_images_count… OK
webapp | Applying app.0027_plugin… OK
webapp | Applying app.0028_task_partial… OK
webapp | Applying app.0029_auto_20190907_1348… OK
webapp | Applying app.0030_assure_cogeo…=====================================================================
webapp | Migrating TIFFs to Cloud Optimized GeoTIFFs, this might take a while!
webapp | =====================================================================
webapp | OK
webapp | Applying auth.0009_alter_user_last_name_max_length… OK
webapp | Applying guardian.0001_initial… OK
webapp | Applying nodeodm.0002_processingnode_token… OK
webapp | Applying nodeodm.0003_auto_20180625_1230… OK
webapp | Applying nodeodm.0004_processingnode_max_images… OK
webapp | Applying nodeodm.0005_auto_20190115_1346… OK
webapp | Applying nodeodm.0006_auto_20190220_1842… OK
webapp | Applying nodeodm.0007_auto_20190520_1258… OK
webapp | Applying nodeodm.0008_rename_default_odm_node… OK
webapp | Applying sessions.0001_initial… OK
webapp | INFO Initializing GRASS engine using /usr/bin/grass78
webapp | Checking for celery… OK
webapp | Scheduler is not running.
webapp | Generating nginx configurations from templates…
webapp | - nginx/nginx-ssl.conf
webapp | - nginx/nginx.conf
worker | wait-for-it.sh: webapp:8000 is available after 4 seconds
worker | Checking for celery… OK
worker | Starting worker using broker at redis://broker
webapp | celery beat v4.4.0 (cliffs) is starting.
webapp | [2020-08-11 18:34:17 +0000] [104] [INFO] Starting gunicorn 19.7.1
webapp | [2020-08-11 18:34:17 +0000] [104] [INFO] Listening at: unix:/tmp/gunicorn.sock (104)
webapp | [2020-08-11 18:34:17 +0000] [104] [INFO] Using worker: sync
webapp | /usr/lib/python3.8/os.py:1023: RuntimeWarning: line buffering (buffering=1) isn’t supported in binary mode, the default buffer size will be used
webapp | return io.open(fd, *args, **kwargs)
webapp | [2020-08-11 18:34:17 +0000] [127] [INFO] Booting worker with pid: 127
worker | INFO Initializing GRASS engine using /usr/bin/grass78
webapp | INFO Initializing GRASS engine using /usr/bin/grass78
worker | /usr/local/lib/python3.8/dist-packages/celery/platforms.py:800: RuntimeWarning: You’re running the worker with superuser privileges: this is
worker | absolutely not recommended!
worker |
worker | Please specify a different user using the --uid option.
worker |
worker | User information: uid=0 euid=0 gid=0 egid=0
worker |
worker | warnings.warn(RuntimeWarning(ROOT_DISCOURAGED.format(
webapp | __ - … __ - _
webapp | LocalTime → 2020-08-11 18:34:17
webapp | Configuration →
webapp | . broker → redis://broker:6379//
webapp | . loader → celery.loaders.app.AppLoader
webapp | . scheduler → celery.beat.PersistentScheduler
webapp | . db → celerybeat-schedule
webapp | . logfile → [stderr]@%WARNING
webapp | . maxinterval → 5.00 minutes (300s)
webapp |
webapp | Trying to establish communication…
webapp | /webodm/start.sh: line 86: curl: command not found
webapp |
webapp | Something doesn’t look right! ?_(?)_/?
webapp | The server returned a status code of when we tried to reach it.
webapp | ==========================
webapp |
webapp | Check if WebODM is running, maybe we tried to reach it too soon.
webapp |
webapp | Open a web browser and navigate to http://localhost:8000
webapp |
webapp | NOTE: Windows users using docker should replace localhost with the IP of their docker machine’s IP. To find what that is, run: docker-machine ip
http://localhost:8000webapp | INFO Initializing GRASS engine using /usr/bin/grass78
webapp | INFO Booting WebODM 1.4.2
webapp | INFO Created default group
webapp | INFO Regenerate cache for app/static/app/css/theme.scss
webapp | INFO Created default theme
webapp | INFO Regenerate cache for app/static/app/css/theme.scss
webapp | INFO Regenerate cache for app/static/app/css/theme.scss
webapp | INFO Created settings
webapp | INFO Added [[plugins.changedetection.plugin]] plugin to database
webapp | INFO Added [[plugins.cloudimport.plugin]] plugin to database
webapp | INFO Added [[plugins.diagnostic.plugin]] plugin to database
webapp | INFO Added [[plugins.cesium-ion.plugin]] plugin to database
webapp | INFO Added [[plugins.osm-quickedit.plugin]] plugin to database
webapp | INFO Added [[plugins.lightning.plugin]] plugin to database
webapp | INFO Added [[plugins.openaerialmap.plugin]] plugin to database
webapp | INFO Added [[plugins.elevationmap.plugin]] plugin to database
webapp | INFO Added [[plugins.posm-gcpi.plugin]] plugin to database
webapp | INFO Added [[plugins.fullscreen.plugin]] plugin to database
webapp | INFO Added [[plugins.measure.plugin]] plugin to database
webapp | INFO Added [[plugins.contours.plugin]] plugin to database
webapp | INFO Registered [plugins.diagnostic.plugin]
webapp | INFO Registered [plugins.lightning.plugin]
webapp | INFO Registered [plugins.posm-gcpi.plugin]
webapp | INFO Registered [plugins.fullscreen.plugin]
webapp | INFO Registered [plugins.measure.plugin]
webapp | INFO Registered [plugins.contours.plugin]
webapp | INFO Added JohnRichardson to default group

Below is the second install i have tried to do, my concern is with the last lines which indicate “:webapp | WARNING Session data corrupted:”

[email protected] MINGW64 ~/Documents/WebODM (master)
$ ./webodm.sh start
Checking for docker… OK
Checking for git… OK
Checking for docker-compose… OK
Starting WebODM…

Using the following environment:

Host: localhost
Port: 8000
Media directory: appmedia
SSL: NO
SSL key:
SSL certificate:
SSL insecure port redirect: 80
Celery Broker: redis://broker
Default Nodes: 1

Make sure to issue a ./webodm.sh down if you decide to change the environment.

docker-compose -f docker-compose.yml -f docker-compose.nodeodm.yml start || docker-compose -f docker-compose.yml -f docker-compose.nodeodm.yml up --scale node-odm=1
Starting broker … failed
Starting node-odm … failed
Starting db … failed
Starting worker … failed
Starting webapp … failed
No containers to start
Creating db … done
Creating broker … done
Creating webodm_node-odm_1 … done
Creating worker … done
Creating webapp … done
Attaching to broker, webodm_node-odm_1, db, worker, webapp
broker | 1:C 12 Aug 2020 17:05:12.594 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
broker | 1:C 12 Aug 2020 17:05:12.594 # Redis version=6.0.6, bits=64, commit=00000000, modified=0, pid=1, just started
broker | 1:C 12 Aug 2020 17:05:12.594 # Warning: no config file specified, using the default config. In order to specify a config file use redis-server /path/to/redis.conf
broker | 1:M 12 Aug 2020 17:05:12.595 * Running mode=standalone, port=6379.
broker | 1:M 12 Aug 2020 17:05:12.595 # WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128.
broker | 1:M 12 Aug 2020 17:05:12.595 # Server initialized
broker | 1:M 12 Aug 2020 17:05:12.595 # WARNING overcommit_memory is set to 0! Background save may fail under low memory condition. To fix this issue add ‘vm.overcommit_memory = 1’ to /etc/sysctl.conf and then reboot or run the command ‘sysctl vm.overcommit_memory=1’ for this to take effect.
broker | 1:M 12 Aug 2020 17:05:12.595 # WARNING you have Transparent Huge Pages (THP) support enabled in your kernel. This will create latency and memory usage issues with Redis. To fix this issue run the command ‘echo never > /sys/kernel/mm/transparent_hugepage/enabled’ as root, and add it to your /etc/rc.local in order to retain the setting after a reboot. Redis must be restarted after THP is disabled.
broker | 1:M 12 Aug 2020 17:05:12.596 * Ready to accept connections
db | LOG: database system was shut down at 2020-08-12 04:27:36 UTC
db | LOG: MultiXact member wraparound protections are now enabled
db | LOG: autovacuum launcher started
db | LOG: database system is ready to accept connections
worker | Postgres is up - executing command
worker | wait-for-it.sh: waiting for broker:6379 without a timeout
worker | wait-for-it.sh: broker:6379 is available after 0 seconds
worker | wait-for-it.sh: waiting for webapp:8000 without a timeout
webapp | Postgres is up - executing command
webapp | wait-for-it.sh: waiting for broker:6379 without a timeout
webapp | wait-for-it.sh: broker:6379 is available after 0 seconds
webapp |
webapp | _ __ __ ____ ____ __ ___
webapp | | | / /__ / /_ / __ / __ / |/ /
webapp | | | /| / / _ / __ / / / / / / / /|/ /
webapp | | |/ |/ / __/ /
/ / // / // / / / /
webapp | |/|/_/./_/__// //
webapp |
webapp |
webapp | Checking python version… 3.x, good!
webapp | Checking GDAL version… GDAL 3.1.2, released 2020/07/07, excellent!
webapp | Running migrations
webapp | Generated secret key
node-odm_1 | info: Authentication using NoTokenRequired
node-odm_1 | info: Listening on 0.0.0.0:6367 UDP for progress updates
node-odm_1 | info: No tasks dump found
node-odm_1 | info: Checking for orphaned directories to be removed…
node-odm_1 | info: Server has started on port 3000
webapp | INFO Initializing GRASS engine using /usr/bin/grass78
webapp | Operations to perform:
webapp | Apply all migrations: admin, app, auth, contenttypes, guardian, nodeodm, sessions
webapp | Running migrations:
webapp | No migrations to apply.
webapp | INFO Added AnonymousUser to default group
webapp | INFO Initializing GRASS engine using /usr/bin/grass78
webapp | Checking for celery… OK
webapp | Scheduler is not running.
webapp | Generating nginx configurations from templates…
webapp | - nginx/nginx-ssl.conf
webapp | - nginx/nginx.conf
worker | wait-for-it.sh: webapp:8000 is available after 3 seconds
worker | Checking for celery… OK
worker | Starting worker using broker at redis://broker
webapp | celery beat v4.4.0 (cliffs) is starting.
webapp | [2020-08-12 17:05:16 +0000] [77] [INFO] Starting gunicorn 19.7.1
webapp | [2020-08-12 17:05:16 +0000] [77] [INFO] Listening at: unix:/tmp/gunicorn.sock (77)
webapp | [2020-08-12 17:05:16 +0000] [77] [INFO] Using worker: sync
webapp | /usr/lib/python3.8/os.py:1023: RuntimeWarning: line buffering (buffering=1) isn’t supported in binary mode, the default buffer size will be used
webapp | return io.open(fd, *args, **kwargs)
webapp | [2020-08-12 17:05:16 +0000] [100] [INFO] Booting worker with pid: 100
webapp | INFO Initializing GRASS engine using /usr/bin/grass78
webapp | __ - … __ - _
webapp | LocalTime → 2020-08-12 17:05:16
webapp | Configuration →
webapp | . broker → redis://broker:6379//
webapp | . loader → celery.loaders.app.AppLoader
webapp | . scheduler → celery.beat.PersistentScheduler
webapp | . db → celerybeat-schedule
webapp | . logfile → [stderr]@%WARNING
webapp | . maxinterval → 5.00 minutes (300s)
worker | INFO Initializing GRASS engine using /usr/bin/grass78
worker | /usr/local/lib/python3.8/dist-packages/celery/platforms.py:800: RuntimeWarning: You’re running the worker with superuser privileges: this is
worker | absolutely not recommended!
worker |
worker | Please specify a different user using the --uid option.
worker |
worker | User information: uid=0 euid=0 gid=0 egid=0
worker |
worker | warnings.warn(RuntimeWarning(ROOT_DISCOURAGED.format(
webapp |
webapp | Trying to establish communication…
webapp | /webodm/start.sh: line 86: curl: command not found
webapp |
webapp | Something doesn’t look right! ?_(?)_/?
webapp | The server returned a status code of when we tried to reach it.
webapp | ==========================
webapp |
webapp | Check if WebODM is running, maybe we tried to reach it too soon.
webapp |
webapp | Open a web browser and navigate to http://localhost:8000
webapp |
webapp | NOTE: Windows users using docker should replace localhost with the IP of their docker machine’s IP. To find what that is, run: docker-machine ip
webapp | INFO Initializing GRASS engine using /usr/bin/grass78
webapp | INFO Booting WebODM 1.4.2
webapp | INFO Registered [plugins.diagnostic.plugin]
webapp | INFO Registered [plugins.lightning.plugin]
webapp | INFO Registered [plugins.posm-gcpi.plugin]
webapp | INFO Registered [plugins.fullscreen.plugin]
webapp | INFO Registered [plugins.measure.plugin]
webapp | INFO Registered [plugins.contours.plugin]
broker | 1:M 12 Aug 2020 17:10:13.061 * 100 changes in 300 seconds. Saving…
broker | 1:M 12 Aug 2020 17:10:13.062 * Background saving started by pid 18
broker | 18:C 12 Aug 2020 17:10:13.065 * DB saved on disk
ry used by copy-on-broker | 18:C 12 Aug 2020 17:10:13.065 * RDB: 4 MB of memory used by copy-on-write
$ ./webodm.sh update
broker | 1:M 13 Aug 2020 05:32:36.059 * 100 changes in 300 seconds. Saving…
broker | 1:M 13 Aug 2020 05:32:36.060 * Background saving started by pid 29
broker | 29:C 13 Aug 2020 05:32:36.066 * DB saved on disk
broker | 29:C 13 Aug 2020 05:32:36.066 * RDB: 4 MB of memowrite
broker | 1:M 13 Aug 2020 05:32:36.160 * Background saving terminated with success
broker | 1:M 13 Aug 2020 05:37:37.047 * 100 changes in 300 seconds. Saving…
broker | 1:M 13 Aug 2020 05:37:37.048 * Background saving started by pid 30
broker | 30:C 13 Aug 2020 05:37:37.054 * DB saved on disk
broker | 30:C 13 Aug 2020 05:37:37.054 * RDB: 4 MB of memory used by copy-on-write
broker | 1:M 13 Aug 2020 05:37:37.148 * Background saving terminated with success
broker | 1:M 13 Aug 2020 05:42:38.047 * 100 changes in 300 seconds. Saving…
broker | 1:M 13 Aug 2020 05:42:38.048 * Background saving started by pid 31
broker | 31:C 13 Aug 2020 05:42:38.053 * DB saved on disk
broker | 31:C 13 Aug 2020 05:42:38.054 * RDB: 4 MB of memory used by copy-on-write
broker | 1:M 13 Aug 2020 05:42:38.148 * Background saving terminated with success
broker | 1:M 13 Aug 2020 05:47:39.080 * 100 changes in 300 seconds. Saving…
broker | 1:M 13 Aug 2020 05:47:39.081 * Background saving started by pid 32
broker | 32:C 13 Aug 2020 05:47:39.088 * DB saved on disk
broker | 32:C 13 Aug 2020 05:47:39.088 * RDB: 4 MB of memory used by copy-on-write
broker | 1:M 13 Aug 2020 05:47:39.181 * Background saving terminated with success
broker | 1:M 13 Aug 2020 05:52:40.023 * 100 changes in 300 seconds. Saving…
broker | 1:M 13 Aug 2020 05:52:40.023 * Background saving started by pid 33
broker | 33:C 13 Aug 2020 05:52:40.039 * DB saved on disk
broker | 33:C 13 Aug 2020 05:52:40.039 * RDB: 4 MB of memory used by copy-on-write
broker | 1:M 13 Aug 2020 05:52:40.124 * Background saving terminated with success
Stopping webapp … done
Stopping worker … done
Stopping broker … done
Stopping webodm_node-odm_1 … done
Stopping db … done
Gracefully stopping… (press Ctrl+C again to force)

[email protected] MINGW64 ~/Documents/WebODM (master)
$ $ ./webodm.sh update
bash: $: command not found

[email protected] MINGW64 ~/Documents/WebODM (master)
$ ./webodm.sh update
docker-compose -f docker-compose.yml -f docker-compose.nodeodm.yml -f docker-compose.nodemicmac.yml down --remove-orphans
Removing webapp … done
Removing worker … done
Removing broker … done
Removing webodm_node-odm_1 … done
Removing db … done
Removing network webodm_default
Updating WebODM…
git pull origin master
From GitHub - OpenDroneMap/WebODM: User-friendly, commercial-grade software for processing aerial imagery. 🛩

  • branch master → FETCH_HEAD
    Already up to date.
    docker-compose -f docker-compose.yml -f docker-compose.nodeodm.yml pull
    Pulling db … done
    Pulling broker … done
    Pulling worker … done
    Pulling node-odm … done
    Pulling webapp … done
    Done! You can now start WebODM by running ./webodm.sh start

[email protected] MINGW64 ~/Documents/WebODM (master)
$ ./webodm.sh start
Checking for docker… OK
Checking for git… OK
Checking for docker-compose… OK
Starting WebODM…

Using the following environment:

Host: localhost
Port: 8000
Media directory: appmedia
SSL: NO
SSL key:
SSL certificate:
SSL insecure port redirect: 80
Celery Broker: redis://broker
Default Nodes: 1

Make sure to issue a ./webodm.sh down if you decide to change the environment.

docker-compose -f docker-compose.yml -f docker-compose.nodeodm.yml start || docker-compose -f docker-compose.yml -f docker-compose.nodeodm.yml up --scale node-odm=1
Starting node-odm … failed
Starting db … failed
Starting broker … failed
Starting worker … failed
Starting webapp … failed
No containers to start
Creating network “webodm_default” with the default driver
Creating webodm_node-odm_1 … done
Creating db … done
Creating broker … done
Creating worker … done
Creating webapp … done
Attaching to db, webodm_node-odm_1, broker, worker, webapp
broker | 1:C 13 Aug 2020 05:57:28.405 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
broker | 1:C 13 Aug 2020 05:57:28.406 # Redis version=6.0.6, bits=64, commit=00000000, modified=0, pid=1, just started
broker | 1:C 13 Aug 2020 05:57:28.406 # Warning: no config file specified, using the default config. In order to specify a config file use redis-server /path/to/redis.conf
broker | 1:M 13 Aug 2020 05:57:28.406 * Running mode=standalone, port=6379.
broker | 1:M 13 Aug 2020 05:57:28.406 # WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128.
broker | 1:M 13 Aug 2020 05:57:28.406 # Server initialized
broker | 1:M 13 Aug 2020 05:57:28.406 # WARNING overcommit_memory is set to 0! Background save may fail under low memory condition. To fix this issue add ‘vm.overcommit_memory = 1’ to /etc/sysctl.conf and then reboot or run the command ‘sysctl vm.overcommit_memory=1’ for this to take effect.
broker | 1:M 13 Aug 2020 05:57:28.406 # WARNING you have Transparent Huge Pages (THP) support enabled in your kernel. This will create latency and memory usage issues with Redis. To fix this issue run the command ‘echo never > /sys/kernel/mm/transparent_hugepage/enabled’ as root, and add it to your /etc/rc.local in order to retain the setting after a reboot. Redis must be restarted after THP is disabled.
broker | 1:M 13 Aug 2020 05:57:28.407 * Ready to accept connections
db | LOG: database system was shut down at 2020-08-13 05:56:08 UTC
db | LOG: MultiXact member wraparound protections are now enabled
db | LOG: autovacuum launcher started
db | LOG: database system is ready to accept connections
node-odm_1 | info: Authentication using NoTokenRequired
node-odm_1 | info: Listening on 0.0.0.0:6367 UDP for progress updates
node-odm_1 | info: No tasks dump found
node-odm_1 | info: Checking for orphaned directories to be removed…
node-odm_1 | info: Server has started on port 3000
worker | Postgres is up - executing command
worker | wait-for-it.sh: waiting for broker:6379 without a timeout
worker | wait-for-it.sh: broker:6379 is available after 0 seconds
worker | wait-for-it.sh: waiting for webapp:8000 without a timeout
webapp | Postgres is up - executing command
webapp | wait-for-it.sh: waiting for broker:6379 without a timeout
webapp | wait-for-it.sh: broker:6379 is available after 0 seconds
webapp |
webapp | _ __ __ ____ ____ __ ___
webapp | | | / /__ / /_ / __ / __ / |/ /
webapp | | | /| / / _ / __ / / / / / / / /|/ /
webapp | | |/ |/ / __/ /
/ / // / // / / / /
webapp | |/|/_/./_/__// //
webapp |
webapp |
webapp | Checking python version… 3.x, good!
webapp | Checking GDAL version… GDAL 3.1.2, released 2020/07/07, excellent!
webapp | Running migrations
webapp | Generated secret key
webapp | INFO Initializing GRASS engine using /usr/bin/grass78
webapp | Operations to perform:
webapp | Apply all migrations: admin, app, auth, contenttypes, guardian, nodeodm, sessions
webapp | Running migrations:
webapp | No migrations to apply.
webapp | INFO Added AnonymousUser to default group
webapp | INFO Initializing GRASS engine using /usr/bin/grass78
webapp | Checking for celery… OK
webapp | Scheduler is not running.
webapp | Generating nginx configurations from templates…
webapp | - nginx/nginx-ssl.conf
webapp | - nginx/nginx.conf
webapp | celery beat v4.4.0 (cliffs) is starting.
webapp | [2020-08-13 05:57:31 +0000] [77] [INFO] Starting gunicorn 19.7.1
webapp | [2020-08-13 05:57:31 +0000] [77] [INFO] Listening at: unix:/tmp/gunicorn.sock (77)
webapp | [2020-08-13 05:57:31 +0000] [77] [INFO] Using worker: sync
webapp | /usr/lib/python3.8/os.py:1023: RuntimeWarning: line buffering (buffering=1) isn’t supported in binary mode, the default buffer size will be used
webapp | return io.open(fd, *args, **kwargs)
webapp | [2020-08-13 05:57:31 +0000] [100] [INFO] Booting worker with pid: 100
webapp | INFO Initializing GRASS engine using /usr/bin/grass78
webapp | __ - … __ - _
webapp | LocalTime → 2020-08-13 05:57:31
webapp | Configuration →
webapp | . broker → redis://broker:6379//
webapp | . loader → celery.loaders.app.AppLoader
webapp | . scheduler → celery.beat.PersistentScheduler
webapp | . db → celerybeat-schedule
webapp | . logfile → [stderr]@%WARNING
webapp | . maxinterval → 5.00 minutes (300s)
worker | wait-for-it.sh: webapp:8000 is available after 3 seconds
worker | Checking for celery… OK
worker | Starting worker using broker at redis://broker
worker | INFO Initializing GRASS engine using /usr/bin/grass78
worker | /usr/local/lib/python3.8/dist-packages/celery/platforms.py:800: RuntimeWarning: You’re running the worker with superuser privileges: this is
worker | absolutely not recommended!
worker |
worker | Please specify a different user using the --uid option.
worker |
worker | User information: uid=0 euid=0 gid=0 egid=0
worker |
worker | warnings.warn(RuntimeWarning(ROOT_DISCOURAGED.format(
webapp |
webapp | Trying to establish communication…
webapp | /webodm/start.sh: line 86: curl: command not found
webapp |
webapp | Something doesn’t look right! ?_(?)_/?
webapp | The server returned a status code of when we tried to reach it.
webapp | ==========================
webapp |
webapp | Check if WebODM is running, maybe we tried to reach it too soon.
webapp |
webapp | Open a web browser and navigate to http://localhost:8000
webapp |
webapp | NOTE: Windows users using docker should replace localhost with the IP of their docker machine’s IP. To find what that is, run: docker-machine ip
webapp | INFO Initializing GRASS engine using /usr/bin/grass78
webapp | INFO Booting WebODM 1.4.2
webapp | INFO Registered [plugins.diagnostic.plugin]
webapp | INFO Registered [plugins.lightning.plugin]
webapp | INFO Registered [plugins.posm-gcpi.plugin]
webapp | INFO Registered [plugins.fullscreen.plugin]
webapp | INFO Registered [plugins.measure.plugin]
webapp | INFO Registered [plugins.contours.plugin]
webapp | WARNING Session data corrupted
webapp | WARNING Session data corrupted
webapp | WARNING Session data corrupted
webapp | WARNING Session data corrupted
webapp | WARNING Session data corrupted
webapp | WARNING Session data corrupted
webapp | WARNING Session data corrupted
Stopping webapp … done
Stopping worker … done
Stopping webodm_node-odm_1 … done
Stopping broker … done
Stopping db … done
Gracefully stopping… (press Ctrl+C again to force)

[email protected] MINGW64 ~/Documents/WebODM (master)
$ ./webodm.sh restart --with-micmac
Checking for docker… OK
Checking for git… OK
Checking for docker-compose… OK
Restarting WebODM…
docker-compose -f docker-compose.yml -f docker-compose.nodeodm.yml -f docker-compose.nodemicmac.yml down --remove-orphans
Removing webapp … done
Removing worker … done
Removing webodm_node-odm_1 … done
Removing broker … done
Removing db … done
Removing network webodm_default
Starting WebODM…

Using the following environment:

Host: localhost
Port: 8000
Media directory: appmedia
SSL: NO
SSL key:
SSL certificate:
SSL insecure port redirect: 80
Celery Broker: redis://broker
Default Nodes: 1

Make sure to issue a ./webodm.sh down if you decide to change the environment.

docker-compose -f docker-compose.yml -f docker-compose.nodeodm.yml -f docker-compose.nodemicmac.yml start || docker-compose -f docker-compose.yml -f docker-compose.nodeodm.yml -f docker-compose.nodemicmac.yml up --scale node-odm=1
Starting broker … failed
Starting node-odm … failed
Starting db … failed
Starting worker … failed
Starting node-micmac-1 … failed
Starting webapp … failed
No containers to start
Creating network “webodm_default” with the default driver
Pulling node-micmac-1 (dronemapper/node-micmac:)…
latest: Pulling from dronemapper/node-micmac
Digest: sha256:82fea8cf501fb7cd0ea948e1272b6ce001e3d532f401b2468d641f9ee219962a
Status: Downloaded newer image for dronemapper/node-micmac:latest
Creating webodm_node-odm_1 … done
Creating db … done
Creating broker … done
Creating node-micmac-1 … done
Creating worker … done
Creating webapp … done
Attaching to broker, db, webodm_node-odm_1, node-micmac-1, worker, webapp
broker | 1:C 13 Aug 2020 06:29:00.401 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
broker | 1:C 13 Aug 2020 06:29:00.401 # Redis version=6.0.6, bits=64, commit=00000000, modified=0, pid=1, just started
broker | 1:C 13 Aug 2020 06:29:00.401 # Warning: no config file specified, using the default config. In order to specify a config file use redis-server /path/to/redis.conf
broker | 1:M 13 Aug 2020 06:29:00.401 * Running mode=standalone, port=6379.
broker | 1:M 13 Aug 2020 06:29:00.401 # WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128.
broker | 1:M 13 Aug 2020 06:29:00.401 # Server initialized
broker | 1:M 13 Aug 2020 06:29:00.401 # WARNING overcommit_memory is set to 0! Background save may fail under low memory condition. To fix this issue add ‘vm.overcommit_memory = 1’ to /etc/sysctl.conf and then reboot or run the command ‘sysctl vm.overcommit_memory=1’ for this to take effect.
broker | 1:M 13 Aug 2020 06:29:00.401 # WARNING you have Transparent Huge Pages (THP) support enabled in your kernel. This will create latency and memory usage issues with Redis. To fix this issue run the command ‘echo never > /sys/kernel/mm/transparent_hugepage/enabled’ as root, and add it to your /etc/rc.local in order to retain the setting after a reboot. Redis must be restarted after THP is disabled.
db | LOG: database system was shut down at 2020-08-13 06:00:26 UTC
db | LOG: MultiXact member wraparound protections are now enabled
broker | 1:M 13 Aug 2020 06:29:00.402 * Ready to accept connections
db | LOG: database system is ready to accept connections
db | LOG: autovacuum launcher started
node-micmac-1 | info: Authentication using NoTokenRequired
node-micmac-1 | info: Listening on 0.0.0.0:6367 UDP for progress updates
node-micmac-1 | info: No tasks dump found
node-micmac-1 | info: Checking for orphaned directories to be removed…
node-micmac-1 | info: Server has started on port 3000
node-odm_1 | info: Authentication using NoTokenRequired
node-odm_1 | info: Listening on 0.0.0.0:6367 UDP for progress updates
node-odm_1 | info: No tasks dump found
node-odm_1 | info: Checking for orphaned directories to be removed…
node-odm_1 | info: Server has started on port 3000
worker | Postgres is up - executing command
worker | wait-for-it.sh: waiting for broker:6379 without a timeout
worker | wait-for-it.sh: broker:6379 is available after 0 seconds
worker | wait-for-it.sh: waiting for webapp:8000 without a timeout
webapp | Postgres is up - executing command
webapp | wait-for-it.sh: waiting for broker:6379 without a timeout
webapp | wait-for-it.sh: broker:6379 is available after 0 seconds
webapp |
webapp | _ __ __ ____ ____ __ ___
webapp | | | / /__ / /_ / __ / __ / |/ /
webapp | | | /| / / _ / __ / / / / / / / /|/ /
webapp | | |/ |/ / __/ /
/ / // / // / / / /
webapp | |/|/_/./_/__// //
webapp |
webapp |
webapp | Checking python version… 3.x, good!
webapp | Checking GDAL version… GDAL 3.1.2, released 2020/07/07, excellent!
webapp | Running migrations
webapp | Generated secret key
webapp | INFO Initializing GRASS engine using /usr/bin/grass78
webapp | Operations to perform:
webapp | Apply all migrations: admin, app, auth, contenttypes, guardian, nodeodm, sessions
webapp | Running migrations:
webapp | No migrations to apply.
webapp | INFO Added AnonymousUser to default group
webapp | INFO Initializing GRASS engine using /usr/bin/grass78
webapp | Checking for celery… OK
webapp | Scheduler is not running.
webapp | Generating nginx configurations from templates…
webapp | - nginx/nginx-ssl.conf
webapp | - nginx/nginx.conf
webapp | celery beat v4.4.0 (cliffs) is starting.
webapp | [2020-08-13 06:29:04 +0000] [90] [INFO] Starting gunicorn 19.7.1
webapp | [2020-08-13 06:29:04 +0000] [90] [INFO] Listening at: unix:/tmp/gunicorn.sock (90)
webapp | [2020-08-13 06:29:04 +0000] [90] [INFO] Using worker: sync
webapp | /usr/lib/python3.8/os.py:1023: RuntimeWarning: line buffering (buffering=1) isn’t supported in binary mode, the default buffer size will be used
webapp | return io.open(fd, *args, **kwargs)
webapp | [2020-08-13 06:29:04 +0000] [113] [INFO] Booting worker with pid: 113
webapp | INFO Initializing GRASS engine using /usr/bin/grass78
webapp | __ - … __ - _
webapp | LocalTime → 2020-08-13 06:29:04
webapp | Configuration →
webapp | . broker → redis://broker:6379//
webapp | . loader → celery.loaders.app.AppLoader
webapp | . scheduler → celery.beat.PersistentScheduler
webapp | . db → celerybeat-schedule
webapp | . logfile → [stderr]@%WARNING
webapp | . maxinterval → 5.00 minutes (300s)
worker | wait-for-it.sh: webapp:8000 is available after 5 seconds
worker | Checking for celery… OK
worker | Starting worker using broker at redis://broker
worker | INFO Initializing GRASS engine using /usr/bin/grass78
worker | /usr/local/lib/python3.8/dist-packages/celery/platforms.py:800: RuntimeWarning: You’re running the worker with superuser privileges: this is
worker | absolutely not recommended!
worker |
worker | Please specify a different user using the --uid option.
worker |
worker | User information: uid=0 euid=0 gid=0 egid=0
worker |
worker | warnings.warn(RuntimeWarning(ROOT_DISCOURAGED.format(
webapp |
webapp | Trying to establish communication…
webapp | /webodm/start.sh: line 86: curl: command not found
webapp |
webapp | Something doesn’t look right! ?_(?)_/?
webapp | The server returned a status code of when we tried to reach it.
webapp | ==========================
webapp |
webapp | Check if WebODM is running, maybe we tried to reach it too soon.
webapp |
webapp | Open a web browser and navigate to http://localhost:8000
webapp |
webapp | NOTE: Windows users using docker should replace localhost with the IP of their docker machine’s IP. To find what that is, run: docker-machine ip
webapp | INFO Initializing GRASS engine using /usr/bin/grass78
webapp | INFO Booting WebODM 1.4.2
webapp | INFO Registered [plugins.diagnostic.plugin]
webapp | INFO Registered [plugins.lightning.plugin]
webapp | INFO Registered [plugins.posm-gcpi.plugin]
webapp | INFO Registered [plugins.fullscreen.plugin]
webapp | INFO Registered [plugins.measure.plugin]
webapp | INFO Registered [plugins.contours.plugin]
webapp | WARNING Session data corrupted
webapp | WARNING Session data corrupted
webapp | WARNING Session data corrupted