Collaborative OWL ontology curation API built with FastAPI.
- RESTful API for managing ontologies, classes, properties, and individuals
- Project management with public/private visibility and team collaboration
- Authentication via Zitadel (OpenID Connect)
- Real-time collaboration support via WebSockets
- Object storage integration with MinIO for ontology files
# Start all services
docker compose up -d
# Run database migrations
docker compose exec api alembic upgrade head
# Set up Zitadel authentication (creates OIDC apps, updates .env files)
./scripts/setup-zitadel.sh --update-env
# Recreate API/worker containers to pick up the new credentials
docker compose up -d --force-recreate api worker# Start infrastructure
docker compose -f compose.prod.yaml up -d
# Create virtual environment
python -m venv .venv
source .venv/bin/activate
# Install dependencies
pip install -e ".[dev]"
# Configure
cp .env.example .env
# Set up Zitadel authentication (creates OIDC apps, updates .env files)
./scripts/setup-zitadel.sh --update-env
# Run database migrations
alembic upgrade head
# Start server
uvicorn ontokit.main:app --reloadSee the wiki for full documentation.
- Framework: FastAPI (Python 3.11+)
- Database: PostgreSQL 17 + SQLAlchemy 2.0 (async)
- Cache: Redis
- Object Storage: MinIO (S3-compatible)
- Authentication: Zitadel (OIDC)
- Ontology Processing: RDFLib, OWLReady2
MIT