2.1 KiB
2.1 KiB
Lovdata Chat Development Environment
This setup creates a container-per-visitor architecture for the Norwegian legal research chat interface with secure TLS-based Docker communication.
Quick Start
-
Generate TLS certificates for secure Docker communication:
./generate-certs.sh -
Set up environment variables:
cp .env.example .env # Edit .env with your API keys and MCP server URL -
Start the services:
docker-compose up --build -
Create a session:
curl http://localhost/api/sessions -X POST -
Access the chat interface: Open the returned URL in your browser
Architecture
- session-manager: FastAPI service managing container lifecycles with TLS-secured Docker communication
- docker-daemon: Docker-in-Docker daemon with TLS certificates for secure container management
- lovdata-mcp: External Norwegian legal research MCP server (configured via MCP_SERVER env var)
- caddy: Reverse proxy with dynamic session-based routing
Security Features
- TLS-secured Docker communication: No Docker socket exposure
- Container isolation: Each visitor gets dedicated container with resource limits
- Automatic cleanup: Sessions expire after 60 minutes of inactivity
- Resource quotas: 4GB RAM, 1 CPU core per container, max 3 concurrent sessions
Development Notes
- Session data persists in ./sessions/ directory
- TLS certificates auto-generated for development
- External MCP server configured via environment variables
- Health checks ensure service reliability
API Endpoints
POST /api/sessions- Create new sessionGET /api/sessions- List all sessionsGET /api/sessions/{id}- Get session infoDELETE /api/sessions/{id}- Delete sessionPOST /api/cleanup- Manual cleanupGET /api/health- Health check/{path}- Dynamic proxy routing (with X-Session-ID header)
Environment Variables
# Required
MCP_SERVER=http://your-lovdata-mcp-server:8001
# Optional LLM API keys
OPENAI_API_KEY=your_key
ANTHROPIC_API_KEY=your_key
GOOGLE_API_KEY=your_key