Download
Install Mission LLM on your own infrastructure.
Mission LLM runs as a container. Pick the method that fits your environment. The commands below come from the project's deployment documentation.
Public release images are not published yet. Build the image from source today, push it to your own registry, and replace REGISTRY in the commands below.
Platforms
- Available today
Server
A workstation, a server in your rack, or Kubernetes, Helm and OpenShift.
- Coming soon
Windows
A native desktop app for Windows, in development.
- Coming soon
macOS
A native desktop app for macOS, in development.
- Coming soon
Linux
A native desktop app for Linux, in development.
Until the desktop apps ship, build and run Mission LLM in Docker on your workstation. Checksums and signatures will be published with the first release.
From one container to a cluster.
Install options
Build from source
Build the image yourself from the repository. This is the supported path today.
git clone https://github.com/jordan-pesavento/mission-llm.git mission-llm
cd mission-llm
docker build -f docker/Dockerfile -t mission-llm:latest . Then run it with the Docker command, using mission-llm:latest as the image name. Or build and run with Compose from the repository:
touch server/storage/missionllm.db
cd docker
cp .env.example .env
docker-compose up -d --buildThen open http://localhost:3001
- The build downloads packages from the internet. For a disconnected site, build on a connected machine and move the image across with your approved transfer process.
Docker
One container and one storage folder. Your data persists across image updates.
export STORAGE_LOCATION=$HOME/missionllm && \
mkdir -p $STORAGE_LOCATION && \
touch "$STORAGE_LOCATION/.env" && \
docker run -d --rm -p 3001:3001 \
--cap-add SYS_ADMIN \
-v ${STORAGE_LOCATION}:/app/server/storage \
-v ${STORAGE_LOCATION}/.env:/app/server/.env \
-e STORAGE_DIR="/app/server/storage" \
REGISTRY/mission-llm:latest $env:STORAGE_LOCATION="$HOME\Documents\missionllm"; `
If(!(Test-Path $env:STORAGE_LOCATION)) {New-Item $env:STORAGE_LOCATION -ItemType Directory}; `
If(!(Test-Path "$env:STORAGE_LOCATION\.env")) {New-Item "$env:STORAGE_LOCATION\.env" -ItemType File}; `
docker run -d --rm -p 3001:3001 `
--cap-add SYS_ADMIN `
-v "$env:STORAGE_LOCATION`:/app/server/storage" `
-v "$env:STORAGE_LOCATION\.env:/app/server/.env" `
-e STORAGE_DIR="/app/server/storage" `
REGISTRY/mission-llm:latest; Then open http://localhost:3001
- To turn off telemetry from the first start, add
-e DISABLE_TELEMETRY="true"before the image name. - Model runtime on the same machine: in Mission LLM, use
http://host.docker.internal:PORTinstead oflocalhost. On Linux, also add--add-host=to the run command.host.docker.internal: host-gateway
Docker Compose
The same container as a managed service that restarts automatically.
services:
missionllm:
image: REGISTRY/mission-llm:latest
container_name: missionllm
ports:
- "3001:3001"
cap_add:
- SYS_ADMIN
extra_hosts:
- "host.docker.internal:host-gateway"
environment:
- STORAGE_DIR=/app/server/storage
- JWT_SECRET=REPLACE_WITH_A_LONG_RANDOM_STRING
- DISABLE_TELEMETRY=true
- LLM_PROVIDER=ollama
- OLLAMA_BASE_PATH=http://host.docker.internal:11434
- OLLAMA_MODEL_PREF=llama3.1:8b
- OLLAMA_MODEL_TOKEN_LIMIT=4096
- EMBEDDING_ENGINE=ollama
- EMBEDDING_BASE_PATH=http://host.docker.internal:11434
- EMBEDDING_MODEL_PREF=nomic-embed-text:latest
- EMBEDDING_MODEL_MAX_CHUNK_LENGTH=8192
- VECTOR_DB=lancedb
- WHISPER_PROVIDER=local
- TTS_PROVIDER=native
- PASSWORDMINCHAR=8
volumes:
- missionllm_storage:/app/server/storage
restart: always
volumes:
missionllm_storage:
driver: local
driver_opts:
type: none
o: bind
device: /path/on/local/disk docker compose up -dThen open http://localhost:3001
- Any setting from
docker/.env.examplecan go in theenvironmentlist.
Kubernetes
An example manifest with a persistent volume, deployment, service and ingress.
- 1
Set
imageto the image in your registry. - 2
Replace the volume placeholder with storage that fits your cluster. The example uses an AWS EBS volume.
- 3
Apply it:
kubectl apply -f cloud-deployments/k8/ manifest.yaml
Helm
A chart with ConfigMap settings, Secret references, persistent storage, and Ingress and Gateway API support. Telemetry is off by default in the chart.
image:
repository: REGISTRY/mission-llm
tag: "latest"
service:
type: ClusterIP
port: 3001
envFrom:
- secretRef:
name: missionllm-secrets
persistentVolume:
size: 16Gicd cloud-deployments/helm/charts
helm install my-missionllm ./missionllm -f values-secret.yaml - Keep API keys and other secrets in Kubernetes Secrets. The chart's
configvalues render to a ConfigMap, which is not encrypted.
OpenShift
A dedicated image for restricted security context constraints, arbitrary user IDs and GID 0. The template is community-maintained.
docker build -f cloud-deployments/openshift/Dockerfile -t REGISTRY/missionllm:openshift .
docker push REGISTRY/missionllm:openshift
oc new-project missionllm
oc new-app REGISTRY/missionllm:openshift
oc expose svc/missionllm --port=3001
oc set env deployment/missionllm \
STORAGE_DIR=/app/server/storage \
JWT_SECRET=$(openssl rand -hex 32) Cloud templates
- AWS CloudFormation
- One EC2 instance running the container.
- Google Cloud Deployment Manager
- One Compute Engine VM.
- DigitalOcean Terraform
- One Droplet.
- Hugging Face Spaces
- A Dockerfile for evaluation in a Space.
Each template pulls the image you name and serves HTTP on port 3001 without TLS. Add TLS and a password before you expose it.
Without containers
Running directly on Node.js 18 or later with Yarn 1.x is documented for reference only and is not a supported deployment method.
What the server needs.
System requirements
| Item | Requirement |
|---|---|
| Memory | 2 GB of RAM or more. |
| Disk | 10 GB minimum recommended. Storage grows with your documents, vectors and models. |
| CPU architecture | x86-64 (amd64) or ARM64. |
| Container runtime | Docker. Use 18.03 or later on Windows and macOS, or 20.10 or later on Linux, so the container can reach model runtimes on the host. |
| Language model | A local runtime such as Ollama or LM Studio, or an account with a cloud provider you approve. |
| Local model hardware | Depends on the model and runtime you choose. |
| Kubernetes installs | A cluster with persistent volume support. Helm 3 for the chart. |
After you install
Open the app
Open
http://localhost:3001, or your server's address on port 3001.Choose a model
In onboarding, choose your model provider. Documents are embedded with the built-in embedder and stored in the built-in LanceDB store by default. You can change both in Settings.
Set up access
Choose “Just me” to set a password, or “My team” to turn on multi-user mode, before anyone else can reach the server.
Turn off telemetry
Confirm
DISABLE_TELEMETRY="true"is set in the server environment.Add documents
Create a workspace and add your documents.