Stack Sizer
Size a self-hosted stack from official sources.
Load and options
LibreChat
v1.0.0Load
Up to 50 users, up to 500 stored messages a day (prompts + replies), up to 0.5 GB of documents uploaded for file search; one year of history.
Options
No options change this app's resources.
Recommended resources
App requirements + system baseline + safety headroom. Nothing else is added, and nothing is rounded to a machine size.
vCPU 5.52, RAM 9 GiB, Disk 34.422 GiB
vCPU5.52
RAM9GiB
Disk34.422GiB
Breakdown
| Line | From | vCPU | RAM (GiB) | Disk (GiB) | Sources |
|---|---|---|---|---|---|
| LibreChat | LibreChat (API and web client) · Medium load | 1.5 | 2 | 4.499 | 12345 |
| LibreChat | MongoDB · Medium load | 0.5 | 1 | 1.863 | 675 |
| LibreChat | Meilisearch · Medium load | 0.5 | 0.75 | 6.522 | 89105 |
| LibreChat | PostgreSQL with pgvector · Medium load | 1 | 1 | 6.5 | 111213141516171819202122 |
| LibreChat | rag_api (lite) · Medium load | 1 | 1.5 | 2.048 | 232120245 |
| System baseline | Operating system, Container runtime (Docker Engine, containerd), System logs (journald), plus logs for 5 containers | 0.1 | 1.25 | 8.5 | 252627282930 |
| Safety headroom | vCPU 20%, RAM 20%, disk 15% of apps + baseline | 0.92 | 1.5 | 4.49 | 3126322933 |
| Recommended total | 5.52 | 9 | 34.422 |
Sources
- LibreChat docs: deployment overview, minimum requirements 1 GiB RAM and 1 vCPU, 2 GB RAM suggested with everything enabled (LibreChat, read 14 Oct 2026)
- LibreChat v0.8.8 Dockerfile: node:24.16.0-alpine, USER node, creates /app/client/public/images, /app/logs, /app/uploads, /app/data, EXPOSE 3080, CMD npm run backend (LibreChat, read 14 Oct 2026)
- GHCR librechat-ai/librechat:v0.8.8 (linux/amd64): 988,662,027 B compressed, 2,804,835,840 B decompressed and counted; config User node, no Healthcheck; layers contain usr/bin/wget (LibreChat, read 14 Oct 2026)
- LibreChat v0.8.8 data-schemas winston config: log files on by default, daily rotation, maxSize 20m, maxFiles 14d (LibreChat, read 14 Oct 2026)
- Docker: containerd image store is the default on fresh Engine 29+ installs and keeps images compressed and uncompressed (LibreChat, read 10 Oct 2026)
- MongoDB manual: WiredTiger cache defaults to the larger of 50% of (RAM - 1 GB) or 256 MB; set --wiredTigerCacheSizeGB when the container cannot use all host RAM (LibreChat, read 14 Oct 2026)
- Docker Hub tag mongo:8.0.20 (linux/amd64): 312,915,385 B compressed; layers decompressed and counted: 957,032,960 B (LibreChat, read 14 Oct 2026)
- Meilisearch: Storage (LMDB never returns freed space; 9.1 MB JSON gave 224 MB on disk and ~305 MB RAM; RAM-to-disk 1/3, often 1/10, works well) (LibreChat, read 14 Oct 2026)
- Docker Hub tag getmeili/meilisearch:v1.35.1 (linux/amd64): 105,981,256 B compressed; layers decompressed and counted: 157,731,328 B (LibreChat, read 14 Oct 2026)
- LibreChat docs: Meilisearch (SEARCH=true plus a master key of 16+ bytes shared with the meilisearch service; keep port 7700 internal; reset-meili-sync) (LibreChat, read 14 Oct 2026)
- PostgreSQL 18 documentation: 19.4 Resource Consumption (LibreChat, read 10 Oct 2026)
- PostgreSQL 18 documentation: 19.3 Connections and Authentication (LibreChat, read 10 Oct 2026)
- PostgreSQL 18 documentation: 19.10 Vacuuming (autovacuum settings) (LibreChat, read 10 Oct 2026)
- PostgreSQL 18 documentation: 19.5 Write Ahead Log (max_wal_size) (LibreChat, read 10 Oct 2026)
- PostgreSQL 18 documentation: 51.2 How Connections Are Established (LibreChat, read 10 Oct 2026)
- Docker Official Image postgres: documentation (docker-library/docs) (LibreChat, read 10 Oct 2026)
- Docker Hub: library/postgres tag 18.6 (compressed image sizes) (LibreChat, read 10 Oct 2026)
- Docker Hub tag pgvector/pgvector:0.8.0-pg15-trixie (linux/amd64): 159,295,182 B compressed (152 MiB); layers decompressed and counted: 455,663,616 B (LibreChat, read 14 Oct 2026)
- pgvector v0.8.0 README: each vector takes 4 × dimensions + 8 bytes (LibreChat, read 14 Oct 2026)
- OpenAI embeddings guide: text-embedding-3-small returns 1536-dimensional vectors (LibreChat, read 14 Oct 2026)
- rag_api v0.9.0 app/config.py: RAG_PORT 8000, DB_HOST/DB_PORT/POSTGRES_* settings, RAG_OPENAI_API_KEY falls back to OPENAI_API_KEY, text-embedding-3-small, CHUNK_SIZE 1500, CHUNK_OVERLAP 100 (LibreChat, read 14 Oct 2026)
- LibreChat v0.8.8 docker-compose.yml: api on 3080 (librechat-data at /app/data), mongo:8.0.20 --noauth, meilisearch v1.35.1, pgvector 0.8.0-pg15-trixie, rag_api lite, admin-panel (LibreChat, read 14 Oct 2026)
- rag_api v0.9.0 README: EMBEDDING_BATCH_SIZE 500, EMBEDDING_MAX_QUEUE_SIZE 3, PARALLEL_EXECUTION 2 per upload; memory ≈ batch × (queue + parallel); smaller batches below 2 GB RAM (LibreChat, read 14 Oct 2026)
- GHCR manifest of librechat-ai/librechat-rag-api-dev-lite:v0.9.0 (linux/amd64): 539,995,713 B compressed; layers decompressed and counted: 1,659,485,184 B (LibreChat, read 14 Oct 2026)
- Ubuntu Server: System requirements (Sizing policy, read 10 Oct 2026)
- Google Kubernetes Engine: About GKE node sizing (Sizing policy, read 10 Oct 2026)
- ANAROQ measurement: dockerd and containerd at rest (Ubuntu 24.04, Docker 29.8.2) (Sizing policy, read 10 Oct 2026)
- Docker Community Forums: Docker resource usage & overhead (Sizing policy, read 10 Oct 2026)
- journald.conf(5), Ubuntu Manpages (Sizing policy, read 10 Oct 2026)
- Docker Docs: Local file logging driver (Sizing policy, read 10 Oct 2026)
- AWS Compute Optimizer: Rightsizing recommendation preferences (Sizing policy, read 10 Oct 2026)
- Kubernetes: Node-pressure Eviction (Sizing policy, read 10 Oct 2026)
- mke2fs(8), Ubuntu Manpages (Sizing policy, read 10 Oct 2026)
Deployment Spec
Turn this result into a link you can keep or share. Everything is in the link; nothing is sent to us.
A short lowercase image id, for example ubuntu-24.04.