Back to projects
PythonDockernginxGitHub WebhooksCloudflareRaspberry Pisystemd
CTSDeploy is a lightweight CI/CD system built to run on a Raspberry Pi. When a push is made to a project's GitHub repository, GitHub sends a webhook to hooks.benkruseski.com. CTSDeploy receives it, reads the project's deploy.yaml config, runs git pull followed by docker compose up --build, and writes or updates the nginx config to serve the project at <project_name>.benkruseski.com.
A wildcard A record on Cloudflare DNS (*.benkruseski.com) routes all subdomains to the Pi's static IP. Certbot handles SSL certificate provisioning for each subdomain. A bootstrap script makes onboarding new projects as simple as running a single command.
Key Highlights
- ▸GitHub webhook → git pull → docker compose up → live subdomain
- ▸Cloudflare wildcard DNS (*.benkruseski.com) for automatic routing
- ▸certbot SSL provisioned per subdomain
- ▸Runs as a systemd service on a Raspberry Pi
- ▸bootstrap_project.sh for one-command project onboarding