This guide provides step-by-step instructions to get the Ordo application up and running quickly.
This project requires Python 3.12+ and uses Poetry for dependency management.
# Ensure you are using Python 3.12
python --version
# Install Poetry if not already installed
pip install poetry
# Install dependencies
poetry install# Start the FastAPI app with Uvicorn (hot reload enabled)
poetry run uvicorn ordo.main:app --reload --port 8000The API will be available at: http://localhost:8000
Interactive API docs:
Swagger UI: http://localhost:8000/docs ReDoc: http://localhost:8000/redoc
# Run all tests with pytest
poetry run pytest
# Run with coverage
poetry run pytest --cov=src/ordo --cov-report=term-missing# Check linting
poetry run ruff check src tests
# Auto-fix linting issues
poetry run ruff check src tests --fix
# Format code
poetry run black src testsOrdo uses environment variables for configuration. A .env.example file is provided in the project root.
- Create your
.envfile:cp .env.example .env
- Edit
.env: Open the newly created.envfile and update the values as needed. For local development, you might only need to setDATABASE_URLor other specific settings.
For a more isolated and production-like environment, you can run Ordo using Docker.
# Build the image
docker build -t ordo:dev .# Run with Docker, mounting your .env file for configuration
docker run -p 8000:8000 --env-file .env ordo:devAfter running the Docker container, you can verify the application is running by accessing the health endpoint:
curl http://localhost:8000/healthYou should receive a JSON response: {"status": "ok"}.
✅ Note:
Uvicorn runs with HTTP/1.1 by default. For production, Ordo should be deployed behind a reverse proxy (e.g., Nginx, Traefik, or Caddy) which will handle TLS termination and enable HTTP/2/3 for clients.
All configuration is managed via environment variables (see .env.example).