Skip to content

VMs and logical component layout

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;