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
- Git-based version control with branching, pull requests, and sync from remote (pygit2 bare repos)
- Ontology linting with 20+ semantic validation rules
- Semantic search powered by sentence-transformers
- Authentication via Zitadel (OpenID Connect)
- Real-time collaboration via WebSockets
- Background job queue with ARQ + Redis
- 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
# Install dependencies and pre-commit hooks (one command)
make setup
# 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 --reload