App 1 prod setup for super users
This document lists steps for user uploading flight data to the prod environment using their machines. Ideally, there’ll be a minimal number of such users, and most will upload data using designated servers at research stations.
Installation steps
These steps are specific to the Ubuntu 20.04+ Linux operating system. Changes for other Linux operating systems are mentioned. For Windows users, install wsl2 and your choice of Linux installation before following these steps.
Install git, exiftool v12.60+, nodejs v21.6.1+ npm v10.2.4+ (it should be installed automatically with nodejs)
git installation: https://www.digitalocean.com/community/tutorials/how-to-install-git-on-ubuntu
exiftool installation: https://exiftool.org/install.html#Unix
nodejs installation tutorial: https://www.digitalocean.com/community/tutorials/how-to-install-node-js-on-ubuntu-22-04
replacecurl -sL https://deb.nodesource.com/setup_18.x -o nodesource_setup.sh
withcurl -fsSL https://deb.nodesource.com/setup_22.x -o nodesource_setup.sh
For different flavors of linux systems, tutorials are easily available
Install python3.9+
use python3 --version to check current python version. It should be available by default on ubuntu 20.04+
installation tutorial: https://linuxize.com/post/how-to-install-python-3-9-on-ubuntu-20-04/
Install python virtual env:
sudo apt install -y python3-venv
(The command may vary based on linux flavor and number of python installations)Get codebase
git clone https://github.com/precision-sustainable-ag/drone-pilot-upload.git
and navigate to the codebase directoryFrontend installation:
Install dependencies:
cd frontend && npm install
Create
.env
file in frontend folder withREACT_APP_API_URL='http://localhost:5000/imgproc'
Backend installation (re-navigate to the root folder of codebase):
Create a new virtual environment:
python3.9 -m venv ./backend/venv
Install python dependencies:
./backend/venv/bin/python3 -m pip install -r ./backend/requirements.txt
Edit
config.py
to change the database details - reach out to @JinamEdit
config.py
to change the storage path to desired location where flight data will be stored locally and where globus endpoint points to.
Setup globus endpoint to point at the folder set in
storage_path
inconfig.py
. You will need permission to access the required globus storage locker. This access can be requested from @Chris Reberg-Horton or @Jinam. Pictures showing the steps are inserted towards the end.In two separate windows run these commands in parallel (from root directory of the codebase):
For backend:
./backend/venv/bin/python3 ./backend/app.py
For frontend:
cd frontend && npm run start
Globus endpoint setup example
Current super users:
Rob Austin (reaustin@ncsu.edu)
Joe Gage (jlgage@ncsu.edu)
Jerome Maleski (jjmalesk@ncsu.edu)