Dit is een Enterprise-Grade Backend Template voor het bouwen van schaalbare, veilige en slimme AI-toepassingen. Het project is volledig geoptimaliseerd voor RAG (Retrieval Augmented Generation) en Multi-Tenant SaaS omgevingen.
Volledige isolatie van data voor SaaS-toepassingen.
- Shared Content: Kennis die zichtbaar is voor alle klanten.
- Private Content: Content die strikt afgeschermd is per klant (
client_id). - API Licensing: Beheer toegang en limieten via API Keys en licenties.
Klaar voor de volgende generatie AI-apps.
- Vector Database: Volledige integratie met
pgvectorvoor razendsnelle similarity search. - Auto-Embeddings: Tekst wordt bij opslaan automatisch omgezet naar vectoren (klaar voor OpenAI/Cohere).
- Smart Snippets: Opslag van prompts, regels en context-blokken voor AI Agents.
Veiligheid by design, niet als afterthought.
- Non-Blocking Auth: Heavy crypto operaties blokkeren de server niet.
- SHA256 API Keys: Veilige, snelle hashing voor API toegang.
- Production Hardened: Gevalideerde configuratie, veilige 72-byte limit fixes, en Docker non-root user.
- Framework: FastAPI (Async)
- Database: PostgreSQL 15 + pgvector
- ORM: SQLAlchemy 2.0 (Modern AsyncIO)
- Server: Gunicorn (Process Manager) + Uvicorn (Workers)
- Quality: 100% Test Coverage, Ruff Linting, MyPy Typing.
Zorg dat je Docker en Python 3.12+ hebt.
git clone <repo>
cd api-starterproject
cp .env.example .envDraai de database en app in development mode:
docker-compose up -dZorg dat de database schema's up-to-date zijn:
# Installeer dependencies eerst lokaal als je zonder Docker CLI werkt
poetry install
poetry run alembic upgrade headDit project is "Deployment Ready".
Gebruik de geoptimaliseerde Dockerfile voor een veilige, kleine image:
# 1. Build
docker build -t api-prod .
# 2. Run (Simulatie)
docker-compose -f docker-compose.prod.yml up -d- Gunicorn Config: Automatische worker-scaling op basis van CPU cores.
- Non-Root User: De container draait veilig als
appuser. - No Build Deps: GCC en andere build tools zijn verwijderd uit de runtime.
Wij hanteren een strikte "Zero Warnings" policy.
poetry run pytestResultaat: >80% coverage en geen Pydantic/SQLAlchemy warnings.
Zodra de server draait:
- Swagger UI:
http://localhost:8000/docs - ReDoc:
http://localhost:8000/redoc
- Admin Login: POST
/api/v1/admin/auth/login(email/password). - Client Toegang: Voeg header
X-API-Key: <jouw_key>toe aan requests.