Skip to content

Commit 081bdcd

Browse files
Merge pull request #245 from maurerle/patch-1
2 parents b0fe4eb + 3c3fd93 commit 081bdcd

File tree

1 file changed

+137
-2
lines changed

1 file changed

+137
-2
lines changed

source/installation.rst

Lines changed: 137 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -375,7 +375,7 @@ You should see somethings similar to the following:
375375
docker compose version 24.0.5, build ced0996600
376376
377377
378-
Step 3. Download and Launch WebODM
378+
Step 3a. Download and Launch WebODM
379379
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
380380

381381
From a terminal type:
@@ -388,6 +388,140 @@ From a terminal type:
388388
389389
Then open a web browser to http://localhost:8000.
390390

391+
Step 3b. Start Docker Compose stack
392+
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
393+
394+
copy the following 3 files into a newly created folder:
395+
396+
The ``config-default.json``:
397+
398+
.. code:: json
399+
400+
{
401+
"instance": "node-OpenDroneMap",
402+
"odm_path": "/code",
403+
404+
"logger": {
405+
"level": "info",
406+
"maxFileSize": 104857600,
407+
"maxFiles": 10,
408+
"logDirectory": ""
409+
},
410+
411+
"port": "auto",
412+
"deamon": false,
413+
"parallelQueueProcessing": 8,
414+
"cleanupTasksAfter": 2880,
415+
"test": false,
416+
"testSkipOrthophotos": false,
417+
"testSkipDems": false,
418+
"token": "",
419+
"authorizedIps": [],
420+
"maxImages": ""
421+
}
422+
423+
The ``init.sql``:
424+
425+
.. code:: sql
426+
427+
CREATE EXTENSION postgis_raster;
428+
SET postgis.gdal_enabled_drivers = 'ENABLE_ALL';
429+
430+
And finally the ``compose.yml``:
431+
432+
.. code:: yml
433+
434+
services:
435+
webodm-node-odm-1:
436+
image: opendronemap/nodeodm:gpu
437+
container_name: webodm-node-odm-1
438+
ports:
439+
- "3000:3000"
440+
volumes:
441+
- ./config-default.json:/var/www/config-default.json
442+
privileged: true
443+
restart: unless-stopped
444+
deploy:
445+
resources:
446+
reservations:
447+
devices:
448+
- driver: nvidia
449+
capabilities: [gpu]
450+
451+
webapp-odm:
452+
image: opendronemap/webodm_webapp
453+
container_name: webapp
454+
entrypoint: /bin/bash -c "service cron start && chmod +x /webodm/*.sh && /bin/bash -c \"/webodm/wait-for-it.sh -t 0 redis-odm:6379 -- /webodm/start.sh\" && python manage.py migrate"
455+
restart: always
456+
volumes:
457+
- ./data/webodm:/webodm/app/media:z
458+
ports:
459+
- "8000:8000"
460+
depends_on:
461+
- db-odm
462+
- redis-odm
463+
- webodm-node-odm-1
464+
environment:
465+
- WO_BROKER=redis://redis-odm
466+
- WO_DEFAULT_NODES=1
467+
- WO_HOST=localhost
468+
- WO_PORT=8000
469+
- WO_MEDIA_DIR=appmedia
470+
- WO_DB_DIR=dbdata
471+
- WO_SSL=NO
472+
- WO_SSL_INSECURE_PORT_REDIRECT=80
473+
- WO_DATABASE_HOST=db-odm
474+
- WO_DATABASE_NAME=webodm_dev
475+
- WO_DATABASE_USER=postgres
476+
- WO_DATABASE_PASSWORD=postgres
477+
478+
redis-odm:
479+
image: redis:alpine
480+
container_name: redis-odm
481+
restart: always
482+
483+
db-odm:
484+
image: postgis/postgis:17-3.5-alpine
485+
container_name: db-odm
486+
restart: always
487+
volumes:
488+
- ./data/odm-db:/var/lib/postgresql/data
489+
- ./init.sql:/docker-entrypoint-initdb.d/init.sql
490+
environment:
491+
- POSTGRES_USER=postgres
492+
- POSTGRES_PASSWORD=postgres
493+
- POSTGRES_DB=webodm_dev
494+
healthcheck:
495+
test: [ "CMD", "pg_isready", "-q", "-d", "webodm_dev", "-U", "postgres"]
496+
timeout: 45s
497+
interval: 20s
498+
retries: 5
499+
500+
worker:
501+
image: opendronemap/webodm_webapp
502+
container_name: worker
503+
entrypoint: /bin/bash -c "/webodm/wait-for-it.sh -t 0 redis-odm:6379 -- /webodm/wait-for-it.sh -t 0 webapp-odm:8000 -- /webodm/worker.sh start"
504+
restart: always
505+
volumes:
506+
- ./data/webodm:/webodm/app/media:z
507+
depends_on:
508+
- redis-odm
509+
- db-odm
510+
environment:
511+
- WO_BROKER=redis://redis-odm
512+
- WO_DATABASE_HOST=db-odm
513+
- WO_DATABASE_NAME=webodm_dev
514+
- WO_DATABASE_USER=postgres
515+
- WO_DATABASE_PASSWORD=postgres
516+
517+
Finally, start the stack using ``docker compose up -d``.
518+
You can now access WebODM at http://localhost:8000 and the nodeODM at http://localhost:3000.
519+
520+
To view logs of the services use ``docker compose logs``
521+
522+
To shut down the services run ``docker compose down``.
523+
524+
391525
Basic Commands and Troubleshooting
392526
----------------------------------
393527

@@ -433,7 +567,8 @@ Other useful commands are listed below:
433567
Hello, WebODM!
434568
--------------
435569

436-
After running ./webodm.sh start and opening WebODM in the browser, you will be greeted with a welcome message and will be asked to create the first user. Take some time to familiarize yourself with the web interface and explore its various menus.
570+
After starting the containers using 3a. or 3b. you can open WebODM in the browser.
571+
This will greet you with a welcome message and will ask to create the first user. Take some time to familiarize yourself with the web interface and explore its various menus.
437572

438573
.. figure:: images/webodmdashboard.webp
439574
:alt: Screenshot of WebODM Dashboard

0 commit comments

Comments
 (0)