meta/flake.nix
Coornhert 6db0f6afc3 feat: MVP webinterface
Server-rendered HTML via Jinja2 templates in FastAPI:
- Homepage: zoekbalk, statistieken, inhoudsopgave Grondwet
- /grondwet: volledige tekst als leesbare pagina
- /grondwet/samenvatting: AI-samenvatting (B1-niveau)
- /zoeken: keyword (Meilisearch) + semantisch (Qdrant)
- /historie: tijdlijn van versies
- /diff: visuele vergelijking tussen twee versies
- Sober, responsive CSS (overheidsstijl)
- Disclaimer op elke pagina

flake.nix: jinja2 + markdown packages toegevoegd

Sluit #39
2026-03-30 10:48:36 +02:00

107 lines
2.8 KiB
Nix

{
description = "WetGit - Nederlandse wetgeving als code";
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
flake-utils.url = "github:numtide/flake-utils";
};
outputs = { self, nixpkgs, flake-utils }:
flake-utils.lib.eachDefaultSystem (system:
let
pkgs = nixpkgs.legacyPackages.${system};
pythonEnv = pkgs.python313.withPackages (ps: with ps; [
# Conversie-pipeline
lxml # BWB XML-parsing met XPath/XSLT
pygit2 # Git-operaties via libgit2
pyyaml # YAML frontmatter generatie
python-frontmatter # Markdown + YAML frontmatter parsing
# API-laag
fastapi
uvicorn # ASGI server
httpx # Async HTTP client (SRU-API, EUR-Lex)
pydantic # Data validatie
# Achtergrondtaken
celery
redis # Python Redis client
# CLI-tool
click
rich # Terminal formatting
# Webinterface
jinja2 # HTML templates
markdown # Markdown → HTML rendering
# Testing
pytest
pytest-cov
pytest-asyncio
# Development tools
black
ruff
mypy
pip
# Typing stubs
types-requests
types-pyyaml
]);
in {
devShells.default = pkgs.mkShell {
name = "wetgit";
buildInputs = with pkgs; [
# Python environment (alle packages via nix, geen venv nodig)
pythonEnv
# Dependency management (voor PyPI-only packages)
uv
# Ansible (infrastructuur provisioning Hetzner)
ansible
ansible-lint
# Hetzner Cloud CLI
hcloud
# Redis server (lokale development)
redis
# Git & tools
git
jq
yq-go
curl
# Native dependencies voor pygit2
libgit2
];
shellHook = ''
# PYTHONPATH zodat 'import wetgit' werkt vanuit src/
export PYTHONPATH="$PWD/src''${PYTHONPATH:+:$PYTHONPATH}"
# .env laden (API keys, Hetzner token)
if [ -f .env ]; then
set -a
source .env
set +a
fi
# Deactiveer eventuele oude venv die in de weg zit
if [ -n "$VIRTUAL_ENV" ]; then
deactivate 2>/dev/null || true
fi
# Info naar stderr zodat stdout schoon blijft voor tools
echo "WetGit devshell | Python $(python --version 2>&1 | cut -d' ' -f2)" >&2
'';
};
});
}