WebODM native ubuntu AWS - GRASS WO_BROKER

Hey All, I have succeeded in installing webodm (with node and odm on same machine) on Ubuntu 16.04 natively and quite clean, I’m planning to write a how to that updates the old installation scripts. The system works fine and very fast on large Amazon instances, but I have a few open errors and questions:

I get this error when starting “./start.sh”:
WO_BROKER environment variable is not set. Defaulting to redis://localhost
In addition I get his warning:
WARNING Could not find a GRASS 7 executable. GRASS scripts will not work.
Checking for celery… OK

Do I need to set the WO_BROKER environment var manually? what does it do?
Any ideas on the Grass 7 executable?

In addition I see I need to run ./worker.sh to get things to start moving - two questions:

  1. Why not make this part of the start.sh script?
  2. does it help if I run more than one worker for a single task?


Hey @kaaspad, the WO_BROKER is just a warning (it will use a default value if you don’t set it). It specifies the location of the celery broker (used by the workers to communicate with each other).

For grass you need to install grass-core, otherwise volume measurements will not work.

  1. start.sh does not start a worker because of the way we setup our docker-compose.yml file. Since workers and the main application belong to separate containers, we organized the scripts to be separate also.

  2. Only if you run them on a separate machine. Each worker already spawns multiple processes.

@pierotofy thanks for the quick reply!
Will install grass-core now.
What should I set WO_BROKER to?
Thanks for the info on the worker it seems that there is a lot of code that supports the docker side of things (thats where I had to make a bunch of manual fixes, which I’ll share documentation on).
Just to make sure I understand your answer, since I’m running natively and everything is on one machine, I just need to run worker.sh (one worker), once?

On another note I was going thru some of the website code and I see you added i18n and trans tags across the board. I would be interested in taking a shot at translating everything.

Just to verify the steps I would need to take:

  1. modify webodm/settings.py and includes something like this:

(‘en’, _(‘English’)),
(‘nv’, _(‘Navajo’)),

  1. set locale paths in webodm/settings.py:

os.path.join(BASE_DIR, ‘locale’),

  1. in webodm dir (or from somewhere else?) - run

python manage.py makemessages -l ‘fr’

  1. find the po files, translate the msgstr’s

  2. from webodm dir(or somewhere else?) run

python manage.py compilemessages

is that correct?


Leave WO_BROKER set to the default (redis://localhost)

Yes you only need to run one worker.

The trans tags haven’t been implemented everywhere (in fact, only in a small part of the software). See this conversation for more info: Localization support

Your list of steps is correct, as far as the Django side is concerned. We’ve received much interest in translating WebODM, but none has had the time to do it (or provide financial support to undertake the effort). Any help toward this effort is thus very appreciated! :slight_smile: