MacOS version 12 (Monterey) installation instructions
How to manually install the orchestrator-core and orchestrator-core-gui on MacOS version 12 (Monterey) is described in the following steps.
Step 1 - Install dependencies
This installation instruction assumes the use of Homebrew. The following software dependencies need to be installed:
- Python 3.11
- PostgreSQL (version >=11)
- virtualenvwrapper (or use any other tool to create virtual Python environments)
- Node.js (version 14)
- yarn
brew install python@3.11 postgresql@13 virtualenvwrapper node@14 yarn
Step 2 - Database setup
Start the database server and create the database with the following commands,
use nwa
as password:
brew services start postgresql@13
createuser -sP nwa
createdb orchestrator-core -O nwa
For debug purposes, interact directly with the database by starting the PostgresSQL interactive terminal:
psql orchestrator-core
Step 3 - Install orchestrator
The minimal version of Python is 3.11. Before the orchestrator core and all its dependencies are installed, a Python virtual environment is created:
mkdir example-orchestrator
cd example-orchestrator
source virtualenvwrapper.sh
mkvirtualenv --python python3.11 example-orchestrator
Make sure that the just created Python virtual environment is active before installing the orchestrator-core:
pip install orchestrator-core
A next time in a new shell, be sure to activate the Python virtual environment again:
source virtualenvwrapper.sh
workon example-orchestrator
Step 4 - Init orchestrator:
Create a main.py
file with the following content:
from orchestrator import OrchestratorCore
from orchestrator.cli.main import app as core_cli
from orchestrator.settings import AppSettings
app = OrchestratorCore(base_settings=AppSettings())
if __name__ == "__main__":
core_cli()
Commit the just created main.py to git:
git init --initial-branch main
git config --local user.email "you@example.com"
git config --local user.name "Your Name"
git add main.py
git commit -m "Initial commit"
Note that your local git must contain at least one commit, otherwise the db
init
below will fail.
Initialize the database and run all the database migrations:
PYTHONPATH=. python main.py db init
PYTHONPATH=. python main.py db upgrade heads
Step 5 - Install orchestrator client
Install the orchestrator client in the parent directory of the example-orchestrator:
cd ..
git clone https://github.com/workfloworchestrator/example-orchestrator-ui.git
When multiple version of Node.js are installed, make sure node@14 is being used, this can be achieved by explicitly prepending it to the shell PATH. Use the Yarn package manager to install the orchestrator client dependencies:
cd example-orchestrator-ui/
export PATH="/usr/local/opt/node@14/bin:$PATH"
yarn install
Step 6 - Init orchestrator client:
Use the supplied environment variable defaults:
cp .env.local.example .env.local
And make the following changes to .env.local
:
# change the existing REACT_APP_BACKEND_URL variable value into:
REACT_APP_BACKEND_URL=http://127.0.0.1:3000
# and add the following:
DANGEROUSLY_DISABLE_HOST_CHECK=true
The custom-example
folder contains some SURF specific modules that can be
used as an example. It must be linked to the folder custom
in order for the
app to start:
(cd src && ln -s custom-example custom)