Servers¶
This doc describes where and how various M3 applications are run. They are organized by server.
m3-u.shore.mbari.org¶
This is the proxy server for the M3 rest services as well as the web server for videos. You can access it at https://m3.shore.mbari.org/.
Server Name
The server is m3-u.shore.mbari.org and has a CNAME pointing at it of m3.shore.mbari.org.
galadriel.shore.mbari.org¶
Runs M3 rest services
Docker on Galadriel¶
mbari/annosauruson port 8100mbari/vampire-squidon port 8200mbari/onion port 7070registry:3on port 5000. This an internal docker repository
elrond.shore.mbari.org¶
Runs annosaurus instances.
Docker on Elrond¶
mbari/annosauruson port 8100mbari/razielon port 8400. This is the VARS configuration server.
Crontab on Elrond¶
30 18 * * 6 "$HOME/Applications/vars-cli/bin/merge_housekeeping.sh" > $HOME/Library/Logs/elrond_merge_housekeeping.log 2>&1
celebrimbor.shore.mbari.org¶
Runs supporting rest services and midwater transect web app
Docker on Celebrimbor¶
mbari/annosauruson port 8100mbari/charybdison port 8300portal.shore.mbari.org:5000/mbari/midwater-transect-webappon port 8080
Cron on Celebrimbor¶
Running under brian. Note that the latest Java LTS should be installed on Quasar so non-docker apps can be run to. This simplfies networks share access for some apps.
# --- FRAMEGRABS
0 0 * * 2 $HOME/Applications/vars-cli/bin/images_find_deleted /mbari/framegrabs > $HOME/Library/Logs/celebrinbor_find_deleted_images.log 2>&1
# --- EXTERNAL SUPPORT
# Replication runs on 1st Monday of month. Update images on first tuesday
0 0 8 * * /u/brian/Applications/vars-cli/vars kb watermark /mbari/VideoLab/VARS_Images/external /u/brian/Applications/vars-cli/etc/overlay.png > /u/brian/Library/Logs/celebrinbor_watermark_kb.log 2>&1
#0 12 8 * * /u/brian/Applications/vars-cli/vars anno watermark /mbari/framegrabs_watermarked /u/brian/Applications/vars-cli/etc/overlay.png > /u/brian/Library/Logs/celebrinbor_watermark_anno.log 2>&1
# --- FATHOMNET
0 * * * * BASH_ENV=~/.bashrc bash -l -c "conda activate;/u/brian/Applications/fathomnet/write_homemap.py /mbari/FathomNet/web/assets/images/homemap.png > /u/brian/Library/Logs/quasar-write_homemap.log 2>&1"
#0 0 * * * docker rm fv0 > /dev/null 2>&1; docker run --name fv0 -e FATHOMNET_APIKEY=RGNXXgFDCrQ2AVTNuifFUbXzVFu3x7 mbari/fathomnet-support validate-images -d=2 > /u/brian/Library/Logs/celebrinbor-validate-images-daily.log 2>&1
#0 0 1 * * docker rm fv1 > /dev/null 2>&1; docker run --name fv1 -e FATHOMNET_APIKEY=RGNXXgFDCrQ2AVTNuifFUbXzVFu3x7 mbari/fathomnet-support validate-images -f > /u/brian/Library/Logs/celebrinbor-validate-images-monthly.log 2>&1
0 0 * * * docker rm fv5 > /dev/null 2>&1; docker run --name fv5 -e FATHOMNET_APIKEY=RGNXXgFDCrQ2AVTNuifFUbXzVFu3x7 mbari/fathomnet-support fathomnet images add-missing-width-and-height > /u/brian/Library/Logs/celebrinbor-add-missing-width-and-height-daily.log
0 0 * * 0 docker rm fv2 > /dev/null 2>&1; docker run --name fv2 -e FATHOMNET_APIKEY=RGNXXgFDCrQ2AVTNuifFUbXzVFu3x7 mbari/fathomnet-support fathomnet notify invalid-images > /u/brian/Library/Logs/celebrinbor-invalid-image-notify.log 2>&1
0 * * * * docker rm fv3 > /dev/null 2>&1; docker run --name fv3 mbari/fathomnet-support fathomnet ncei archive-scanner -a RGNXXgFDCrQ2AVTNuifFUbXzVFu3x7 "https://oer.hpc.msstate.edu/FathomNet/staging/" > /u/brian/Library/Logs/celebrinbor-archive-scanner.log 2>&1
# every 30 minutes scan for new image packages and notify users
*/30 * * * * docker rm fv4 > /dev/null 2>&1; docker run --name fv4 mbari/fathomnet-support fathomnet notify new-uploads -a RGNXXgFDCrQ2AVTNuifFUbXzVFu3x7 > /u/brian/Library/Logs/celebrinbor-upload-scanner.log 2>&1
# The following runs fine on dev machines but each update timesout when run from quasar. Whay???
#0 6 * * * /u/brian/Applications/vars-cli/bin/vars i2map merge-all -t 30 /mbari/AUVCTD/surveys /u/brian/Library/Logs/celebrinbor-i2map-merge 2>&1
arwen.shore.mbari.org¶
Arewn has docker_user configured with r/w access to atlas:/framegrabs and read access to titan:/M3. Its purpose is to archive framegrabs and register new videos.
Docker on Arwen¶
mbari/beholderon port 8088- `mbari/skimmer1 on port 8089
galadriel.shore.mbari.org:5000/arwen/panopteson port 8080
Cron on Arwen¶
Running under brian
0 19 * * 2 $HOME/bin/arwen/registrar.sh /mbari/M3/master "https://m3.shore.mbari.org/videos/M3/master" 300 > $HOME/Library/Logs/arwen_registrar_master.log 2>&1
0 1 * * 1,4 $HOME/bin/arwen/registrar.sh /mbari/M3/mezzanine "https://m3.shore.mbari.org/videos/M3/mezzanine" 300 > $HOME/Library/Logs/arwen_registrar_mezzanine.log 2>&1
0 18 * * 2,5 $HOME/bin/arwen/registrar.sh /mbari/M3/proxy "https://m3.shore.mbari.org/videos/M3/proxy" > $HOME/Library/Logs/arwen_registrar_proxy.log 2>&1
0 1 * * 5 $HOME/bin/arwen/registrar.sh /mbari/M3_Proj_Bioinspiration/StereoCameras/ "https://m3.shore.mbari.org/videos/Projects/Bioinspiration/StereoCameras" > $HOME/Library/Logs/arwen_registrar_stereocameras.log 2>&1
0 12 * * 6 $HOME/bin/arwen/registrar.sh /mbari/M3_Proj_Bioinspiration/Optim/LRAUV/ "https://m3.shore.mbari.org/videos/Projects/Bioinspiration/Optim/LRAUV" > $HOME/Library/Logs/arwen_registrar_optim.log 2>&1
#0 12 * * 6 $HOME/bin/arwen/registrar.sh /mbari/M3_Proj_Bioinspiration/Triton/ "https://m3.shore.mbari.org/videos/Projects/Bioinspiration/Optim/Triton" > $HOME/Library/Logs/arwen_registrar_triton.log 2>&1
0 2 * * 7 $HOME/bin/arwen/registrar.sh /mbari/M3/Projects/Piscivore "https://m3.shore.mbari.org/videos/M3/Projects/Piscivore" > $HOME/Library/Logs/arwen_registrar_piscivore.log 2>&1
0 1 * * 6 $HOME/bin/arwen/registrar.sh /mbari/M3/Projects/Midwater/TopoCam "https://m3.shore.mbari.org/videos/M3/Projects/Midwater/TopoCam" > $HOME/Library/Logs/arwen_registrar_topocam.log 2>&1
registrar.sh¶
#!/usr/bin/env bash
# Brian Schlining
# 2025-10-09
#
# USAGE: registrar.sh <PATH> <URL_OF_PATH> <MAX_VIDEOS (optional)>
#
# EXAMPLE:
# registrar.sh /mbari/M3/master "https://m3.shore.mbari.org/videos/M3/master" 300
# registrar.sh /mbari/M3/mezzanine "https://m3.shore.mbari.org/videos/M3/mezzanine"
export PATH="$PATH:/u/brian/Applications/vars-cli/bin"
if [ $# -lt 2 ]; then
vars media register-all --help
exit 1
fi
MAX_PARAM=""
if [ $# -eq 3 ]; then
MAX_PARAM="--max $3"
fi
vars media register-all "$1" "$2" $MAX_PARAM
expanse.shore.mbari.org¶
Expanse replaces the older server seaspray. It runs the Deep-sea guide as well as various support applications.
Podman on Expanse¶
portal.shore.mbari.org:5000/mbari/deepseaguideon port 8080
Cron on Expanse¶
Running as local user (non LDAP) brian
#0 18 * * FRI podman rm housekeeping > /dev/null 2>&1; podman run --name=housekeeping portal.shore.mbari.org:5000/mbari/m3-merge-rov housekeeping.sh > /home/brian/.m3/logs/merge.log 2>&1
30 7 * * SAT podman rm midwater > /dev/null 2>&1; podman run --name=midwater portal.shore.mbari.org:5000/mbari/midwater-transects update-database-app > /home/brian/.m3/logs/midwater-db-update.log 2>&1
51 7 * * * podman rm samples1 > /dev/null 2>&1; podman run --name=samples1 portal.shore.mbari.org:5000/mbari/m3-merge-rov samples_update_rovctd > /home/brian/.m3/logs/samples_update_rovctd.log 2>&1
59 7 * * * podman rm samples2 > /dev/null 2>&1; podman run --name=samples2 portal.shore.mbari.org:5000/mbari/m3-merge-rov samples_update_keywords > /home/brian/.m3/logs/samples_update_keywords.log 2>&1
#0 9 * * SAT podman rm sync > /dev/null 2>&1; podman run --name=sync mbari/m3-support sync-video-metadata -k MjAxNy0wMS0yM1QxODoxNzoyMy41MjZa > /home/brian/.m3/logs/sync_video_metadata.log 2>&1