Skip to content

workfloworchestrator/orchestrator-core

Repository files navigation

Orchestrator-Core

Downloads codecov pypi_version Supported python versions Discord

Production ready Orchestration Framework to manage product lifecycle and workflows. Easy to use, built on top of FastAPI and Pydantic

Documentation

The documentation can be found at workfloworchestrator.org.

Installation (quick start)

Simplified steps to install and use the orchestrator-core. For more details, read the Getting started documentation.

Step 1 - Install the package

Create a virtualenv and install the orchestrator-core.

python -m venv .venv
source .venv/bin/activate
pip install orchestrator-core

Step 2 - Setup the database

Create a postgres database:

createuser -sP nwa
createdb orchestrator-core -O nwa  # set password to 'nwa'

Configure the database URI in your local environment:

export DATABASE_URI=postgresql://nwa:nwa@localhost:5432/orchestrator-core

Step 3 - Create main.py

Create a main.py file.

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()

Step 4 - Run the database migrations

Initialize the migration environment and database tables.

python main.py db init
python main.py db upgrade heads

Step 5 - Run the app

export OAUTH2_ACTIVE=False
uvicorn --reload --host 127.0.0.1 --port 8080 main:app

Visit the ReDoc or OpenAPI page to view and interact with the API.

Contributing

We use uv to manage dependencies.

To get started, follow these steps:

# in your postgres database
createdb orchestrator-core-test -O nwa  # set password to 'nwa'

# on your local machine
git clone https://github.com/workfloworchestrator/orchestrator-core
cd orchestrator-core
export DATABASE_URI=postgresql://nwa:nwa@localhost:5432/orchestrator-core-test
uv sync --all-extras --all-groups
uv run pytest

For more details please read the development docs.