mirror of
https://github.com/coollabsio/coolify.git
synced 2026-08-24 18:14:21 -05:00
Implement backend infrastructure and initial UI for managing GitHub Actions runners on user-owned servers, similar to Blacksmith.sh but self-hosted. **Backend Implementation:** - Database schema: github_runner_sources (pools), github_runner_servers (pivot), github_runners (instances) - Models: GitHubRunnerSource, GitHubRunner with relationships to Server - GitHub API helpers: JIT config generation, token management, webhook validation - Webhook handler: Processes workflow_job events, matches labels, provisions runners - Job queue: ProvisionGithubRunnerJob (server selection, Docker provisioning), CleanupGithubRunnerJob - Ephemeral runners using JIT configuration for enhanced security **Testing:** - Unit tests: Helper functions, webhook validation, model methods - Feature tests: Webhook flow, provisioning, server selection, relationships **UI Foundation:** - Runner Sources index page with source listing - Routes configured for index, create, and detail views - Integration into server management section **How it works:** 1. User creates a GitHub Runner Source (GitHub App + custom label) 2. User adds multiple servers to the runner pool 3. GitHub Actions jobs with matching runs-on label trigger webhook 4. Coolify provisions ephemeral Docker runner on available server 5. Job executes, container auto-removes on completion **Next steps:** - Complete UI components (create, detail, server management) - Add runner history and monitoring - User documentation 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>