This repository implements a self-hosted deployment platform alternative to services like Vercel or Netlify. It enables users to deploy GitHub repositories with zero-downtime updates, instant rollback, and preview deployments for branches. The platform provides team-based access control, custom domain support with automatic Let's Encrypt SSL, storage provisioning (databases/volumes), and real-time log aggregation via Loki. Built with FastAPI, SQLAlchemy, and ARQ for background jobs, the architecture separates concerns into routers, services, models, utilities, and workers. Infrastructure is orchestrated via Docker Compose, including Traefik for routing, PostgreSQL for primary data, Redis for caching/job queue, and Loki/Alloy for logs. Key entry points include the main FastAPI app, API routers for auth/project/team/admin, and worker entrypoints for ARQ jobs and deployment monitoring.
This repository implements a GitHub Action that automates deployment of static content to GitHub Pages. It takes a folder from the workspace, optionally builds it, and pushes the contents to a specified branch (default `gh-pages`) using git worktrees and rsync. The action supports authentication via GitHub token, personal access token, or SSH deploy keys, and offers extensive configuration options including clean deployments, single-commit history, target subfolders, dry runs, tags, and Git LFS. The architecture is modular: `src/main.ts` is the entry point, `src/lib.ts` orchestrates the workflow, `src/git.ts` handles repository initialization and deployment, `src/worktree.ts` manages git worktree creation with retry logic, `src/ssh.ts` configures SSH clients, and `src/execute.ts` provides a reusable command execution wrapper. The action relies on external tools `git`, `rsync`, and `ssh-agent`, and uses the `@actions/*` toolkit for GitHub Actions integration. The codebase is well-structured TypeScript with comprehensive unit and integration tests, and follows modern JavaScript practices with ESLint, Prettier, and Jest.
Jenkins is the leading open-source automation server, providing a web-based platform for continuous integration and continuous delivery (CI/CD). In production, it orchestrates build, test, and deployment pipelines triggered by SCM changes, scheduled intervals, or manual requests. The architecture is a monolithic Java web application with a plugin-based extension system, using Stapler for URL routing, Jelly/HTML views, and a modern JavaScript frontend bundled with webpack. Key entry points include the central `Jenkins` singleton, a rich set of CLI commands (e.g., `BuildCommand`, `CreateJobCommand`), and a REST-like API. Data flows involve job scheduling via the `Queue`, execution on agents (controller/agent architecture), SCM checkout, build steps, artifact archiving, and result reporting. External dependencies include a servlet container (Jetty), Spring Security (migrating from Acegi), XStream for XML persistence, and numerous libraries for remoting, templating, and UI components. The codebase is highly extensible through `@Extension` points, descriptors, and a well-defined plugin lifecycle.
Spinnaker is a continuous delivery platform with a microservices architecture for deploying and managing applications across multiple cloud providers. The system consists of distinct services including clouddriver (cloud abstraction), orca (pipeline orchestration), deck (React/UI), gate (API gateway), fiat (authorization), front50 (storage), echo (event processing), igor (CI integrations), kayenta (canary analysis), and rosco (image baking). It features polyglot implementation (Java/Kotlin/TypeScript/Groovy), Spring Boot backend services, React frontend, RESTful APIs, event-driven architecture, and extensive cloud provider integrations. The platform enables pipeline definition, execution, artifact management, and deployment strategies across AWS, Kubernetes, GCP, Azure, and other environments.
Flyway is a database migration tool that applies version-controlled SQL scripts to manage schema changes across 50+ database engines (relational and NoSQL). It operates as a Java library, CLI, Maven/Gradle plugin, and Docker image. The core architecture centers on a plugin system where `DatabaseType`, `VerbExtension`, `ConfigurationExtension`, and `Callback` implementations are discovered via Java ServiceLoader. The migration lifecycle is orchestrated by `FlywayExectutor`: it resolves migration scripts (SQL or Java), validates them against a schema history table, applies pending migrations in transaction-aware batches, and registers the result. Telemetry and license enforcement are woven into execution. The codebase is large but well-organised into modules: `flyway-core` for the engine, `flyway-commandline` for the CLI, `flyway-database-*` for per-database parsers and connections, `flyway-nc` for a dual native-connector path, and `flyway-reports` for output generation. External dependencies include JDBC drivers, AWS SDK (S3), and third-party helpers like SQLFluff (via Docker). Key entry points are the `Flyway` API class, the `Main` CLI class, and the `VerbExtension` implementations.
OVH CDS is an enterprise-grade continuous delivery and DevOps automation platform. The repository contains a set of Go services (API, CDN, hooks, VCS, repositories, hatcheries, worker, elasticsearch) managed via a common engine binary, supported by PostgreSQL, Redis, and OpenSearch/Elasticsearch, plus an Angular web UI, a cdsctl CLI, and gRPC-based action/integration plugins. In production it orchestrates pipelines and workflows, spawns workers on Kubernetes, Swarm, OpenStack, vSphere or local hosts, ingests VCS webhooks, stores job logs and artifacts through a pluggable CDN storage layer, and enforces fine-grained RBAC across projects, regions, workflows, and variable sets. Both legacy v1 workflows and newer as-code v2 workflows are implemented and actively maintained side-by-side.
PullPreview is a GitHub Action implemented in Go that provisions ephemeral preview environments for pull requests. It manages cloud instances (AWS Lightsail or Hetzner), installs Docker or Kubernetes (k3s), and deploys applications using Docker Compose or Helm. The action integrates deeply with GitHub PR workflows: it reacts to labels, synchronizes SSH keys from repository collaborators, updates PR comments with deployment status and preview URLs, and performs scheduled cleanup of dangling instances. The codebase is organized around a provider abstraction pattern, with concrete implementations for Lightsail and Hetzner that share common orchestration logic for instance lifecycle, SSH access, and deployment. It is a self-contained CLI binary that runs as a composite action step, bundling all dependencies into a single executable.
This repository provides a single, well-tested Bash script (`ecs-deploy`) that automates blue/green deployments on AWS ECS. It fetches the current task definition, creates a new revision with an updated Docker image tag, registers it, updates the ECS service (or directly runs a task), and waits for the deployment to complete. The script handles various edge cases: image name parsing (including domain, port, repository, tag, digest, and ECR-style URLs), role assumption, rollback, and cleaning up old task definition revisions. It is packaging-ready as a Docker image and includes a GitHub Action for CI/CD pipelines. The codebase is in maintenance-only mode but remains fully functional and widely used. Its primary reuse pattern is the standalone shell script itself—downloadable and integrable into any deployment pipeline. A hidden gem is the `parseImageName` function, which implements robust Docker image name parsing via regex and environment variable overrides, and the test suite (`test.bats`) demonstrates a clean pattern for unit-testing Bash functions while mocking external dependencies.