System Requirements
AnythingLLM is fully customizable in every regard.
Given this customizable nature, your exact requirements to run AnythingLLM depend on many factors. You can use the tables below to get a rough idea of what it will take to run AnythingLLM.
AnythingLLM can be a wrapper around many external services that all accomplish some task - making AnythingLLM so lightweight it can run on the smallest machines - even Raspberry Pis!
Recommended configuration for AnythingLLM
This is the minimum value for running AnythingLLM. This will be enough for you to store some documents, send chats, and use AnythingLLM features.
| Property | Recommended Value |
|---|---|
| RAM | 2GB |
| CPU | 2-core CPU with AVX2 |
| Storage | 5GB |
CPU instruction set requirements
Your CPU must support the AVX2 instruction set. This is the one hard requirement AnythingLLM has of your hardware.
The default vector database, LanceDB (opens in a new tab), compiles against a baseline of Intel Haswell (2013) and newer. On a CPU without AVX2, the server process is killed the moment LanceDB loads and the container exits with:
/usr/local/bin/docker-entrypoint.sh: line 7: 115 Illegal instruction (core dumped) node /app/server/index.jsChecking for AVX2
AVX2 is an x86 instruction set, so this only applies to Intel and AMD processors. ARM machines - Apple Silicon Macs, Raspberry Pis, AWS Graviton - run a separate ARM64 build and are unaffected.
To check on a Linux host or guest:
lscpu | grep -o avx2If that prints nothing, the CPU AnythingLLM can see does not expose AVX2.
Running in a VM? Check inside the guest, not on the host. Hypervisors frequently present a generic virtual CPU that masks AVX2 even when the physical processor supports it - see below.
Virtual machines and AVX2
Proxmox, QEMU/KVM, and most other hypervisors default to a generic emulated CPU model such as kvm64 or x86-64-v2. These models deliberately hide newer instruction sets so guests can be live-migrated between mismatched hosts, and AVX2 is one of the things they hide. The guest then reports no AVX2 support even on a modern host processor.
If your physical CPU supports AVX2, set the guest CPU type to host to pass the real instruction set through. In Proxmox this is under Hardware → Processor → Type. Restart the VM and re-run the check above.
Cloud providers vary too. Some instance families expose AVX2 and others do not, so check inside the instance before assuming.
If your CPU cannot support AVX2
AVX2 cannot be emulated, so the only option is to move off the default vector database. Set VECTOR_DB in your .env to a provider that is not LanceDB - see Vector Databases for the supported options. LanceDB is only loaded when it is the selected provider, so choosing another one keeps it out of the process entirely.
Every other supported provider runs as a separate service, so you will need to host one yourself or use a cloud offering.
LLM selection impact
This is how you get chat responses. Popular hosted solutions like OpenAI (opens in a new tab) tend to provide state-of-the-art responses with almost zero overhead. However, you will need an API key for any cloud-based LLM provider.
Tip: Host a local LLM on another machine that has a GPU if the device running AnythingLLM does not have a GPU. AnythingLLM can connect to any LLM running anywhere via API.
Embedder selection impact
This is the model which you use to "embed" or vectorize text. Likewise, external services connected to AnythingLLM have zero overhead impact.
The default embedder runs on the same machine as AnythingLLM using CPU-only vectorization. If your documents are large or you need to vectorize a lot of data, you may want to use an external embedder provider and model.
Vector database selection impact
All supported vector databases either have no impact as they are externally hosted or can scale to hundreds of millions of vectors at the minimum recommended settings.
the default LanceDB vector database can handle anything you can throw at it