menzelj and Claude Opus 4.8
8d19b09abd
Phase 4: backups w/ volumes, notifications, settings & users, audit page (0.4.0)
...
- Backup/restore: per-stack tar.gz incl. named-volume snapshots (helper
container), upload restore with rename/overwrite/conflict detection.
- Notifications: ntfy/Discord/Slack/Gotify/generic webhooks, per-event
subscriptions; wired into the update checker and stack lifecycle.
- Settings page: update-check interval, webhook CRUD + test, user management
(with last-admin safeguards).
- Audit log page (searchable, paginated).
- Mobile-responsive sidebar/layout.
Multi-host agents and remote backup destinations (SFTP/S3) deferred.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-07 20:58:05 +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