
Connect Jenkins to GitHub: Deploy Keys, PAT and Webhooks
Wire Jenkins to a private GitHub repo the least-privilege way: per-repo deploy keys, a read-only fine-grained PAT, a push webhook — and the two credential mistakes that cost me a build each.
@dineshstack
Senior Full Stack Developer · Building SaaS products & teaching Laravel/React · 10+ years experience · Founder of Orion360 · Based in Dubai, UAE.

Wire Jenkins to a private GitHub repo the least-privilege way: per-repo deploy keys, a read-only fine-grained PAT, a push webhook — and the two credential mistakes that cost me a build each.

Put Jenkins on https://jenkins.yourdomain.com with nginx — and learn from the mistake where certbot --nginx edited the wrong vhost and briefly broke TLS on a production wildcard domain.

The 2026 guide to installing Jenkins on Ubuntu 24.04 — including the two traps behind "Package 'jenkins' has no installation candidate" and the setup-wizard choices that actually matter.

Set up Husky in a Laravel 12 + React repo so Laravel Pint formats every commit automatically and your JS tests gate every push — without ever making developers wait on the full PHP suite.

Husky, Jenkins and Ansible solve three different problems. Here's the layered CI/CD architecture I run for a production Laravel SaaS — and why you probably need two of the three, not one.


A senior engineer's guide to SSH key setup on Mac — with the reasoning behind every step, the gotchas most tutorials skip, and how to fully harden your server against password-based attacks.

The honest 6th part: the dead ends, wrong guesses, and walls the polished tutorials skip. A confidently wrong AI diagnosis, a "frozen" terminal that was fine, and a 403 where the data was perfect but the code disagreed — and why the AI's limits turned out to be its safety features.

A 502 that was a stopped process. A CORS error that was a permissions bug. An OAuth failure that was a config typo. A 403 that was a one-word mismatch. How Claude AI traced five hidden layers of a broken login — where not one symptom pointed at its own cause.

Claude AI as code reviewer and server-prep engineer: building a capistrano-style deployment pipeline with timestamped releases, atomic symlink flips, and one-command rollback. Plus the subtle mistakes an AI reviewer caught before they shipped — missing backups, wrong PHP, supply-chain risks.
A queue is a contract between two processes that never speak. Ours disagreed about which backend they were using, and neither one had any way to notice.

How Claude AI helped fix world-readable .env files across 20 projects and lock SSH to keys only — including the cloud-init drop-in file that silently overrides your hardening and keeps password login open.