1.8 KiB
1.8 KiB
Bifrost behind NGINX (Docker Compose)
This example runs 3 Bifrost containers behind an NGINX reverse proxy.
Files
docker-compose.yml- Starts NGINX and 3 Bifrost nodesnginx.conf- Reverse proxy and load balancing configconfig.json- Shared Bifrost config for all nodes.env.example- Required environment variableshelm-values.yaml- Helm values for Kubernetes + NGINX Ingressk8s-ingress.yaml- Standalone ingress manifest (non-Helm or override)
Run
cd examples/configs/withnginxreverseproxy
cp .env.example .env
# Edit .env and set real values
docker compose config
docker compose up -d
docker compose ps
NGINX exposes Bifrost on http://localhost:8080.
Verify
# Health through NGINX
curl -i http://localhost:8080/health
# Chat completion through NGINX
curl -sS http://localhost:8080/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-4o-mini",
"messages": [{"role": "user", "content": "Say hello"}]
}'
Streaming check:
curl -N http://localhost:8080/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-4o-mini",
"stream": true,
"messages": [{"role": "user", "content": "stream test"}]
}'
Stop
docker compose down
Kubernetes / Helm
# Render manifests and verify ingress is present
helm template bifrost ./helm-charts/bifrost \
-f examples/configs/withnginxreverseproxy/helm-values.yaml
# Install (or upgrade) with this example
helm upgrade --install bifrost ./helm-charts/bifrost \
-f examples/configs/withnginxreverseproxy/helm-values.yaml
Validate ingress manifest only:
kubectl apply --dry-run=client -f examples/configs/withnginxreverseproxy/k8s-ingress.yaml