Deploy Your Own AnythingLLM in One Click: A Complete Guide
Run a private chat-with-your-documents AI workspace on your own HTTPS URL in about 15 minutes, with no Docker, no server, and no config files.
Why AnythingLLM
AnythingLLM is one of the most popular open-source AI applications on GitHub, with more than 66,000 stars and an MIT license. It turns your documents into a private AI workspace: upload PDFs, notes, or web pages, and chat with them using the model of your choice, including OpenAI, Anthropic, Google, Ollama, and many others.
It runs well on a laptop. The hard part starts when you want it online: a URL your team can open, HTTPS, a server that stays up, and a setup you do not have to babysit. That usually means renting a VM, installing Docker, cloning the repository, writing an environment file, and wiring up a reverse proxy and certificates.
This guide shows a shorter path.
What you get
- Your own AnythingLLM instance at
https://<your-name>.nexusai.run - Built from the official repository, so you get the current version, not a months-old image
- HTTPS handled for you
- Logs, restarts, and redeploys from one dashboard
- About 15 minutes from click to login, most of it waiting for the first build
Before you start
You need a NEXUS AI account. If you do not have one, the deploy page lets you sign up and brings you straight back. The Free plan works for trying it out.
You will also want an API key for at least one model provider, such as OpenAI or Anthropic, or an Ollama server you can reach. AnythingLLM asks for it during setup.
Step 1: Open the deploy link
Click this link:
The page shows the AnythingLLM repository and exactly what will be created. Nothing runs until you press Deploy.
The link carries four pieces of information, and each one maps to something AnythingLLM needs:
| Part of the link | What it does |
|---|---|
repo=...anything-llm |
The public GitHub repository to build |
dockerfile=docker/Dockerfile |
AnythingLLM keeps its Dockerfile in the docker/ folder, not at the root. NEXUS AI builds it with the repository root as the build context, the same as docker build -f docker/Dockerfile . |
port=3001 |
AnythingLLM listens on port 3001, and its Dockerfile does not declare it. NEXUS AI routes your URL to that port |
env=STORAGE_DIR=/app/server/storage |
The one setting AnythingLLM requires: where it keeps its database, documents, and vectors. Without it, the app stops at startup |
You will see STORAGE_DIR listed under Settings from this link. Values in that panel come from the link, not from the repository, so the page shows them for you to review and edit before anything is created.
Step 2: Sign in and deploy
- Sign in, or create an account. You land back on the same page.
- Choose a name. It becomes your URL, for example
my-docsgiveshttps://my-docs.nexusai.run. - Keep NEXUS AI as the deployment target.
- Press Deploy.
You are taken to the deployment page, where you can watch the build logs.
Step 3: Wait for the first build
The first build takes about 10 to 15 minutes. AnythingLLM is a full application: an Ubuntu base image, Node.js, a headless Chromium browser for web scraping, a React frontend, the API server, and a document processor. Later redeploys reuse cached layers and are much faster; in our tests a rebuild took under a minute.
When the status changes to Running, open your URL.
Step 4: Secure it immediately
This step matters more than any other.
A fresh AnythingLLM instance has no password. Until you set one, anyone who finds your URL can open your workspaces and use any model provider keys you add.
Before you connect a provider or upload a document:
- Open Settings.
- Go to Security.
- Turn on password protection and choose a strong password.
We checked this on a live deployment. Before the password, the workspaces API answered without a login. After it, the same requests return 401 Unauthorized.
Step 5: Connect a model and create a workspace
- Complete the onboarding: choose your LLM provider and paste its API key.
- Choose an embedding provider and a vector database. The defaults run inside the container, which is fine for small document sets (see the memory note below).
- Create a workspace, upload a few documents, and start asking questions.
How much can it handle?
In our test deployment, AnythingLLM used about 380 MB of memory when idle, inside a 512 MB container. That comfortably covers the web app, a handful of users, and a small document library.
Two things push memory up: embedding large document sets with the built-in local embedder, and running several heavy operations at once. For bigger libraries, choose an API-based embedding provider such as OpenAI during onboarding. It moves the heavy lifting off your container.
What you should know about data
AnythingLLM stores everything in STORAGE_DIR inside the container: its database, your uploaded documents, and the vector index.
- Stop and start keeps that data. The container is paused, not recreated.
- Rebuilding or redeploying creates a new container with an empty storage folder. You would set up the instance again and re-upload documents.
- Free plan test deployments expire automatically. The deployment page shows when, and paid plans let you keep deployments longer.
For a long-lived team instance, treat this as your working copy and keep the original documents somewhere else.
Updating to a new AnythingLLM version
Because the link builds from the official master branch, you get the latest version each time you deploy. To update an existing instance, redeploy it from the deployment page. Remember that a rebuild starts with fresh storage, as described above.
Under the hood
When you press Deploy, NEXUS AI:
- Clones the public repository from GitHub.
- Reads the Dockerfile at
docker/Dockerfileand checks it against a security policy. For example, it refuses privileged mode or access to the Docker socket, and it only allows installer scripts piped to a shell when they are downloaded over HTTPS. - Adds
EXPOSE 3001to the build, since the Dockerfile does not declare a port, so every future redeploy routes to the right place. - Builds the image with BuildKit and starts the container with your settings.
- Issues your HTTPS URL and routes traffic to port 3001.
Deploy other GitHub projects the same way
The same link format works for many open-source projects, even ones that were never set up for NEXUS AI:
https://nexusai.run/deploy?repo=https://github.com/OWNER/REPO
&dockerfile=path/to/Dockerfile (when it is not at the root)
&port=8080 (when the Dockerfile does not EXPOSE one)
&env=NAME=value (settings the app needs; repeat as needed)
&branch=main (optional)
Two rules keep this safe. Settings from a link are always shown for review before deployment. And names that change how a program starts, such as NODE_OPTIONS, LD_PRELOAD, PATH, and proxy variables, cannot be set from a link at all. Never put passwords or API keys in a link; enter them in the app after it is running.
If you maintain a project, you can add a Deploy to NEXUS AI button to your README and describe databases, workers, and required settings in a small nexus.json file. The full guide is at https://nexusai.run/kb/deploy-button
Quick FAQ
Is it really my own instance? Yes. It runs in your NEXUS AI account, on your URL, with your settings and your model keys.
Does it cost anything? The Free plan is enough to try it. Your model provider bills its API usage separately, as it would anywhere else.
Can I use local models? AnythingLLM can connect to an Ollama server you run elsewhere. The container itself is sized for the app, not for running large models.
What if the build fails? Open the Logs tab on the deployment page. Most failures are temporary network errors during the first build; redeploying usually fixes them.
Add a deploy button to your own repository: https://nexusai.run/kb/deploy-button
About NEXUS AI
NEXUS AI is an agentic AI app builder and full-stack deployment platform. Explore the AI App Builder, learn more on the About page, read the documentation, or contact the team through nexusai.run/contact.
Start for free · Read the documentation · About NEXUS AI · Contact