Installation
This guide covers the full installation process and configuration details for Drona Workflow Engine.
Prerequisites
- Python 3.8+
- Node.js and npm
- Git
What setup.sh Does
The setup script automates the following steps:
- Configures
config.ymlandmanifest.ymlby replacing[app-name]and[user-name]placeholders with actual values - Creates directories —
environments/for workflow definitions andlogs/for application logging - Sets up a Python virtual environment in
.venvand installs dependencies fromrequirements.txt - Installs frontend dependencies (
babel-loader,@babel/core,@babel/preset-react) and builds the React frontend
Manual Installation
If you prefer to install manually or need to adapt the process for your system:
git clone https://github.com/tamu-edu/dor-hprc-drona-composer.git
cd dor-hprc-drona-composer
# Create required directories
mkdir -p environments logs
touch logs/drona_log
chmod uog+rw logs/drona_log
# Python setup
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
# Frontend setup
npm install -D babel-loader @babel/core @babel/preset-react
npm run build
Configuration
config.yml
The main configuration file controls application behavior. Key settings:
development: &common_settings
cluster_name: "Grace" # Your cluster name
dashboard_url: "/pun/dev/drona-composer" # URL path for the app
modules_db_path: "/path/to/modules/bin/" # Path to modules database script
driver_scripts_path: "/path/to/machine_driver_scripts"
env_repo_github: "https://github.com/..." # Environment repository URL
production:
<<: *common_settings
dashboard_url: "/pun/sys/drona-composer"
cluster_name— Display name for the cluster, used internally and in form titlesmodules_db_path— Path to the external script that retrieves available modules. Used by the module form elementdriver_scripts_path— Absolute path to themachine_driver_scripts/directoryenv_repo_github— GitHub repository URL from which users can import environments
Cluster-Specific Adjustments
User Environment Directory
Drona checks a user-specific directory for personal environments. By default this is set to /scratch/user/$USER/drona_composer/environments. If your cluster uses a different path, update the user_envs_path in views/job_composer.py:
user_envs_path = f"/scratch/user/{os.getenv('USER')}/drona_composer/environments"
Temporary Directory
Drona uses /tmp for temporary files during job processing. If your cluster uses a different location, update the relevant functions in:
machine_driver_scripts/utils.py—drona_add_additional_file(),drona_add_warning(),drona_add_mapping()machine_driver_scripts/engine.py—set_dynamic_additional_files(),get_dynamic_map(),get_warnings()
Texas A&M University High Performance Research Computing