|
|
||
|---|---|---|
| data | ||
| docs | ||
| public | ||
| src | ||
| .dockerignore | ||
| .gitignore | ||
| Dockerfile | ||
| README.md | ||
| components.json | ||
| docker-compose.yml | ||
| drizzle.config.ts | ||
| eslint.config.mjs | ||
| next.config.ts | ||
| package-lock.json | ||
| package.json | ||
| postcss.config.mjs | ||
| tsconfig.json | ||
README.md
Release Orchestration & Tracking System
A web application to manage, track, and execute multi-customer deployment workflows across multiple Kubernetes clusters.
Features
- Multi-Cluster Support: Manage multiple K8s clusters, each hosting one or more customers
- Customer Management: Organize customers by cluster with namespace isolation
- Release Management: Create and track releases of different types (onboarding, regular release, hotfix)
- Step Templates: Define common deployment and verification steps
- Customer-Specific Customization: Override or add custom steps per customer
- Matrix View: Visual progress tracking across all customers and clusters
- Execution Tracking: Mark steps as done, skipped, or reverted with notes
Tech Stack
- Framework: Next.js 14+ (App Router)
- Language: TypeScript
- Database: SQLite (local) or Turso (cloud)
- ORM: Drizzle ORM (supports both SQLite and LibSQL)
- Styling: Tailwind CSS
- UI Components: shadcn/ui
Getting Started
Prerequisites
- Node.js 20.x or higher
- npm or yarn
Installation
- Install dependencies:
npm install
- Run the development server:
npm run dev
- Open http://localhost:3000 in your browser.
Database
The application uses SQLite with a local database file stored in data/app.db. The database schema is automatically initialized on first run.
Deployment
Option 1: Docker Compose (Self-Hosted)
# Build and run
docker compose up -d
# View logs
docker compose logs -f
Data is persisted in ./data/app.db via Docker volume.
Option 2: Vercel + Turso (Cloud)
- Sign up at Vercel and Turso
- Connect your Git repository to Vercel
- Set environment variables in Vercel dashboard:
DB_TYPE=tursoTURSO_URL=libsql://your-db.turso.ioTURSO_TOKEN=your-token
- Deploy automatically on git push
See docs/DEPLOYMENT.md for detailed instructions.
Usage
1. Setup Your Infrastructure
- Create Clusters: Go to Clusters page and add your Kubernetes clusters
- Add Customers: For each cluster, add customers with their namespaces
2. Create a Release
- Go to Releases page and click "Create Release"
- Choose release type:
- Onboarding: For new customer setup
- Regular Release: Standard deployment with version number
- Hotfix: Emergency fixes
- Define deployment and verification steps
- Activate the release to generate customer steps
3. Track Progress
- View the matrix visualization to see all customers' progress
- Click on individual steps to mark them as done or skipped
- Override step content for specific customers if needed
Project Structure
my-app/
├── src/
│ ├── app/ # Next.js pages
│ ├── components/ # React components
│ ├── lib/
│ │ ├── actions/ # Server Actions
│ │ ├── db/ # Database schema and connection
│ │ └── utils/ # Utilities
├── data/ # SQLite database
└── docs/ # Documentation (FSD, TSD)
Future Enhancements
- Auto-execution of bash/SQL scripts via K8s agents
- Multi-user support with authentication
- Audit logging
- Jenkins/Rancher API integrations
- Email notifications
- Scheduled releases
License
MIT