You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
- Quick Start: config-less Docker run (the mounted voidllm.yaml never
existed; first run boots on defaults via the bootstrap wizard)
- Add architecture/data-flow mermaid diagram and a 'Who it's for' section
- Add a Production Checklist and a Project/Community links section
(Contributing, Changelog, Security Policy, Code of Conduct)
- Pricing/features: move 'Usage export (CSV/JSON)' to Community (it is
ungated in code), add the Pro/Enterprise features the table was missing
(unlimited orgs/teams, cross-org analytics, budget alerts, multi-instance
Redis), and correct the currency to EUR to match Stripe billing
Proxy -. metadata only .-> DB[(SQLite / PostgreSQL)]
52
+
```
53
+
54
+
Your apps speak the OpenAI API to VoidLLM. It authenticates the key, applies RBAC, rate limits and budgets, resolves the model alias, and routes to the right provider. Only **metadata** - who called, which model, token counts, latency - is written to the database. Prompt and response content passes through memory and is never persisted.
55
+
56
+
## Who it's for
57
+
58
+
**A good fit if you:**
59
+
- Self-host LLM infrastructure (vLLM, Ollama) or use managed providers and need one control plane
60
+
- Cannot log prompts or responses for privacy or compliance reasons
61
+
- Need org/team/user/key RBAC, budgets, and model routing
62
+
- Run multiple providers and want aliases, load balancing, and failover
63
+
64
+
**Not the right fit if you:**
65
+
- Want a hosted SaaS gateway - VoidLLM is self-hosted by design
66
+
- Need full prompt/response logging or content-level observability - it's zero-knowledge by architecture
67
+
- Need upstream MCP servers with per-user OAuth today - not yet supported
On first start VoidLLM prints bootstrap credentials to stdout (shown below) - no config file is required. Add models in the UI, or mount a `voidllm.yaml` to declare them (see [Configuration](#configuration)).
84
+
58
85
### Binary (no Docker needed)
59
86
60
87
Download the latest binary for your platform from the [releases page](https://github.com/voidmind-io/voidllm/releases/latest):
@@ -112,29 +139,31 @@ Any OpenAI-compatible SDK works out of the box - just change the base URL to you
112
139
| Rate limits | Requests per minute/day, most-restrictive-wins across levels |
| Per-org SSO | Each organization gets its own Identity Provider |
131
159
| Auto-provisioning | Users created from allowed email domains |
132
160
| Group sync | OIDC groups mapped to VoidLLM teams |
133
161
| Audit logs | Every admin action, filterable API + UI |
134
162
| OpenTelemetry | OTLP/gRPC export, request ID correlation |
135
-
| Support | Dedicated Slack |
163
+
| Multi-instance | Redis-backed rate limits and budgets across replicas |
164
+
| Support | Dedicated Slack (24h) |
136
165
137
-
**Founding Member ($999 one-time):** All Enterprise features, lifetime license, Product Advisory Board, direct founder access. Limited spots.
166
+
**Founding Member (€999 one-time):** All Enterprise features (current and future), lifetime license, Product Advisory Board, direct founder access, priority support, early access. Limited spots.
138
167
139
168
Flat pricing - no per-user fees, no per-request charges. Self-hosted on your infrastructure.
140
169
@@ -313,6 +342,20 @@ cd ui && npm ci && npm run build && cd ..
313
342
go run ./cmd/voidllm --config voidllm.yaml
314
343
```
315
344
345
+
## Production Checklist
346
+
347
+
- Use **PostgreSQL** instead of SQLite
348
+
- Put VoidLLM behind **TLS / a reverse proxy**
349
+
- **Isolate the admin UI/API** from public proxy traffic (separate `admin.port`, with TLS)
350
+
- Use a strong `VOIDLLM_ENCRYPTION_KEY` (32+ bytes) and keep it in a **secrets manager**
351
+
- Don't use `VOIDLLM_ADMIN_KEY` as a production API key - it's for bootstrap only
352
+
- Set **resource limits** and **network policies** in Kubernetes
353
+
- Scrape **`/metrics`** with Prometheus
354
+
- Configure **database backups**
355
+
- For multiple replicas, use **Redis** so rate limits and budgets are shared (they are per-process without it) - Enterprise
356
+
357
+
See the [Security Hardening guide](docs/security/hardening.md) for the full list.
358
+
316
359
## Privacy
317
360
318
361
This is not a feature toggle. It's an architectural decision that makes VoidLLM a privacy-first LLM proxy.
0 commit comments