We Built a Self-Hosted AI Platform That Runs 100% on Your Hardware — Introducing local-ai.run A developer built local-ai.run, an open-source, self-hosted AI platform that runs entirely on local hardware. The platform supports file ingestion, vector embeddings, model routing, and a web interface for tasks like chatting with documents and generating audio, all offline with no data leaving the network. It is MIT licensed, Docker-based, and designed for air-gapped environments. 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 https://local-ai.run ⭐ GitHub: github.com/360solutions-dev/local-ai https://github.com/360solutions-dev/local-ai Built with React, Django, ChromaDB, Ollama, and Docker. MIT licensed.