Spaces:
Paused
Paused
ADDITIVE: COPY live-wires files into image so /live-wires serves real 3D (szl_live_wires.py,live_wires.html,live_wires_3d.js)
c3f1846 verified | # syntax=docker/dockerfile:1 | |
| # SPDX-License-Identifier: Apache-2.0 | |
| # © 2026 Lutar, Stephen P. — SZL Holdings · ORCID 0009-0001-0110-4173 · Doctrine v11 | |
| # | |
| # Killinchu HF Docker Space — Andean Drone Intelligence (vessels pivot). | |
| # | |
| # a11oy-style: FastAPI app, mount pre-built React SPA from /app/static, base path "/", | |
| # SPA history fallback, /api/killinchu/v1/* endpoints, honest disclosure block. | |
| # No Node runtime needed (pure-FastAPI backend; SPA is pre-built at deploy time). | |
| # | |
| # Serves: | |
| # / — SPA front door (drone intelligence landing) | |
| # /assets/* — SPA JS/CSS chunks (vite base="/") | |
| # /drones /map /swarm ... — SPA routes (history fallback) | |
| # /api/killinchu/v1/* — real protocol decoders + drone DB + counter-UAS Λ-gate | |
| # /api/vessels/* — preserved aliases (vessels GREEN baseline, ADDITIVE) | |
| # | |
| # HF Space requirement: listen on PORT 7860. | |
| FROM python:3.12-slim | |
| WORKDIR /app | |
| RUN apt-get update && apt-get install -y --no-install-recommends \ | |
| ca-certificates && \ | |
| apt-get clean && rm -rf /var/lib/apt/lists/* | |
| # Python dependencies — real protocol stacks, no mocks. | |
| RUN pip install --no-cache-dir \ | |
| "fastapi>=0.111.0,<1.0.0" \ | |
| "uvicorn[standard]>=0.29.0,<1.0.0" \ | |
| "httpx>=0.27.0,<1.0.0" \ | |
| "starlette>=0.37.0" \ | |
| "pyModeS>=3.3.0,<4.0" \ | |
| "pymavlink>=2.4.40" | |
| # ADDITIVE (Yachay / Provenance Hardening): cryptography for DSSE+Cosign Khipu signing. | |
| RUN pip install --no-cache-dir "cryptography>=42.0" | |
| # Copy the pre-built SPA to the static root. | |
| # index.html + assets/* served directly at / and /assets/*; unknown GET -> index.html. | |
| COPY static/ ./static/ | |
| # Copy serve orchestrator + real drone DB + real protocol decoders. | |
| COPY serve.py ./serve.py | |
| COPY drones_db.json ./drones_db.json | |
| COPY killinchu_protocols.py ./killinchu_protocols.py | |
| COPY killinchu_expansion.py ./killinchu_expansion.py | |
| COPY killinchu_naval_haps.py ./killinchu_naval_haps.py | |
| COPY szl_dsse.py ./szl_dsse.py | |
| COPY szl_provenance.py ./szl_provenance.py | |
| COPY LEGAL_BOUNDARIES.md ./LEGAL_BOUNDARIES.md | |
| # ADDITIVE (Yachay / Live 3D Wires, PURIQ Doctrine v12): COPY the live-wires | |
| # module + host page + scene core so `import szl_live_wires` resolves in-container. | |
| # Without these the register() call in the server silently fails and /live-wires | |
| # falls through to the SPA shell. ADDITIVE ONLY. Sign: Yachay. | |
| COPY szl_live_wires.py ./szl_live_wires.py | |
| COPY live_wires.html ./live_wires.html | |
| COPY live_wires_3d.js ./live_wires_3d.js | |
| ENV PORT=7860 | |
| EXPOSE 7860 | |
| CMD ["python", "serve.py"] | |