Need help how to install webODM (opendronemaps) on Unraid


Recommended Posts

Hi.

 

Just starting out with Unraid OS (Version: 6.11.5). Everything looks good and there are a lot of apps to use (almost everything I need). But what if i want to run Opendronemaps https://opendronemap.org/ on my server? I need to run the WebODM service and not just the console version. I know there is a docker version and I used to run it on my ubuntu server, kind of one click setup and everything just worked.

 

Can someone guide me on how to get WebODM work on my server? Any good dockercontainer or App that installs automagically? 😁

Link to comment

You should be able to run the same container on Unraid.

 

if the container is started using Docker Run then as it appears nobody has created an Unraid specific template it is just a case of providing the relevant parameters in the blank template Unraid provides.

 

if the container is started via Docker Compose then there an Unraid plugin for Docker Compose to help with doing it that way.

  • Like 1
Link to comment

Thank you!

 

I installed the compose plugin and found a WebODM docker-compose.yml file on github https://github.com/OpenDroneMap/WebODM/blob/master/docker-compose.yml but I don't know exactly how to configure all the volumes? I don't know much about docker to begin with. Maybe you can give me some examples about the volumes. I have the appdata share and some shares created by plex app etc etc 😀

 

This is the compose file from github.

# This configuration does not include a processing node
# Which makes for faster setup times
version: '2.1'
volumes:
  dbdata:
  appmedia:
services:
  db:
    image: opendronemap/webodm_db
    container_name: db
    ports:
      - "5432"
    volumes:
      - dbdata:/var/lib/postgresql/data:Z
    restart: unless-stopped
    oom_score_adj: -100
  webapp:
    image: opendronemap/webodm_webapp
    container_name: webapp
    entrypoint: /bin/bash -c "chmod +x /webodm/*.sh && /bin/bash -c \"/webodm/wait-for-postgres.sh db /webodm/wait-for-it.sh -t 0 broker:6379 -- /webodm/start.sh\""
    volumes:
      - ${WO_MEDIA_DIR}:/webodm/app/media:z
    ports:
      - "${WO_PORT}:8000"
    depends_on:
      - db
      - broker
      - worker
    environment:
      - WO_PORT
      - WO_HOST
      - WO_DEBUG
      - WO_BROKER
      - WO_DEV
      - WO_DEV_WATCH_PLUGINS
    restart: unless-stopped
    oom_score_adj: 0
  broker:
    image: redis
    container_name: broker
    restart: unless-stopped
    oom_score_adj: -500
  worker:
    image: opendronemap/webodm_webapp
    container_name: worker
    entrypoint: /bin/bash -c "/webodm/wait-for-postgres.sh db /webodm/wait-for-it.sh -t 0 broker:6379 -- /webodm/wait-for-it.sh -t 0 webapp:8000 -- /webodm/worker.sh start"
    volumes:
      - ${WO_MEDIA_DIR}:/webodm/app/media:z
    depends_on:
      - db
      - broker
    environment:
      - WO_BROKER
      - WO_DEBUG
    restart: unless-stopped
    oom_score_adj: 250

 

Link to comment
  • 3 weeks later...

Ok, I got webODM installed and here is what I did.

1) make sure you have the docker compose plugin installed

2) Click "add new stack" and give it a name

3) Scroll down to it and click the cog wheel (settings) and select "Compose File"

4) REMOVE any text thats pre-populated and paste the unedited docker-compose.yml (file is on github) and click "SAVE"

5) Same as step 3 but select "ENV FILE"

6) REMOVE anything in box and this is the contents of the one I used:  (I only edited WO_PORT and WO_MEDIA_DIR

Quote

 

WO_HOST=localhost
WO_PORT=8645
WO_MEDIA_DIR=/mnt/user/appdata/webODM/media
WO_SSL=NO
WO_SSL_KEY=
WO_SSL_CERT=
WO_SSL_INSECURE_PORT_REDIRECT=80
WO_DEBUG=NO
WO_DEV=NO
WO_BROKER=redis://broker
WO_DEFAULT_NODES=1

 

 

I dont have time to test back on any results yet and This might be all wrong but its working so far.

Here is the Docker Compose file:

 
# This configuration does not include a processing node
# Which makes for faster setup times
version: '2.1'
volumes:
  dbdata:
  appmedia:
services:
  db:
    image: opendronemap/webodm_db
    container_name: db
    ports:
      - "5432"
    volumes:
      - dbdata:/var/lib/postgresql/data:Z
    restart: unless-stopped
    oom_score_adj: -100
  webapp:
    image: opendronemap/webodm_webapp
    container_name: webapp
    entrypoint: /bin/bash -c "chmod +x /webodm/*.sh && /bin/bash -c \"/webodm/wait-for-postgres.sh db /webodm/wait-for-it.sh -t 0 broker:6379 -- /webodm/start.sh\""
    volumes:
      - ${WO_MEDIA_DIR}:/webodm/app/media:z
    ports:
      - "${WO_PORT}:8000"
    depends_on:
      - db
      - broker
      - worker
    environment:
      - WO_PORT
      - WO_HOST
      - WO_DEBUG
      - WO_BROKER
      - WO_DEV
      - WO_DEV_WATCH_PLUGINS
    restart: unless-stopped
    oom_score_adj: 0
  broker:
    image: redis
    container_name: broker
    restart: unless-stopped
    oom_score_adj: -500
  worker:
    image: opendronemap/webodm_webapp
    container_name: worker
    entrypoint: /bin/bash -c "/webodm/wait-for-postgres.sh db /webodm/wait-for-it.sh -t 0 broker:6379 -- /webodm/wait-for-it.sh -t 0 webapp:8000 -- /webodm/worker.sh start"
    volumes:
      - ${WO_MEDIA_DIR}:/webodm/app/media:z
    depends_on:
      - db
      - broker
    environment:
      - WO_BROKER
      - WO_DEBUG
    restart: unless-stopped
    oom_score_adj: 250

 

Edited by kilobit
removed extra lines in docker compose that accidentally were copied
Link to comment
  • 8 months later...
  • 1 month later...

I was able to setup this up last night. using the information above. is there somewhere you are getting stuck? 

I would say the one thing i would change is this in the ENV File: "WO_MEDIA_DIR=/mnt/user/appdata/webODM/media". Use a path of another share. when left this way it was storing all my media uploaded to be anaylze in the appdata which filled up my docker img file

  • Like 1
Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.