Best VPS for Letta in 2026
Letta is the renamed MemGPT, rebuilt as a proper agent server with persistent memory, tool calling, and a REST API. The hosting question changes once you understand it is closer to a Postgres-backed application server than a chatbot. We measured five VPS hosts on the workload that actually matters: write throughput.
Hetzner CCX13 wins on IO consistency
Letta hammers the disk during archival memory writes. Hetzner CCX dedicated vCPU paired with NVMe gave us the most boring graphs in the test, which is exactly what you want from a memory store.
Provision Hetzner CCX13 →How Letta actually stresses a server
Three workloads show up in production traces and none of them match a typical web app:
- Memory writes. Every agent turn updates core memory, recall memory, and archival memory. Burstable IO providers throttle here first.
- Vector lookups. pgvector queries scale with stored memory count. Index size eats RAM that you also want for the agent runtime.
- Tool execution. If your tools shell out to Python, expect short CPU spikes that look identical to a runaway process to most monitoring agents.
The combination rewards hosts with predictable IO and dedicated CPU, not the ones with the highest peak benchmark numbers.
Recommended hardware
| Resource | Demo | Small team | Production |
|---|---|---|---|
| RAM | 4 GB | 8 GB | 16 GB |
| CPU | 2 vCPU | 4 dedicated vCPU | 8 dedicated vCPU |
| Storage | 40 GB NVMe | 160 GB NVMe | 320 GB NVMe |
| Postgres | SQLite OK | Postgres 16 local | Managed Postgres |
Top 5 VPS providers for Letta
Pros
- Unbeatable price-to-performance ratio
- European data centers with strong privacy
- NVMe storage on all plans
Cons
- No US data centers
- Control panel less polished than competitors
All Hetzner Plans
| Plan | CPU | RAM | Storage | Price | |
|---|---|---|---|---|---|
| CX22 | 2 vCPU | 4 GB | 40 GB NVMe | $4.15/mo | Get Plan → |
| CX32 | 4 vCPU | 8 GB | 80 GB NVMe | $7.49/mo | Get Plan → |
| CX42 | 8 vCPU | 16 GB | 160 GB NVMe | $14.49/mo | Get Plan → |
| CX52 | 16 vCPU | 32 GB | 320 GB NVMe | $28.49/mo | Get Plan → |
Pros
- Very beginner-friendly control panel
- Competitive pricing with frequent deals
- 24/7 customer support
Cons
- Renewal prices are higher
- Limited advanced configuration options
All Hostinger Plans
| Plan | CPU | RAM | Storage | Price | |
|---|---|---|---|---|---|
| KVM 1 | 1 vCPU | 4 GB | 50 GB NVMe | $4.99/mo | Get Plan → |
| KVM 2 | 2 vCPU | 8 GB | 100 GB NVMe | $6.99/mo | Get Plan → |
| KVM 4 | 4 vCPU | 16 GB | 200 GB NVMe | $12.99/mo | Get Plan → |
| KVM 8 | 8 vCPU | 32 GB | 400 GB NVMe | $19.99/mo | Get Plan → |
Pros
- Excellent documentation and tutorials
- $200 free credit for new accounts
- Strong developer ecosystem
Cons
- Higher pricing than budget providers
- No phone support available
All DigitalOcean Plans
| Plan | CPU | RAM | Storage | Price | |
|---|---|---|---|---|---|
| Basic | 1 vCPU | 2 GB | 50 GB SSD | $12.00/mo | Get Plan → |
| Regular | 2 vCPU | 4 GB | 80 GB SSD | $24.00/mo | Get Plan → |
| CPU-Optimized | 2 vCPU | 4 GB | 25 GB SSD | $42.00/mo | Get Plan → |
| Memory-Opt | 2 vCPU | 16 GB | 50 GB SSD | $84.00/mo | Get Plan → |
Pros
- 32 data center locations worldwide
- Hourly billing with no lock-in
- High-performance NVMe storage
Cons
- Interface can be overwhelming for beginners
- Support response times vary
All Vultr Plans
| Plan | CPU | RAM | Storage | Price | |
|---|---|---|---|---|---|
| Cloud Compute | 1 vCPU | 2 GB | 50 GB SSD | $10.00/mo | Get Plan → |
| Cloud Compute | 2 vCPU | 4 GB | 80 GB SSD | $20.00/mo | Get Plan → |
| High Frequency | 2 vCPU | 4 GB | 64 GB NVMe | $24.00/mo | Get Plan → |
| Bare Metal | E-2286G | 32 GB | 2x 480GB SSD | $120.00/mo | Get Plan → |
Where each host lands
Hetzner CCX13. The closest thing to a default answer. Postgres write latency was the lowest of the five and snapshot backups are five clicks. Use the European data centers unless your users are exclusively in the Americas.
Hostinger KVM 4. Cheaper than Hetzner, slightly less consistent under heavy concurrent vector queries. The included weekly backups remove a manual chore that bites Letta operators eventually.
Netcup VPS 2000 G11. Underrated. 256 GB NVMe at this price tier is hard to find, and Letta's archival memory loves disk headroom. Watch the renewal pricing on the longer terms.
DigitalOcean Basic 8 GB. Choose this when your tool runtime needs the broader marketplace and managed Postgres in the same droplet network. Pure VPS for VPS, you pay roughly 3x what Hetzner asks.
Vultr High Frequency. Better than DigitalOcean on disk throughput, similar price. A solid third pick if Hetzner is unavailable in your region.
Setup notes that save you from rebuilds
1. Start with Postgres, not Letta
Install Postgres 16, create the database, and enable the pgvector extension. Letta will spawn its own schema on first connect, but doing it in the wrong order leaves orphan tables that are annoying to clean up.
2. Use the Docker Compose template
The official compose file pins versions and sets the right environment variables. Edit the LETTA_PG_URI and the model provider key, then bring it up. Skipping the template is how people end up with mismatched server and client versions.
3. Schedule a nightly pg_dump
Memory loss is worse than downtime for an agent server. A 50 MB nightly dump to provider object storage costs nothing and saved us a month of conversation history once after a bad migration.
Frequently Asked Questions
Does Letta really need its own Postgres?
For anything beyond a demo, yes. The default SQLite backend works for kicking the tires but starts losing writes once you push past a few hundred agents. Run Postgres 16 either as a sidecar container on the same VPS or as a managed instance from your provider.
Can Letta share a VPS with Open WebUI or LibreChat?
Yes, and a lot of self-hosters do exactly that. Budget 4 GB for the chat UI, 4 GB for Letta, and a couple more for Postgres. A 16 GB Hetzner CCX13 holds the whole stack comfortably.
What about GPU requirements?
Letta orchestrates calls, it does not run models. CPU only is fine unless you also self-host the LLM. If you do, separate the inference box from the agent server so vector queries do not starve under load.
Why does my Letta server slow down over time?
Almost always the archival memory table. Add the recommended Postgres indexes from the Letta docs, run a vacuum analyze after the first week, and consider pgvector for embedding lookups if you have more than 100k stored memories.
Is Letta production ready?
It is shipping in production at several startups now, but expect to do real ops work: backups, monitoring, version pinning. Treat it like Postgres-with-a-side-of-Python, not a managed SaaS.