docs: clarify external services and embedded pi

This commit is contained in:
2026-08-04 13:41:03 +02:00
parent 08ae9e6d90
commit ab69c7941e
@@ -22,9 +22,9 @@ the complete service definitions.
```text
Browser -> frontend container -> core container
|-> Git workspace registry
|-> configured DWH
|-> configured VectorDB
|-> configured embedding/LLM services
|-> configured external DWH endpoint
|-> configured external VectorDB endpoint
|-> configured external embedding/LLM endpoints
`-> configured session persistence
```
@@ -88,6 +88,39 @@ frontend host port needed by a generic reverse proxy. Examples for Nginx and Cad
forwarded identity, websocket/SSE behavior, and timeouts, but neither proxy is embedded into or
required by the core architecture.
## Product boundary and external services
DWH, VectorDB, and embedding services are always external to the ThothII product boundary and
Compose lifecycle. The mandatory ThothII stack neither defines nor starts them, never uses
`depends_on` for them, and does not assume their implementation, installation path, container
name, Docker network, or host. The same rule applies when all services happen to run on the same
physical server: from ThothII's perspective they remain independently operated services reached
through configurable addresses, ports, URLs, TLS settings, credentials, database/schema names,
and vector collections.
An operator may address a co-resident service through a routable host address, a DNS name, a
documented host-gateway alias, or an explicitly configured external Docker network. None of these
becomes a product default. In particular, `127.0.0.1` inside `core` always means the core container,
not the Docker host; the installation guides must show the correct Mac/Windows Docker Desktop and
Linux server alternatives.
LLM endpoints follow the same configurable external-service model, while the Pi coding-agent
runtime itself is part of ThothII as described below.
## Embedded Pi runtime
Pi is an internal runtime dependency of ThothII and is installed at a pinned version while building
the `core` image. The backend starts the image-bundled Pi executable; it never searches for or
bind-mounts a Pi installation from the host. Therefore a clean Windows PC, Mac, Linux workstation,
or server needs only Docker, Docker Compose, and Git to build and run ThothII.
Pi configuration and provider credentials are supplied to the container through the documented
ThothII configuration and secret-file contracts. Pi writable state may use the ThothII-managed
`/home/thoth/.pi` volume, but the binary and package installation remain immutable image content.
Upgrading Pi requires changing the pinned build argument, rebuilding the image, and passing the
normal ThothII regression and image-smoke gates. The container health/smoke test verifies that Pi
exists in the image and can be invoked without any host executable.
## Persistence
Named volumes are the portable default for workstation installations. Server documentation shows
@@ -139,7 +172,7 @@ include a local default and may be overridden with a release version or digest.
Build inputs exclude `.git`, worktrees, local `.env` files, secrets, test output, caches, and
workspace runtime data through `.dockerignore`. Builds must work from macOS, Windows/WSL2, and
Linux without host-language runtimes beyond Docker, Compose, and Git.
Linux without host-language runtimes or a host Pi installation beyond Docker, Compose, and Git.
## Migration from the current deployment
@@ -180,8 +213,9 @@ consumed without installing ThothII there.
Automated gates cover Compose rendering for local/server plus each Git transport, LF enforcement,
Docker builds, container health, frontend-to-core same-origin routing, registry bootstrap and
offline fallback, secret non-disclosure, and absence of PSD/Chirone/portal dependencies in active
deployment files. Existing backend, frontend, harness, registry, and installation-document tests
remain required.
deployment files. Image tests also prove that the pinned Pi executable is available inside `core`
and that no host Pi path is mounted or required. Existing backend, frontend, harness, registry, and
installation-document tests remain required.
Manual acceptance covers a clean macOS build, a clean Windows Docker Desktop/WSL2 build from a
GitHub clone, a Linux server deployment behind a generic proxy, an update after `git pull`, volume
@@ -190,7 +224,7 @@ persistence, and restoration from backup.
## Non-goals
- Bundling a DWH, production VectorDB, embedding server, LLM server, or reverse proxy into the
mandatory ThothII stack.
mandatory ThothII stack, even when those services are co-resident on the same physical host.
- Making PSD, Chirone, or `omics_portal` supported product profiles.
- Synchronizing local filesystem sessions between installations without shared session storage.
- Implementing persistent runtime SSH tunnels for workspace connectors in this migration.