Skip to content

Commit a14cd0f

Browse files
docs: fix README accuracy and sync pricing (#131)
- 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
1 parent 518985f commit a14cd0f

2 files changed

Lines changed: 66 additions & 16 deletions

File tree

README.md

Lines changed: 60 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -40,21 +40,48 @@ VoidLLM is a self-hosted LLM proxy that sits between your applications and LLM p
4040
| Provider goes down, everything breaks | Multi-deployment load balancing with automatic failover |
4141
| Existing proxies log your prompts | Zero-knowledge proxy architecture - content never touches disk |
4242

43+
## How it works
44+
45+
```mermaid
46+
flowchart LR
47+
App[Your app / SDK] -->|OpenAI-compatible| Proxy[VoidLLM proxy]
48+
Proxy --> Gate[API key + RBAC<br/>rate limits + budgets]
49+
Gate --> Router[Model alias + load balancing]
50+
Router --> Providers[OpenAI / Anthropic / Azure<br/>Ollama / vLLM / custom]
51+
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
68+
4369
## Quick Start
4470

4571
```bash
4672
# Generate required keys
4773
export VOIDLLM_ADMIN_KEY=$(openssl rand -base64 32)
4874
export VOIDLLM_ENCRYPTION_KEY=$(openssl rand -base64 32)
4975

50-
# Start the LLM proxy with Docker
76+
# Start the proxy - no config file needed, VoidLLM boots with sensible defaults
5177
docker run -p 8080:8080 \
5278
-e VOIDLLM_ADMIN_KEY -e VOIDLLM_ENCRYPTION_KEY \
53-
-v $(pwd)/voidllm.yaml:/etc/voidllm/voidllm.yaml:ro \
5479
-v voidllm_data:/data \
5580
ghcr.io/voidmind-io/voidllm:latest
5681
```
5782

83+
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+
5885
### Binary (no Docker needed)
5986

6087
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
112139
| Rate limits | Requests per minute/day, most-restrictive-wins across levels |
113140
| Token budgets | Daily/monthly limits, real-time enforcement |
114141
| Usage tracking | Tokens, cost, duration, TTFT per request |
142+
| Usage export | CSV / JSON download |
115143
| Model aliases | Clients call `default`, you control where it routes |
116144
| MCP gateway | Proxy external MCP servers with access control and session management |
117145
| Code Mode | WASM-sandboxed JS for multi-tool orchestration |
118146
| Prometheus metrics | Latency, tokens, active streams, routing, health |
119147
| Database | SQLite (default) or PostgreSQL |
120148
| Deployment | Docker, Helm chart, graceful shutdown |
121149
| | |
122-
| **Pro ($49/mo)** | **Everything above, plus:** |
123-
| Cost reports | Model breakdown, daily trends |
124-
| Usage export | CSV download |
125-
| Data retention | Extended |
126-
| Support | Priority email |
150+
| **Pro (49/mo · €490/yr)** | **Everything above, plus:** |
151+
| Unlimited orgs + teams | No limit on organizations or teams |
152+
| Cost reports | Model breakdown, daily trends, budget alerts |
153+
| Cross-org analytics | Usage and cost across all organizations |
154+
| Support | Priority email (48h) |
127155
| | |
128-
| **Enterprise ($149/mo)** | **Everything in Pro, plus:** |
156+
| **Enterprise (149/mo · €1490/yr)** | **Everything in Pro, plus:** |
129157
| SSO / OIDC | Google, Azure AD, Okta, Keycloak, any provider |
130158
| Per-org SSO | Each organization gets its own Identity Provider |
131159
| Auto-provisioning | Users created from allowed email domains |
132160
| Group sync | OIDC groups mapped to VoidLLM teams |
133161
| Audit logs | Every admin action, filterable API + UI |
134162
| 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) |
136165

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.
138167

139168
Flat pricing - no per-user fees, no per-request charges. Self-hosted on your infrastructure.
140169

@@ -313,6 +342,20 @@ cd ui && npm ci && npm run build && cd ..
313342
go run ./cmd/voidllm --config voidllm.yaml
314343
```
315344

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+
316359
## Privacy
317360

318361
This is not a feature toggle. It's an architectural decision that makes VoidLLM a privacy-first LLM proxy.
@@ -334,6 +377,13 @@ voidllm migrate --from sqlite:///data/voidllm.db --to postgres://user:pass@host/
334377
voidllm license verify < license.jwt
335378
```
336379

380+
## Project
381+
382+
- [Contributing](CONTRIBUTING.md)
383+
- [Changelog](CHANGELOG.md)
384+
- [Security Policy](SECURITY.md) - report vulnerabilities privately to security@voidmind.io
385+
- [Code of Conduct](CODE_OF_CONDUCT.md)
386+
337387
## License
338388

339389
[Business Source License 1.1](LICENSE) - source available, self-hosting permitted,

docs/enterprise/pricing.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,8 @@ Flat pricing - no per-user fees, no per-request charges, no per-token metering.
1010

1111
| | Community | Pro | Enterprise |
1212
|---|---|---|---|
13-
| **Price** | Free | $49/mo | $149/mo |
14-
| **Annual** | - | $490/yr | $1,490/yr |
13+
| **Price** | Free | 49/mo | 149/mo |
14+
| **Annual** | - | 490/yr | 1,490/yr |
1515
| **Use case** | Personal / evaluation | Teams & production | Organization-wide |
1616

1717
## What's in each tier
@@ -35,7 +35,7 @@ Everything you need to run an LLM proxy in production:
3535

3636
No feature is time-limited or artificially crippled.
3737

38-
### Pro ($49/mo)
38+
### Pro (49/mo)
3939

4040
Everything in Community, plus:
4141

@@ -44,7 +44,7 @@ Everything in Community, plus:
4444
- Cross-org analytics
4545
- Priority email support (48h)
4646

47-
### Enterprise ($149/mo)
47+
### Enterprise (149/mo)
4848

4949
Everything in Pro, plus:
5050

@@ -55,7 +55,7 @@ Everything in Pro, plus:
5555
- Multi-instance support (Redis)
5656
- Dedicated Slack support (24h)
5757

58-
### Founding Member ($999 one-time)
58+
### Founding Member (999 one-time)
5959

6060
All Enterprise features - current and future. No recurring fees.
6161

@@ -70,7 +70,7 @@ All Enterprise features - current and future. No recurring fees.
7070

7171
## Annual billing
7272

73-
Annual billing saves 2 months. Pro: $490/yr instead of $588. Enterprise: $1,490/yr instead of $1,788.
73+
Annual billing saves 2 months. Pro: 490/yr instead of 588. Enterprise: 1,490/yr instead of 1,788.
7474

7575
## License activation
7676

0 commit comments

Comments
 (0)