Rebrand the project as Tinyforge to reflect its evolution from a Docker container watcher into a self-hosted mini CI/deployment platform. Rename covers: Go module path, Docker labels, DB/config filenames, JWT issuer, Dockerfile binary, docker-compose, CI workflows, frontend i18n, README with static sites docs, and all code comments.
This commit is contained in:
@@ -0,0 +1,51 @@
|
||||
# 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.
|
||||
|
||||
## Name Candidates
|
||||
|
||||
| Name | Vibe | Domain feel |
|
||||
|---|---|---|
|
||||
| **Shipyard** | Where you build and launch ships (deployments). Nautical, memorable. | `shipyard.dev` |
|
||||
| **Dockside** | Nods to Docker heritage, but broader — "the place beside the dock." | `dockside.dev` |
|
||||
| **Launchpad** | CI/CD connotation, action-oriented. | `launchpad.run` |
|
||||
| **Portside** | Same nautical lane as Portainer, but fresh. | `portside.dev` |
|
||||
| **Homeport** | Self-hosted feel, "home" + "port" (Docker). | `homeport.dev` |
|
||||
| **Tinyforge** | Small but powerful — a forge for building/deploying. | `tinyforge.dev` |
|
||||
| **Deployr** | Blunt, says exactly what it does. | `deployr.dev` |
|
||||
| **Runwell** | "Run things well." Simple, positive. | `runwell.dev` |
|
||||
|
||||
## Build Pipeline
|
||||
|
||||
- **Build from source** — clone a repo, run a `Dockerfile` or `docker-compose.yml`, build the image locally, then deploy it. Closes the loop from source to running container.
|
||||
- **Build logs streaming** — SSE stream of `docker build` output, 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 at `foo.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** — `shipyard deploy`, `shipyard logs`, `shipyard status` from the terminal for developers who prefer the shell.
|
||||
- **`.shipyard.yml` project 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 `dev` to `staging` to `prod`. 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.yml` and 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.
|
||||
Reference in New Issue
Block a user