VMs and logical component layout¶

-
Main index page: https://okeanids.mbari.org/
General entry point for users/operators.
-
Dash4 frontend: https://okeanids.mbari.org/dash4/
Main user interface with extended features for LRAUV monitoring and commanding. Includes administrative functions.
-
TethysDash frontend: https://okeanids.mbari.org/TethysDash/
The traditional TethysDash user interface.
Okeanids¶
okeanids is the primary endpoint for client applications and LRAUV vehicles.
This is basically a "front-end" machine to the actual server, tethysdash2, to:
- Provide secure (HTTPS) access to the UIs and LRAUVs
- Expose the LRAUV mission XML schemas
Notable entries in /etc/httpd/conf.d/okeanids.conf are as follows:
<VirtualHost *:80>
...
# Note: all requests redirected to https except /tethys (see Location entry below)
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteCond %{REQUEST_URI} !^/(tethys\b|tethys/.*)
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
#----------------------------------------------------------------
# /tethys : Location of mission XML schemas.
# NOTE:
# - We need this under simple 'http://' because of all the
# LRAUV missions referring to the schemas in this way.
# - proxying tethyshub, where the schemas are generated and "published"
<Location /tethys>
ProxyPass http://tethyshub.shore.mbari.org/tethys
ProxyPassReverse http://tethyshub.shore.mbari.org/tethys
</Location>
#----------------------------------------------------------------
</VirtualHost>
...
<VirtualHost okeanids.mbari.org:443>
(... SSL configs (as set by IS) ...)
# This is the primary proxy to tethysdash2:
ProxyPass / http://tethysdash2.shore.mbari.org/
</VirtualHost>
TethysDash backend (tethysdash2)¶
Running on tethysdash2, this is the central service that supports all
TethysDash-related operations for the LRAUV vehicles and UI applications.
/etc/httpd/conf.d/tethysdash.conf basically consists of the following:
<VirtualHost *:80>
ServerAdmin carueda@mbari.org
ServerName tethysdash2.shore.mbari.org
#-----------------------------------------------------
# Via DocumentRoot, the following to be handled:
# - /emaillogs TethysDash email log directories
# - /dash4yz* Any prerelease/alternative Dash4 versions
# - /tethysl TethysL Editor (see engine service below)
# - /cellmap Erik's cell coverage map
# - /widget Steve's widgets
# - /... (any others as needed)
DocumentRoot /var/www/html
#-----------------------------------------------------------------------------------------
# Dockerized TethysDash system:
ProxyPass /TethysDash http://localhost:8080/TethysDash
ProxyPassReverse /TethysDash http://localhost:8080/TethysDash
ProxyPass /dash4 http://localhost:8080/dash4
ProxyPassReverse /dash4 http://localhost:8080/dash4
# "tdusr" app available at the root / location so need to indicate associated resources for proper dispatch:
ProxyPassMatch "^/(index.html|((js|fonts|statics|css)/(.*)))" http://localhost:8080/$1
#-----------------------------------------------------------------------------------------
#------------------------------------------------------------------
# TethysL Engine service:
<Location /tethysl-engine>
ProxyPass http://localhost:7171
ProxyPassReverse http://localhost:7171
</Location>
#------------------------------------------------------------------
</VirtualHost>
Atlas mount: /LRAUV¶
Several subdirectories under /LRAUV on tethysdash2 are handled by TethysDash.
Service start-up¶
-
Apache and the docker engine configured by IS to start at boot time.
-
The TethysDash system itself (including the database) is configured to start at boot time via corresponding Docker Compose support.
LRAUVs¶
As can be seen in secure.cfg
(in the lrauv-config configuration repository),
LRAUV vehicles are (by default) configured to interact with the TethysDash backend via okeanids:
Vehicle.dashIP = "134.89.2.23"; // numeric IPv4 to okeanids.mbari.org
Vehicle.dashPort = "443";
Vehicle.dashPath = "/TethysDash";
Vehicle.dashSSL = 1 bool;