Docker software stack for MBON server serving early-alert dashboards.
For more detailed documentation please see ./documentation/
.
Below is a list of "product" instances that are built with this framework. Each "product" instance is built on a git branch in this repository, based off of the master branch.
Name | git branch | status | URL | Description |
---|---|---|---|---|
SEUS Monitoring Dash | client-seus |
:heavy_check_mark: up | http://seus-dashboard.marine.usf.edu:3000 | Cram in tons of data from MBON, NERRS, & GR NMS. |
FGB NMS Sentinel Sites Dash | client-fgb |
:heavy_check_mark: up | http://fgbnms-dashboard.marine.usf.edu:3000 | Monitoring a ring of sites around the Flower Garden Banks National Marine Sanctuary where anomalously high values of chlorophyll-a concentration, for example, can be detected from satellite imagery before reaching the reefs. |
FK NMS | client-fk |
:heavy_check_mark: up | http://fknms-dashboard.marine.usf.edu:3000 | Monitoring of satellite, bouy, & river discharge data around the Florida Keys National Marine Sanctuary. |
FWRI SCTLD Dashboard | client-fwc |
:x: project ended | http://fwc-dashboard.marine.usf.edu:3000 | Monitoring the spread of stony coral tissue loss disease in the Florida Keys. |
Herein we use the terms dashboard "framework" for something that people can use to build their own "products". An example product: "A dashboard so show fish population correlated with nutrient data and satellite imagery". Versus the framework: "The stack that someone could install, configure, and populate the DB to build the aforementioned product."
The "master" branch of the repository is the framework used to build products. This framework contains the common core of software configuration and setup for any product build.
The client-*
branches (eg client-fgbnms, client-fk_water_quality, client-fknms, client-fwc) are products ready to be cloned built with minimal configuration.
For details on how to work within this organizational setup see the basic-workflow section below.
docker-compose.yml
handles most configuration.
The subdirectories (eg erddap, nginx, etc) contain container-specific files.
In general you will configure your stack by:
docker-compose.yml
and container-specific configuration files inside of ./erddap/
, ./grafana/
, etc.
Directions for this is included within a README.md
file inside of each directory.
Changes made to these files should be version controlled using git..env
.
This file should not be added to git for security reasons.
A backup strategy for this file is not included.It is suggested that you configure each container one-at-a-time. To do this simply comment out the relevant sections of docker-compose.yml.
sudo usermod -aG docker ${USER}
git clone https://github.com/marinebon/mbon-dashboard-server.git -b client-fknms
client-fknms
, client-fgbns
, etc)cd mbon-dashboard-server
git submodule update --init --recursive --remote
client-fknms
branch) will already have configuration for these set up. Please take the REQUIRED steps below and use the OPTIONAL configuration options to further customize your usage as needed.
.env
file.
documentation/example_env_file
for an example../postgres/README.md
./erddap/README.md
docker compose up airflow-init
chmod -R 777 airflow/ influxdb/ grafana/ postgres/ && docker compose up airflow-init
docker compose up --build -d
./influxdb/README.md
./grafana/README.md
502: bad gateway
error: this means that grafana can't connect to the timeseries database (influxDB).
The workflow here is to do any non-site-specific work on the master branch.
Each client installation then has a client-*
branch coming off of the master branch.
To update a client branch to use the latest master git rebase
is used.
docker-compose.yml
or files within container foldersdocker-compose up --build -d
to update what's runninggit pull
then git commit
your changes
.env
or hostname changes to erddap/setup.xml
git branch
to be see if you are on the right branchgit branch client-*-backup-1
to create new backup branchgit fetch
so git knows about remote repo changesgit rebase origin/master
to prepend changes from mastergit push --force-with-lease origin client-*
~> 1.28.5
. Not sure exactly the min version but 1.21.2
was tested and does not work.