Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

FleetPatch

A safety-first staged deployment and rollback reference application for Linux fleets.

Live demo: https://fleetpatch.kilobyte.gr/
Portfolio: https://portfolio.kilobyte.gr/

FleetPatch deployment console

Problem

Large remote fleets make apparently simple upgrades risky. A reliable rollout needs explicit stages, independent health checks, human approval, bounded concurrency, rollback readiness, and a durable record of every decision.

FleetPatch demonstrates that workflow without executing commands on real systems.

Features

  • Canary, staging, percentage, and production rollout stages
  • Human approval before stage transitions
  • Health gates for probes, errors, latency, and resource pressure
  • Fleet inventory with environment, region, version, health, and presence
  • Rollback simulation with audit event generation
  • Append-oriented operator activity timeline
  • Typed React interface and concurrency-safe Go state transitions
  • API tests, UI tests, Docker builds, and GitHub Actions CI

Technology

  • Control plane: Go 1.23, standard net/http, structured slog
  • Frontend: React 19, TypeScript, Vite
  • Testing: Go test, Vitest, Testing Library
  • Delivery: multi-stage Docker, Nginx, Compose, GitHub Actions

Quick start

npm install --prefix web
go run ./cmd/api

In another terminal:

npm run dev --prefix web

Run all checks:

make check

API routes

Method Route Purpose
GET /api/health Control-plane health
GET /api/overview Fleet health and compliance
GET /api/nodes Fleet inventory
GET /api/deployments Rollout state
GET /api/audit Operator event trail
POST /api/deployments/:id/advance Approve the next stage
POST /api/deployments/:id/rollback Stop and roll back a deployment

State-changing requests require an actor:

curl -X POST http://localhost:4300/api/deployments/dep-2091/advance \
  -H 'content-type: application/json' \
  -d '{"actor":"release-manager"}'

Safety boundaries

The public demo operates on synthetic browser state. The API also contains only sample nodes and does not implement remote command execution.

A production implementation must add mutual TLS, signed artifacts, strict role-based approval, environment allowlists, independent monitoring gates, and append-only audit storage. See docs/architecture.md.

Docker

docker compose up --build

Then open http://localhost:8080.

License

MIT © 2026 Vasileios Smyrlis

About

Safety-first staged deployment and rollback reference application for Linux fleets, built with Go, React, and TypeScript.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages