docs: amend Dev-Design + Deployment-Plan to bare-script reality (no Docker)

Decision 2026-07-12: do NOT containerize. Document actual deployment state:
- Bare Python scripts under vpsadmin user, Hermes cron drives oracle-pipeline.sh
- Container hardening / 150MB cap / Docker build retained as future target (design intent)
- Ollama not deployed; summarization deferred (graceful degradation is live)
- .env (chmod 600) is the live secret mechanism, not /etc/athena/secrets.yaml
This commit is contained in:
Epictetus
2026-07-12 06:55:27 +00:00
parent feba2fe7b7
commit 1539c743b5
2 changed files with 27 additions and 12 deletions
+15 -5
View File
@@ -513,7 +513,14 @@ Ollama daemon + 1B model requires ~2GB RAM. Running it inside the 150MB containe
### 11.2 MVP Security Baseline
- **Container hardening**:
> **Updated 2026-07-12:** Container-specific hardening below is *design intent*, not the current deployment. The live system runs as the `vpsadmin` standard user (no sudo) under Hermes cron. The equivalent protections that DO apply today: no hardcoded secrets (`.env` sourced by the pipeline scripts), DB file `chmod 600`, parameterized SQL. Container hardening is deferred to the future containerization task.
- **Current (bare-script) baseline**:
- Runs as `vpsadmin` standard user (no sudo)
- Secrets in `/home/vpsadmin/oracle/.env` (`chmod 600`), never in code
- DB protected: `chmod 600 oracle.db`
- All outbound adapters use `https://`
- **Deferred (container) hardening** *(design intent, not live)*:
- Run as non-root user (`user: nobody` in Dockerfile)
- Read-only filesystem where possible (except `/tmp`, `/var/log`)
- No SSH access inside container; pipeline is cron-triggered, no interactive access needed
@@ -714,17 +721,20 @@ The following requirements are implied by this design and should be added to `do
### 16.1 CI Pipeline
> **Updated 2026-07-12:** CI originally built a Docker image per push. The live system has no CI/Docker build. The equivalent checks run manually/optionally: lint, `pip audit`, and `pytest` if tests exist. Container build is deferred.
On every push to `MVP-milestone`:
- **Lint**: `ruff check`, `mdlint docs/`
- **Test**: Run unit tests (`pytest tests/`), integration tests with seed dataset
- **Build**: Create Docker image, tag with commit SHA
- **Scan**: Run `pip audit`; fail if critical vulnerabilities (>CVSS 7.0) found
- *(Deferred: Docker image build/tag with commit SHA)*
### 16.2 Deployment
- **Local dev**: `docker-compose up` (pipeline container + host-level Ollama)
- **Production**: `docker-compose up -d` + systemd services for inference (`qwythos-gpu0.service`)
- Ollama runs host-level (not in container) due to ~2GB memory requirement
> **Deployment reality (updated 2026-07-12):** This document originally specified Docker containerization (150MB cap, non-root, `python:3.11-slim`). The deployed system does **not** use containers. It runs as bare Python scripts under the `vpsadmin` standard user, invoked by Hermes cron (`oracle-pipeline.sh` at 13:00 UTC). The 150MB budget, non-root, and read-only-filesystem hardening described below remain *design intent* and are tracked as a future containerization task — not the current state. Ollama is also not deployed; summarization is deferred (graceful degradation is the live behavior).
- **Local dev / Production**: Bare Python on the VPS, no Docker. `pip install` deps, run `schema.sql`, source `.env`, then Hermes cron drives `oracle-pipeline.sh`.
- **Ollama**: Not currently running. Pipeline stores raw text and defers summarization (see §10.2 / REQ-REL-25). Adding Ollama is a separate step, host-level.
### 16.3 Rollback Procedure