https://github.com/workfloworchestrator/orchestrator-core
The workflow orchestrator core repository
https://github.com/workfloworchestrator/orchestrator-core
orchestrator python
Last synced: 28 days ago
JSON representation
The workflow orchestrator core repository
- Host: GitHub
- URL: https://github.com/workfloworchestrator/orchestrator-core
- Owner: workfloworchestrator
- License: apache-2.0
- Created: 2020-10-08T06:31:34.000Z (over 5 years ago)
- Default Branch: main
- Last Pushed: 2026-05-26T07:45:48.000Z (about 1 month ago)
- Last Synced: 2026-05-26T09:32:37.051Z (about 1 month ago)
- Topics: orchestrator, python
- Language: Python
- Homepage: https://workfloworchestrator.org/orchestrator-core
- Size: 20 MB
- Stars: 67
- Watchers: 17
- Forks: 23
- Open Issues: 101
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: docs/contributing/development.md
- License: LICENSE
- Security: SECURITY.md
- Notice: NOTICE
Awesome Lists containing this project
README
# Orchestrator-Core
[](https://pepy.tech/project/orchestrator-core)
[](https://codecov.io/gh/workfloworchestrator/orchestrator-core)
[](https://pypi.org/project/orchestrator-core)
[](https://pypi.org/project/orchestrator-core)

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](https://workfloworchestrator.org/orchestrator-core/).
## Installation (quick start)
Simplified steps to install and use the orchestrator-core.
For more details, read the [Getting started](https://workfloworchestrator.org/orchestrator-core/getting-started/base/) documentation.
### Step 1 - Install the package
Create a virtualenv and install the orchestrator-core.
```shell
python -m venv .venv
source .venv/bin/activate
pip install orchestrator-core
```
### Step 2 - Setup the database
Create a postgres database:
```shell
createuser -sP nwa
createdb orchestrator-core -O nwa # set password to 'nwa'
```
Configure the database URI in your local environment:
```
export DATABASE_URI=postgresql+psycopg://nwa:nwa@localhost:5432/orchestrator-core
```
### Step 3 - Create main.py and wsgi.py
Create a `main.py` file for running the CLI.
```python
from orchestrator.core.cli.main import app as core_cli
if __name__ == "__main__":
core_cli()
```
Create a `wsgi.py` file for running the web server.
```python
from orchestrator.core import OrchestratorCore
from orchestrator.core.settings import AppSettings
app = OrchestratorCore(base_settings=AppSettings())
app.register_graphql()
```
### Step 4 - Run the database migrations
Initialize the migration environment and database tables.
```shell
python main.py db init
python main.py db upgrade heads
```
### Step 5 - Run the app
```shell
export OAUTH2_ACTIVE=False
uvicorn --reload --host 127.0.0.1 --port 8080 wsgi:app
```
Visit the [ReDoc](http://127.0.0.1:8080/api/redoc) or [OpenAPI](http://127.0.0.1:8080/api/docs) page to view and interact with the API.
## Contributing
We use [uv](https://docs.astral.sh/uv/getting-started/installation/) to manage
dependencies. Unit tests need no services; integration tests use
[testcontainers](https://testcontainers-python.readthedocs.io/) to spin up
Postgres + Redis on demand (Docker required).
To get started, follow these steps:
```shell
# on your local machine
git clone https://github.com/workfloworchestrator/orchestrator-core
cd orchestrator-core
just pytest # Run unit tests
just pytest test/integration_tests # Run integration tests (testcontainers)
just pytest -vx # Stop at first failed test
just pytest --last-failed # re-run only failed tests
```
For more details please read the [development docs](https://workfloworchestrator.org/orchestrator-core/contributing/development/).