cd /news/artificial-intelligence/we-built-a-self-hosted-ai-platform-t… · home topics artificial-intelligence article
[ARTICLE · art-27198] src=dev.to ↗ pub= topic=artificial-intelligence verified=true sentiment=↑ positive

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.

read4 min publishedJun 14, 2026

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.

── more in #artificial-intelligence 4 stories · sorted by recency
sponsored brought to you by zahid.host 4,200+ EU-deployed projects
reading about agents? ship yours in a single git push.

Run your AI side-project on zahid.host

EU-based hosting, git-push deploys, automatic HTTPS, no cold starts. Free tier with a custom domain — perfect for shipping the agent you just read about.

$git push zahid main
Live at https://your-agent.zahid.host
Get free account → Pricing
from €0/mo · no card required
LIVE [news/we-built-a-self-host…] indexed:0 read:4min 2026-06-14 ·