Layer 4 · self-hosting reality check
What it actually takes to self-host Unstructured
The docs say 2 GB. In practice you want 8 GB with the high-resolution strategy. Here is the honest version — real requirements, real monthly cost, what you will be maintaining, and the one thing that catches people out.
Usually reached from AWS Textract alternatives, where Unstructured is one of the picks.
| RAM — documented minimum | 2 GB |
|---|---|
| RAM — what it really needs | 8 GB with the high-resolution strategy |
| CPU | 4 vCPU |
| Disk | Heavy system dependencies — several GB before your documents |
| Monthly cost | $0 for the open library; their hosted API is priced per page |
| Setup time | 2 hours, mostly fighting system dependencies |
| How you install it | pip install, plus system packages: poppler, tesseract, libmagic and friends |
| Ongoing maintenance | Moderate. The dependency surface is the maintenance. |
| Where it stops scaling | Parallelises well. Document complexity, not count, sets throughput. |
The thing that catches people out
The `hi_res` strategy that produces good output needs OCR models and system libraries that pip cannot install for you, so the default `fast` strategy quietly produces much worse extraction — and the difference does not raise an error, it just yields worse chunks. Use their official container image rather than assembling dependencies by hand, and check which strategy actually ran.
When not to self-host Unstructured
You only handle PDFs. Docling does that better with a far lighter install; Unstructured earns its keep on format breadth.
Every guide here carries this section. A site that only ever tells you to self-host is selling something — the useful answer is sometimes no.
Other Layer 4 self-hosting guides
- Self-hosting Ollama8 GB VRAM for a 7B model at usable speed; 24 GB for 30B-class
- Self-hosting vLLM24 GB VRAM minimum for useful production serving
- Self-hosting QdrantVectors × dimensions × 4 bytes, in RAM, plus overhead — 1M × 768d is roughly 3 GB
- Self-hosting pgvector8 GB — the HNSW index wants to be resident
- Self-hosting LlamaIndex4 GB for the app; your vector store is the real cost
- Self-hosting faster-whisper5 GB VRAM for large-v3 in float16; 2 GB with int8
Common questions
- How much RAM does Unstructured actually need?
- 8 GB with the high-resolution strategy in practice. The documented minimum is 2 GB, which is the figure at which the process starts rather than the figure at which it works under real use. 4 vCPU alongside it.
- What does self-hosting Unstructured cost per month?
- $0 for the open library; their hosted API is priced per page This is commodity VPS pricing and excludes your time, which is the larger cost for most people — budget for moderate. The dependency surface is the maintenance.
- How long does it take to set up Unstructured?
- 2 hours, mostly fighting system dependencies, via pip install, plus system packages: poppler, tesseract, libmagic and friends.
- When should I NOT self-host Unstructured?
- You only handle PDFs. Docling does that better with a far lighter install; Unstructured earns its keep on format breadth.
- What is the most common mistake when self-hosting Unstructured?
- The `hi_res` strategy that produces good output needs OCR models and system libraries that pip cannot install for you, so the default `fast` strategy quietly produces much worse extraction — and the difference does not raise an error, it just yields worse chunks. Use their official container image rather than assembling dependencies by hand, and check which strategy actually ran.