Skip to content

chore: remove the llm-box (Ollama-in-Docker) sandbox #223

@quiet-node

Description

@quiet-node

Decision

Drop the llm-box hardened-Ollama Docker sandbox entirely, as a dedicated standalone PR so a future re-add can simply revert the removal PR for full context. Owner-decided 2026-06-15.

Why

Phase 2 ships the bundled built-in llama-server engine, which is now Thuki's local/private inference story: fully local, localhost-only, zero external install. llm-box was the "hardened local inference" option back when Ollama was the only backend; the built-in engine supersedes its core value for essentially all users.

It is now a niche-of-a-niche: a hardened Docker variant of the optional Ollama provider, marketed in the README as a security feature right next to a default engine that is already local. The messaging competes with itself, and removing it keeps the "built-in plus native Ollama" story lean (local-first simplification, consistent with the broader Phase 2 direction).

What we lose (honest trade-off, recorded for a future re-add)

The Docker container provides process-level isolation the built-in engine does not: cap_drop: ALL, read-only model volume, no-new-privileges, localhost-only networking. The bundled llama-server runs as a plain child process. So for a genuinely regulated or security-paranoid user, the sandbox offered real isolation the built-in engine cannot match. It also doubled as a contributor convenience for testing the Ollama provider without a native Ollama install. If that audience or that convenience becomes important again, revert this PR.

Scope (remove)

  • sandbox/llm-box/ (the docker-compose.yml and README.md).
  • package.json scripts: llm-box:start, llm-box:stop.
  • README.md: the "Isolated sandbox" feature bullet (around L82) and the full "Docker sandbox" section (around L150-166).
  • CONTRIBUTING.md: the llm-box testing instructions (around L79-85); reframe to "test the Ollama provider with a native Ollama install (ollama pull ...)".
  • CLAUDE.md: the sandbox/llm-box/ description in the Sandbox section.
  • Any other stray references: grep llm-box afterward to confirm none remain.

Leave untouched: sandbox/search-box/. That is the /search feature's SearXNG and reader stack, unrelated to inference.

Constraints

Re-add path

This is intentionally a standalone removal PR: to bring llm-box back later, revert the PR. That restores the compose file, scripts, and all docs in one move, with this issue as the rationale record.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions