menzelj and Claude Opus 4.8
b553c1b861
Phase 2: Volume Wizard, GPU & device passthrough (0.2.0)
...
Backend:
- gpu_service: detect NVIDIA (nvidia-smi) + AMD/Intel (/dev/dri, sysfs);
inject helpers (nvidia deploy.reservations, /dev/dri + groups + LIBVA)
- volume_service: list/orphaned/prune volumes; NFS/SMB/named/bind/tmpfs
YAML generation (generate-yaml)
- device_service: USB/TTY/DRI detection + sandboxed host path browser
- compose_edit_service: server-side merge of volume/gpu/device fragments
- routers: volumes (+host paths), editor (services/add-volume/set-gpu/
add-device/remove-device/set-privileged), system gpus+devices
- compose: bind-mount /dev:ro for detection
Frontend:
- split-pane StackEditor with helper panel (service picker + tabs)
- VolumeWizard (bind/named/nfs/smb/tmpfs) + HostPathBrowser
- GPUSelector, DevicePanel; api clients for volumes/editor/system
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-07 16:35:22 +00:00
menzelj and Claude Opus 4.8
7775128c07
Fix CORS_ORIGINS env parsing crash (pydantic-settings NoDecode), bump 0.1.1
...
list[str] settings fed from env were JSON-decoded by pydantic-settings
before the field validator ran, so a plain string like
CORS_ORIGINS=http://host:5009 raised JSONDecodeError on startup.
Annotate list env fields with NoDecode and parse CSV/JSON in the validator.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-07 16:20:36 +00:00
menzelj and Claude Opus 4.8
f732cb080b
Initial commit: StackPilot Phase 1 (Core)
...
Self-hosted Docker Compose manager.
- Backend: FastAPI + docker-py + SQLite (JWT auth, file-first stacks,
lifecycle, live status, WebSocket logs, docker-run converter, audit log)
- Frontend: React + Vite + Tailwind (login/setup, dashboard, stacks,
stack detail, Monaco editor, dark/light theme)
- Deployment: docker-compose.yml, Dockerfiles, nginx reverse proxy
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-07 16:04:58 +00:00