Newsletter image

Subscribe to the Newsletter

Join 10k+ people to get notified about new posts, news and tips.

Do not worry we don't spam!

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use

Search

GDPR Compliance

We use cookies to ensure you get the best experience on our website. By continuing to use our site, you accept our use of cookies, Privacy Policy, and Terms of Service.

Osmantic - Inference, Automation, Ecosystem

Turn Your PC Into a Private AI Server in One Command with ODS

You have built this stack by hand before: llama.cpp, Open WebUI, Whisper, a vector database, n8n, ComfyUI. ODS assembles it for you in one command with hardware auto-detection. We read all 507 lines of the installer so you do not have to.

License Apache 2.0
License Apache 2.0
TL;DR
  • ODS (Osmantic Deployment System, formerly DreamServer) installs a full private AI stack in one command: llama-server, Open WebUI, Whisper, Kokoro, n8n, Qdrant, SearXNG, ComfyUI and more.
  • Apache 2.0, 3,446 stars, actively committed. Hardware auto-detection picks a model tier for you, and bootstrap mode gets you chatting in about two minutes.
  • We audited the 507-line installer: no telemetry, GitHub is the only external host, and sudo is used only to install git. Docker is required on every platform.
System Requirements
RAM8 GB (16 GB+ recommended)
GPUNVIDIA / Apple Silicon / AMD Strix Halo / Intel Arc
VRAM8 GB entry tier, scales to 90 GB+
✓ Apple Silicon

You have assembled this stack by hand before. Ollama or llama.cpp for inference, Open WebUI on top, Whisper for voice, a vector database for RAG, n8n to wire it together, ComfyUI because why not. It takes a weekend, and it breaks the next time you touch a driver. ODS does the assembly for you: one command, hardware auto-detection, and a chat window in about two minutes. It is Apache 2.0, 3,446 stars, and it was still getting commits the day we wrote this. Here is what it actually installs, and what that install script actually does to your machine.

First, the name confusion

If you went looking for this project after seeing it in a July roundup, you were probably sent to a repo called DreamServer under an org called Light-Heart-Labs. That link still works, but it is a redirect. The project renamed itself: github.com/Light-Heart-Labs/DreamServer now returns an HTTP 301 to github.com/Osmantic/ODS, which stands for Osmantic Deployment System. Several aggregators have not caught up. If a tutorial tells you to clone DreamServer, it is stale but harmless.

What you get

ODS is a Docker Compose stack with a CLI wrapped around it. The pitch is turning a PC, Mac or Linux box into a private AI server, and the component list is genuinely broad:

LayerWhat ships
Inference and chatllama-server, LiteLLM gateway, Open WebUI, TEI embeddings
VoiceWhisper (speech to text), Kokoro (text to speech)
Agents and automationHermes Agent, n8n, OpenCode, Agent Policy Engine
Knowledge and searchQdrant, SearXNG, Perplexica
CreativeComfyUI
OperationsDashboard with GPU metrics, Privacy Shield, Token Spy, Langfuse

Most of these we have covered individually. OpenCode is in there as the coding assistant, and the inference layer is the same llama.cpp lineage that sits under Ollama. The value here is not any single component, it is that they come pre-wired with a gateway in front and one config file behind.

The part that matters: what the installer does

The documented install is a pipe from the internet into your shell, which should always make you pause:

curl -fsSL https://install.osmantic.com/ods.sh | bash

So we downloaded it and read it instead of running it. It is 507 lines of Bash. Here is the honest audit.

Network calls. The only external hosts in the entire script are github.com (to clone the repo), install.osmantic.com (itself), and git-scm.com in a help message. There is no telemetry. We grepped for the usual suspects, analytics endpoints, PostHog, Segment, and any stray curl to a reporting URL. Nothing.

Privilege. It runs as your user. sudo appears in exactly two situations: installing git if you do not have it, and force-removing root-owned container data during cleanup. It does not ask for root to run the stack.

Where it lands. The install directory and repo URL are both environment variables, so you can redirect it before it touches anything:

# Read it first, then run it deliberately
curl -fsSL https://install.osmantic.com/ods.sh -o ods.sh
less ods.sh

# Point it wherever you want
ODS_INSTALL_DIR="$HOME/ai/ods" bash ods.sh

That is a clean bill of health for a curl-pipe-bash installer, which is not something we get to write often. It still deserves the same treatment as any other: download, read, then run.

Hardware tiers

ODS detects your accelerator and picks a default model rather than making you guess a quantization. The mapping, from the project's own table:

HardwareMemoryDefault modelContext
NVIDIA8 GBQwen3.5 2B (Q4_K_M)8K
NVIDIA12 GBPhi-4 14B (Q4_K_M)16K
NVIDIA24 GBQwen3.5 27B (Q4_K_M)32K
NVIDIA48 GBDeepSeek R1 Distill Llama 70B32K
Apple Silicon8 GBPhi-4 Mini (Q4_K_M)128K
Apple Silicon16 GBQwen3.5 9B (Q4_K_M)32K
Apple Silicon64 GB+Qwen3.6 35B-A3B (UD-Q4_K_M)128K
AMD Strix Halo64 GB unifiedQwen3.6 35B-A3B (UD-Q4_K_M)128K
Intel Arc6 to 8 GBPhi-4 Mini / Qwen3.5 9B128K / 32K

Tiers as documented by the project. We did not verify model selection on each backend.

Bootstrap mode is the nice touch: it starts you on a small model so the chat UI answers within a couple of minutes, then pulls the full tier model in the background.

Driving it

The ods CLI is the reason this beats a hand-rolled compose file. Services are toggles, not YAML edits:

ods status              # health checks and GPU state
ods list                # every service and whether it is up
ods enable n8n          # turn a service on
ods disable whisper     # turn one off
ods logs llm            # tail a service
ods model swap T3       # jump to another hardware tier
ods mode local          # local, cloud or hybrid inference
ods preset save         # snapshot the whole config

Open WebUI lands on localhost:3000. The llama-server API is on 11434 under Docker on Linux, or 8080 when it runs natively on macOS and Windows, and every port is overridable through the environment.

Local is the default mode. Cloud providers are opt-in, either with --cloud at install time or ods mode later, and the project is explicit that your prompts stay on your machine unless you choose otherwise. Given how the local-first label has been stretched lately, including by Ollama shipping a cloud-hosted default agent in v0.32, an installer that ships local-only and makes you ask for the cloud is worth noting.

Requirements and gotchas

  • Docker is mandatory everywhere. On Windows that means Docker Desktop with the WSL2 backend; on macOS, Docker Desktop plus Apple Silicon, since Intel Macs are not supported.
  • On macOS, llama-server runs natively for Metal while everything else runs in containers, so it is a hybrid deployment rather than a pure container stack.
  • The tier selector deliberately avoids Qwen3 Coder Next on unified-memory hosts, citing correctness issues on those backends.
  • 187 open issues against 3,446 stars. Normal for a young project moving fast, but this is not a set-and-forget appliance yet.
  • The last tagged release is v2.5.3 from May 26, while commits landed as recently as the day we published. Running from main gets you fixes the tag does not have, with the usual tradeoff.
  • Disk usage is not documented, and it will be substantial: a dozen container images plus a quantized model in the tens of gigabytes.
  • No GPU means CPU fallback, which works but is slow enough that the project recommends cloud mode instead.

Who should run it

Run ODS if you want the whole private-AI stack rather than one piece of it, and you would rather spend the evening using it than wiring it. It suits a homelab box, a spare workstation with a decent GPU, or an Apple Silicon machine with memory to spare. The service toggles make it a reasonable way to try Perplexica or Qdrant without committing to another compose file you will maintain forever.

Skip it if you only need inference, where plain llama.cpp or Ollama is less machinery for the same result, or if you are on hardware without an accelerator, where the whole point evaporates. And if you are on a shared or production server, read those 507 lines yourself before running them. We found nothing alarming, but "some blog checked it" is not an audit.

Sources and further reading

Tested on: not deployed. We statically audited the 507-line installer (network calls, privilege escalation, telemetry, install paths) on Linux 6.1, and verified the repository metadata, redirect and release history against the GitHub API on 2026-07-22. We did not run the full stack: this bench has 8 GB of RAM and no GPU, which is below the lowest documented tier, so any performance numbers from it would have been misleading. Component lists, hardware tiers and port defaults are as documented by the project.
Date checked: 2026-07-22

Prev Article
Quantization Formats Explained: NVFP4, MXFP4, and FP8
Next Article
How to create Logos with Midjourney

Related to this topic: