Files
light-heart-labs--dreamserver/ods/docs/WINDOWS-QUICKSTART.md
T
wehub-resource-sync 9e8f1bbeed
Dashboard / frontend (push) Failing after 0s
Dashboard / api (push) Failing after 0s
Lint PowerShell / powershell-lint (ubuntu-latest) (push) Failing after 1s
Python Lint / Lint Python with Ruff (push) Failing after 1s
ShellCheck / Lint shell scripts (push) Failing after 1s
Matrix Smoke / linux-smoke (push) Failing after 1s
Matrix Smoke / distro: cachyos (push) Failing after 15s
Matrix Smoke / distro: linux-mint-21.3 (push) Failing after 15s
Matrix Smoke / distro: debian-12 (push) Failing after 5m21s
Matrix Smoke / distro: fedora-41 (push) Failing after 4m56s
Matrix Smoke / distro: ubuntu-24.04 (push) Failing after 2m13s
Matrix Smoke / distro: rocky-9 (push) Failing after 10m39s
Matrix Smoke / distro: manjaro (push) Failing after 12m11s
Matrix Smoke / distro: opensuse-tw (push) Failing after 11m53s
Matrix Smoke / distro: archlinux (push) Failing after 20m3s
Matrix Smoke / distro: ubuntu-22.04 (push) Failing after 13m49s
Validate .env Schema / tier-1-env-validation (push) Successful in 52s
Validate .env Schema / tier-2-env-validation (push) Successful in 44s
Validate .env Schema / tier-3-env-validation (push) Successful in 52s
Validate .env Schema / tier-4-env-validation (push) Successful in 51s
Validate Extensions Catalog / Check catalog is up-to-date (push) Failing after 9m47s
Secret Scan / Scan for secrets (push) Failing after 21m4s
Validate Docker Compose / Validate Docker Compose files (push) Has been cancelled
Python Type Check / Type check with mypy (push) Has been cancelled
Validate .env Schema / tier-0-env-validation (push) Has been cancelled
Test Linux / integration-smoke (push) Has been cancelled
Lint PowerShell / powershell-lint (windows-latest) (push) Has been cancelled
Matrix Smoke / macos-smoke (push) Has been cancelled
chore: import upstream snapshot with attribution
2026-07-13 12:31:33 +08:00

6.9 KiB

ODS Windows Quickstart

Getting Started

ODS is fully supported on Windows 10 2004+ and Windows 11 (NVIDIA and AMD). The installer detects your GPU, selects the right model, downloads it, starts all Docker services, and creates a Desktop shortcut.

Prerequisites: Docker Desktop with WSL2 backend enabled. NVIDIA GPU or AMD Strix Halo recommended (CPU-only works with smaller models). 4GB+ RAM minimum, 16GB+ recommended.

Open a normal PowerShell session and run:

Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass
git clone https://github.com/Light-Heart-Labs/ODS.git
cd ODS
.\install.ps1

The installer will:

  • Detect your GPU (NVIDIA or AMD) and pick the right model tier
  • Download the AI model for your hardware (~1.5GB bootstrap, full model in background)
  • Start all Docker services
  • Run health checks and create a Desktop shortcut

Source checkout vs runtime directory

The cloned ODS folder is only the installer/source checkout. The Windows runtime is created under $env:USERPROFILE\ods by default (or $env:ODS_HOME if you set it before installing). That runtime directory contains .env, generated secrets, model files, logs, data, and the compose state.

If your C: drive is tight, choose the runtime location explicitly. Running the installer from G:\ODS does not automatically install the runtime on G:. Pass any NTFS/ReFS path with enough space:

$installDir = "D:\Apps\ods"
.\install.ps1 -InstallDir $installDir

Do not run raw docker compose commands from the cloned repository after installing; Compose will not find the generated .env there and relative volumes will point at the wrong data directory. Use .\ods.ps1 from the runtime directory, or cd $installDir before running manual Compose commands.

Do not run as Administrator for the normal install. The Windows preflight warns about this because user-level paths such as .opencode, .env, and data/ can become admin-owned and awkward to manage afterward.

First-run time: 10-30 minutes depending on download speed. Bootstrap mode starts chatting in under 2 minutes while the full model downloads in background.


Quick Commands

Manage ODS using ods.ps1 from your runtime directory:

$installDir = "$env:USERPROFILE\ods"
# If you installed with -InstallDir, use that same path instead:
# $installDir = "D:\Apps\ods"
cd $installDir

.\ods.ps1 status              # Health checks + GPU status
.\ods.ps1 start               # Start all services
.\ods.ps1 stop                # Stop all services
.\ods.ps1 restart             # Restart all services
.\ods.ps1 logs llama-server   # Tail logs (any service name)
.\ods.ps1 update              # Pull latest images and restart
.\ods.ps1 report              # Generate diagnostics bundle

For development installs where you intentionally want the runtime files inside your working tree, set ODS_HOME before running the installer:

$env:ODS_HOME = "C:\path\to\ODS\ods"
.\install.ps1

Only use this in-place mode if you want .env, data\, logs, and downloaded models to live inside that checkout.


Open the UI

Visit http://localhost:3000 — the chat interface is ready after the installer completes.

First user becomes admin. Start chatting immediately.


Bootstrap Mode (Faster Start)

The installer automatically uses bootstrap mode when applicable — a small model (~1.5 GB) downloads first so you can start chatting within 2 minutes, while the full model downloads in the background. Hermes-enabled installs run that bootstrap model at a 64K context floor, then keep the model selector's chosen full-model context after the swap. Large-context tiers still use 128K when they select it; constrained machines can stay lower. No extra flags needed.


Installer Flags

Flag What It Does
-Tier 2 Force specific tier (1-4)
-Voice Enable Whisper + TTS
-Workflows Enable n8n automation
-Rag Enable Qdrant vector DB
-Recommended Enable LiteLLM + SearXNG + Token Spy support services
-NoRecommended Disable LiteLLM + SearXNG + Token Spy support services
-Hermes Enable Hermes Agent
-NoHermes Disable Hermes Agent
-NoBootstrap Wait for the full model before launching
-OpenClaw Enable deprecated OpenClaw legacy agent framework
-Comfyui Enable ComfyUI image generation
-Langfuse Enable Langfuse LLM observability
-All Full stack enabled, except deprecated OpenClaw unless -OpenClaw is also passed
-Cloud Use cloud LLM provider instead of local
-DryRun Simulate install without making changes
-InstallDir <path> Install runtime files on a specific drive/path

Troubleshooting

Issue Fix
"Docker not running" Start Docker Desktop, wait for whale icon
"WSL2 not found" wsl --install then restart
"nvidia-smi fails" Update NVIDIA drivers; restart Docker Desktop
"Port in use" Edit .env, change WEBUI_PORT=3001
Out of memory Lower tier: .\install.ps1 -Tier 1

Full guide: WINDOWS-INSTALL-WALKTHROUGH.md


System Requirements by Tier

Tier VRAM Model Use Case
1 8-12GB 7B Qwen Basic chat, coding help
2 12-20GB 14B AWQ Daily driver, good reasoning
3 20-40GB 32B AWQ Power user, complex tasks
4 40GB+ 72B AWQ Maximum capability

Architecture

Windows Host
  ├── Docker Desktop (WSL2 backend)
  │     ├── llama-server container (GPU accelerated)
  │     ├── Open WebUI (port 3000)
  │     ├── SearXNG search
  │     └── PostgreSQL + Qdrant
  └── WSL2 Ubuntu (file system, networking)

NVIDIA GPU access: Windows driver → WSL2 → Docker Container Toolkit → llama-server

AMD Strix Halo local inference runs through the Windows host accelerated path selected by the installer; Docker services reach it through host.docker.internal.


Files & Locations

What Where
Install directory $env:USERPROFILE\ods by default; override with -InstallDir or ODS_HOME
Config $installDir\.env
Models $installDir\data\models\
Logs .\ods.ps1 logs <service> or docker compose logs after cd $installDir
Data Docker volumes (auto-managed)

Updating

$installDir = "$env:USERPROFILE\ods"
# If you installed with -InstallDir, use that same path instead.
cd $installDir
.\ods.ps1 update

Need Help?


Last updated: 2026-05-20