Skip to content

Self-hosted AI chatbot, open source — a self-hosted ChatGPT alternative for your documents

DocsGPT is a self-hosted, open-source (MIT) AI assistant and RAG platform. Run curl -fsSL https://docs.ac/install | bash, answer two questions, open localhost:7091 and chat with your documents using a local or cloud model — free, with unlimited users.

curl -fsSL https://docs.ac/install | bash

One command, Docker requiredQuickstart

Last updated:

Deployment posturesoperator · data boundary · LLM
  1. Cloud

    operatorArc53
    data boundaryArc53 multi-tenant cloudEU region
    network boundary
    llm locationCloud provider
  2. Managed

    operatorArc53
    data boundaryDedicated VPSyour region
    network boundary
    llm locationCloud provider or local engineor your own key (BYOM)
  3. On-premises

    operatorCustomer
    data boundaryYour network
    egress optional (hybrid)
    llm locationLocal engineor your cloud LLM (hybrid)
  4. Air-gapped

    operatorCustomer
    data boundaryYour networkno egress
    no external network
    llm locationLocal engine only
Text version

Cloud: Arc53 operates a multi-tenant service and the LLM runs at a cloud provider. Managed: Arc53 operates a dedicated instance in your chosen region; the LLM runs at a cloud provider, on a local engine on the instance, or with your own key (BYOM). On-premises: you operate DocsGPT inside your network; the LLM runs locally, or (hybrid) prompts cross the boundary to a cloud provider you choose. Air-gapped: zero external network; LLM, embeddings, vector store and storage all run inside your perimeter.

GitHub stars

18,317

on GitHub

Contributors

239+

Licence

MIT

unlimited users

Stack boot

17 s

1 vCPU / 2 GiB · fresh compose up

What you need

With a cloud model, this hardware runs the app, ingest and retrieval, not the model. 1 GiB RAM is not enough: the stack boots but the first ingest is killed out of memory and retried forever; no document is ever indexed. Disk is for the slim stack; add 3.5 to 4.5 GB for the docling parser and 2 to 7 GB per local model.

Host size by concurrent users, DocsGPT with a cloud model
 CPURAMDiskMeasured
Solo / evaluation1 concurrent user1 vCPU2 GiB10 GBBoots in 17 s; 0.4 s to first token; a 30-page PDF ingests in 158 s. 1 GiB is not enough.
Small teamup to 10 concurrent users2 vCPU4 GiB10 GB10 users at 0.5 s to first token, 25 at 1.6 s; ingest twice as fast as on 1 vCPU.
Department25 to 50 concurrent users4 vCPU8 GiB10 GB25 users at 0.4 s, 50 at 1.7 s (1.0 s with 2 API workers); a 250-stream burst completes with no errors. Tesseract OCR fits on the same box.

A concurrent user asks, streams a ~5 s answer, waits 2 s and asks again — more aggressive than real use, so user counts are conservative. Measured 2026-09-16 on DocsGPT 0.21.0, with the Docker Compose standalone stack (backend, worker, Redis, PostgreSQL) on x86-64 Linux. The 100 to 500 user tiers are in the hardware guide.

Software

Docker

Docker Desktop or OrbStack on macOS, Docker Desktop on Windows, or Docker Engine with the Compose plugin on Linux, where the installer offers to install it. The installer brings uv and Python itself; git is only needed for the clone route. The free DocsGPT public API needs no key; a cloud provider needs its key, a local engine its endpoint. Minimum Docker Engine 20.10 with Compose v2.24 or newer; recommended Docker Engine 27 or 28 with the bundled Compose 2.29+.

docker ≥ 20.10 · compose ≥ v2.24 · x86-64 · arm64 · no git

Disk

Disk by variant

10 GB for the cloud-model tiers (the slim stack is ~1 GB to download, 2 to 3.2 GB on disk); 20 GB with the docling parser or one local model; 40 GB and up when you keep several models. Runtime data stayed under 200 MB for a five-document corpus — plan by images and models, then add your documents plus about the same again for indexes.

slim ~1 GB download · docling +3.5 to 4.5 GB · one model 2 to 7 GB

Local model

A local model needs a GPU

llama3.2:3b (Q4) via Ollama on 4 vCPU / 8 GiB generates 4.3 tokens/s and the first token reaches DocsGPT after 42 s — a demo, not a deployment. GPU sizes by user count are in the hardware guide.

ollama · vllm · llama.cpp · 12 GB+ vram

One command, two questions

  1. 01

    Who should reach DocsGPT?

    Only this computer (default); other machines on the network, over plain HTTP with an access token; or a domain name with HTTPS, with a Caddy certificate and an access token. A domain asks for its name, and its DNS must point at this machine.

    --expose local | network | domain · --domain docs.example.com

  2. 02

    Which model provider?

    DocsGPT public API, free and without a key (default); OpenAI; Anthropic; Google Gemini; OpenRouter; Groq; or an OpenAI-compatible server such as Ollama, vLLM or LM Studio, which asks for a base URL and a model name. Cloud providers ask for their API key.

    --provider docsgpt | openai | anthropic | google | openrouter | groq | openai-compatible · --api-key

  3. 03

    It starts and prints the address

    Compose starts backend, worker, Redis and PostgreSQL (Caddy too for HTTPS), waits for the health check and opens http://localhost:7091. Settings and generated secrets sit in ~/.docsgpt/server/.env; docsgpt up --reconfigure asks the two questions again, and running the install line again upgrades.

    docsgpt status | logs | upgrade | down | uninstall

zsh — docsgpt

The installer fetches uv, installs the docsgpt package and hands over to docsgpt up. From a clone instead: git clone https://github.com/arc53/DocsGPT && cd DocsGPT && ./setup.sh on macOS and Linux, .\setup.ps1 on Windows; the setup script serves the app at http://localhost:5173, on this machine only unless you set DOCSGPT_BIND. Both routes are in the Quickstart.

Docker Compose, pip, Kubernetes, ARM

# One line: fetches uv, installs the docsgpt package, runs docsgpt up (Docker Compose)
curl -fsSL https://docs.ac/install | bash
# Windows, in PowerShell
irm https://docs.ac/install.ps1 | iex
# → app at http://localhost:7091 · docsgpt status | logs | upgrade | down | uninstall

# Read it before running it
curl -fsSL https://docs.ac/install -o install.sh && less install.sh && bash install.sh

# A server, no questions: everything after -s -- goes to docsgpt up
curl -fsSL https://docs.ac/install | bash -s -- --yes --domain docs.example.com --provider openai --api-key "$OPENAI_API_KEY"

# Without Docker, on your own Postgres and Redis
pip install docsgpt && docsgpt up --native

# Kubernetes — fill in secrets and an S3 bucket first
kubectl apply -k deployment/k8s/

# From a clone — setup.sh, five modes, app at http://localhost:5173
git clone https://github.com/arc53/DocsGPT && cd DocsGPT && ./setup.sh

Docker Compose is the default; pip runs the same stack without Docker (docsgpt up --native), and Kubernetes uses the manifests in deployment/k8s, applied with kubectl apply -k. PostgreSQL is the user-data store, file storage is local or S3-compatible, and the vector store is FAISS by default with pgvector, Qdrant, Milvus, Elasticsearch and MongoDB Atlas as alternatives; pgvector also enables hybrid search and GraphRAG. ARM builds are available.

Self-hosted runtime components: defaults and alternatives
 DefaultAlternatives
OrchestrationDocker ComposeKubernetes manifests in deployment/k8s (kubectl apply -k, pgvector and an S3 bucket) — no Helm chart; or pip with docsgpt up --native
Architecturex86-64ARM builds available
User-data storePostgreSQLManaged Postgres such as Neon, RDS, Supabase
File storageLocal diskS3-compatible (MinIO, R2)
Vector storeFAISSpgvector, Qdrant, Milvus, Elasticsearch, MongoDB Atlas — pgvector also for hybrid search and GraphRAG

On a cloud VM, with your domain

Any VPS works: Hetzner, DigitalOcean, Amazon Lightsail or your own. One line sets it up with HTTPS.

Point your domain's DNS at the VM, open ports 80 and 443, and run the installer with --domain. Caddy gets the certificate, and DocsGPT asks for an access token until you add single sign-on for separate accounts.

Before you go live, run docsgpt doctor, keep the other ports closed and work through the security checklist. docsgpt backup writes the database and data volumes to one archive.

# DNS → this VM · ports 80 and 443 open
curl -fsSL https://docs.ac/install \
  | bash -s -- --domain docs.example.com

# then
docsgpt doctor
docsgpt backup

Upgrading

Back up, read the upgrade notes, then upgrade the way you installed: docsgpt upgrade for the installer, pip install -U docsgpt and docsgpt migrate for pip, new image tags and kubectl apply -k for Kubernetes. Settings and data stay where they are.

The upgrading guide has every path and how to roll back; release notes are in the changelog. Installs older than v0.17 follow the Postgres migration guide first.

Self-hosted vs Managed vs On-premises

Same MIT-licensed software in each column. What changes is who runs it, who supports it and how it is priced.

Self-hosted, Managed and On-premises run the same MIT-licensed software. Self-hosted is free and operated by you with community support; Managed is a dedicated instance operated by Arc53 for a flat monthly fee from $2,000; On-premises is the commercial engagement in your own infrastructure with implementation, benchmarking and production support, from $10,000 one-time or recurring. SSO and SCIM are in the open-source build in every case.

Self-hosted, Managed and On-premises compared
 Self-hosted (community)ManagedOn-premises
Who operates itYouArc53You, with Arc53 support
SupportCommunity (Discord, GitHub)Dedicated support under an SLA, 99.9 % uptimeProduction support contract (included in the recurring option)
SSO / SCIMIncluded in the open-source build; configured by youConfigured by Arc53 during setupConfigured with Arc53 during the POC
PriceFree · MIT · unlimited usersfrom $2,000/month, flat, usage allowance includedfrom $10,000, one-time or recurring — no per-seat licence

Frequently asked questions

Is there a self-hosted AI?

Yes. DocsGPT is an MIT-licensed AI assistant and RAG platform you run yourself with Docker Compose or Kubernetes, on your laptop, a VPS or your own servers, with unlimited users.

Can ChatGPT be self-hosted?

ChatGPT itself cannot, but a self-hosted alternative can: DocsGPT gives a ChatGPT-style interface over your own documents, using an open-weight model run locally or a cloud model under your own API key. See the ChatGPT Enterprise comparison.

Can I run an LLM locally without a GPU?

Yes, for a demo. llama3.2:3b (Q4) via Ollama on 4 vCPU / 8 GiB generates 4.3 tokens/s, and through DocsGPT the first token arrives after 42 s because the retrieved context is prompt-evaluated first. For a team, serve the model on a GPU — an 8B model fits a 12 to 16 GB card for 1 to 5 users; sizes by user count are in the hardware guide. DocsGPT itself needs no GPU: with a cloud model it runs on 1 vCPU, 2 GiB RAM, 10 GB disk. Measured 2026-09-16.

How do I connect single sign-on when self-hosting?

Installs reachable from the network or a domain start with an access token. For separate accounts, set AUTH_TYPE=oidc and configure your identity provider (Okta, Keycloak, Authentik, Entra ID and others are documented); SCIM 2.0 provisioning is also included in the open-source build.

What is the difference between self-hosted and on-premises?

Same software. Self-hosted means you install and run it with community support; On-premises is the commercial engagement with implementation, benchmarking, production support and SLA.

Run it on your machine tonight

Quickstart in the docs, or a 30-minute demo if you are deploying this at work.