75424a5f25
Build / build (push) Successful in 10m42s
Adds a new Stacks feature: upload/edit docker-compose YAML, deploy as atomic units, browse revisions, roll back, and stream logs. Backend in internal/stack + internal/api/stacks.go, persistent storage in internal/store/stacks.go. Stacks pages (list, new, detail) use a modern Forge aesthetic — Instrument Serif display type, JetBrains Mono for meta/code, indigo ember accents, dot-grid hero, registration marks on hover, terminal panel for logs. Palette is sourced from the app's existing design tokens so the feature remains consistent with the rest of Tinyforge. Fonts self-hosted via @fontsource/instrument-serif and @fontsource/jetbrains-mono to satisfy the strict CSP.
2.6 KiB
2.6 KiB
Mini CI Feature Ideas
Feature ideas for evolving the project from a Docker container watcher into a self-hosted mini CI/deployment platform for local developers.
Build Pipeline
- Build from source — clone a repo, run a
Dockerfileordocker-compose.yml, build the image locally, then deploy it. Closes the loop from source to running container. - Build logs streaming — SSE stream of
docker buildoutput, reusing the existing container logs streaming pattern. - Build cache management — show Docker layer cache stats, allow selective cache invalidation.
Git Integration
- Webhook receiver for push events — Gitea/GitHub/GitLab sends a push webhook, the platform rebuilds and redeploys automatically. Reuses existing webhook infra from registry polling.
- Branch preview environments — push to
feature/foo, get a temporary deployment atfoo.preview.local. Auto-cleanup when the branch is deleted. - Commit status reporting — push deploy status back to Gitea/GitHub as commit statuses (green check / red X).
Developer Experience
- CLI tool —
Tinyforge deploy,Tinyforge logs,Tinyforge statusfrom the terminal for developers who prefer the shell. .Tinyforge.ymlproject config — a declarative file in the repo root that defines how to build, which env vars to inject, health check paths, proxy rules. One file, full deploy config.- Environment promotion — one-click promote from
devtostagingtoprod. Builds on the existing multi-stage project model by adding a promotion workflow.
Observability
- Resource dashboard — CPU/memory/disk per container over time (not just a snapshot). Use Docker stats API with a small ring buffer in SQLite.
- Deploy timeline — a visual timeline showing deploys, rollbacks, and incidents across all projects. "What happened in my infra today?"
- Alerting — container OOM, high CPU, health check failures pushed to Telegram/Discord/email/webhook.
Multi-Service Orchestration
- Compose support — import a
docker-compose.ymland manage the entire stack as one project. Deploy/rollback the stack atomically. - Service dependency graph — visualize which services depend on which. Block deploys if a dependency is unhealthy.
- Shared secrets — secrets scoped to a project or global, injected into any service that needs them. Extends the existing encrypted secrets model from static sites.
Database / Persistence
- Database snapshots — one-click snapshot/restore of database volumes before risky deploys.
- Automatic pre-deploy backup — snapshot the data volume before every deploy, auto-prune old snapshots.