TL;DR:local-ai.run is a free, open-source, self-hosted AI platform. Chat with your files, generate audio, bring your own models — all offline, all on your hardware, zero data leaving your network. One command to install.🔗 Website:
[local-ai.run]
⭐ GitHub:[github.com/360solutions-dev/local-ai]
Every time I needed to analyze a document with AI, I had to choose between convenience and privacy. Paste it into ChatGPT? Fast, but that document is now on someone else's server. Run a local model through a terminal? Private, but clunky — no UI, no file uploads, no real workflow.
I kept looking for a self-hosted platform that handled the full stack: file ingestion, vector embeddings, model routing, and a clean interface. Something I could spin up with Docker and actually hand to a non-technical teammate.
I couldn't find one that hit all the marks, so I built it.
local-ai.run is an open-source, self-hosted AI platform that runs entirely on your own hardware. It gives you a production-ready web interface for AI tools — chat with your files, generate audio, manage your models — without a single byte leaving your network.
It is MIT licensed, Docker-based, and designed to work in fully air-gapped environments.
Upload PDFs, Word documents, spreadsheets, CSVs, Markdown files, or code. local-ai indexes them using local embeddings, stores them in a vector database, and lets you have natural-language conversations against your own data.
.pdf
, .docx
, .xlsx
, .csv
, .txt
, .md
, .py
, .js
, .ts
, .json
nomic-embed-text
, all-minilm
, bge-large
, or any GGUF modelConvert any text to natural-sounding speech using locally-running TTS models. Adjust voice, speed, and pitch. Export audio files. No cloud TTS API, no per-character billing.
This is the part I'm most proud of. local-ai.run is not tied to any single model runtime. You can connect:
You switch engines by changing a single environment variable. Your data, your prompts, your conversations stay exactly where they are.
The stack is four isolated services, each running in its own container:
[ React UI : 3000 ] → [ Django API Gateway : 8000 ]
↓ ↓
[ Model Engine : 11434 ] [ ChromaDB : 8001 ]
| Layer | Tech |
|---|---|
| Web UI | React 18 + TypeScript + Tailwind CSS, served via Nginx |
| API Gateway | Python 3.11 / Django / Django REST Framework / LangChain |
| Model Engine | Ollama (default), LM Studio, vLLM, llama.cpp, any OpenAI-compat |
| Storage | ChromaDB for vectors, SQLite for metadata, Docker Volumes for files |
Everything is stateless at the service level. Your files and conversation history live in Docker volumes that you own and control.
curl -sSL https://get.local-ai.run | bash
This checks your Docker installation, pulls all images, configures defaults, and starts the stack. Works on Linux, macOS, and WSL2.
git clone https://github.com/360solutions-dev/local-ai
cd local-ai
cp .env.example .env
docker compose up -d
Then open http://localhost:3000
.
MODEL_ENGINE=ollama
VECTOR_STORE=chromadb
OLLAMA_MODEL=llama3.2
EMBED_MODEL=nomic-embed-text
ENABLE_GPU=true
UI_PORT=3000
MAX_UPLOAD_SIZE=50
Swap MODEL_ENGINE
to lmstudio
, vllm
, or llamacpp
and restart — that's it.
Every major AI assistant today has the same tradeoff buried in its terms: when you send data to their API, it may be used to improve their models, stored on their servers, or subject to subpoenas you'll never know about.
For most personal use cases, that's probably fine. But if you work with:
...then "just use ChatGPT" is not a real answer. local-ai.run is built for exactly these scenarios. It works fully offline — including in air-gapped environments with no internet access at all.
A few things actively in progress:
helm install local-ai local-ai/local-ai
)This is a v1 launch. There are rough edges. The documentation is thinner than I'd like. Some features listed above are still in progress.
But the core — file chat, text-to-audio, pluggable model engines, Docker-based deployment — is solid and works today. I've been running it daily on my own hardware.
I'm releasing it publicly because I'd rather get real feedback from real users than polish it in private forever.
curl -sSL https://get.local-ai.run | bash
If you run into issues, open an issue on GitHub. If you want to contribute, PRs are welcome — the codebase is React + Django + ChromaDB + Ollama, all documented in the repo.
🔗 Website: local-ai.run
⭐ GitHub: github.com/360solutions-dev/local-ai
Built with React, Django, ChromaDB, Ollama, and Docker. MIT licensed.