Installation
import { Tabs, TabItem, Aside } from ‘@astrojs/starlight/components’;
Requirements
Section titled “Requirements”| Component | Minimum | Recommended |
|---|---|---|
| CPU | 2 cores | 4 cores |
| RAM | 4 GB | 8 GB |
| Disk | 20 GB | 50 GB |
| Docker | 24+ | latest |
Environment variables
Section titled “Environment variables”| Variable | Required | Description |
|---|---|---|
OPENAI_API_KEY | Yes | LLM provider API key |
OPENAI_BASE_URL | No | Custom endpoint (Ollama, OpenRouter, etc.) |
OPENAI_MODEL | No | Model name (default: gpt-4.1-mini) |
DB_PATH | No | PostgreSQL connection string |
SECRET_KEY | Yes (prod) | JWT signing secret |
Deploy with Docker Compose
Section titled “Deploy with Docker Compose”Updating
Section titled “Updating”git pulldocker compose builddocker compose up -dDatabase migrations run automatically on server startup.
Networking
Section titled “Networking”Both containers use network_mode: host by default. This is required for GitHub Codespaces and some cloud environments where bridge networking doesn’t expose HTTPS externally.
For standard production deployments behind a reverse proxy, you can remove network_mode: host and expose ports normally.