← Back to projects

SentinelForge

Jenkins · SonarQube · Snyk · Trivy · Docker · Docker Hub · AWS EC2 · Flask · Python · pytest · GitHub Actions webhook · gitleaks

SentinelForge is a CI/CD pipeline I built to actually learn how security fits into DevOps, not just read about it. It wraps a small Flask app in a full pipeline that tests the code, scans it for bugs and secrets, checks every dependency for known vulnerabilities, builds a Docker image, scans that image too, and only then pushes it and deploys it live. If anything looks unsafe at any step, the pipeline stops right there.

The stack is Jenkins, SonarQube, Snyk, and Trivy, all wired together and running on AWS EC2. I didn't just set these tools up and hope they worked. I proved it. For each security gate, I broke something on purpose, watched the pipeline correctly block it, then fixed the problem and confirmed it recovered. That fail-then-pass proof is documented with real screenshots for every single gate.

Most of the real work here wasn't writing pipeline steps. It was debugging real infrastructure problems: giving Jenkins access to Docker, losing installed tools every time a container got rebuilt (which pushed me to build a custom Jenkins image with everything baked in), tracking down credential mismatches, and understanding why SonarQube's quality gate wasn't catching what I expected it to.

Highlights

  • Every security gate proven to actually block bad code, not just report on it
  • Custom Jenkins Docker image built to solve a real tool-persistence bug
  • Generates a Software Bill of Materials (SBOM) and a combined security report on every run
  • Honest documentation of real limitations, including exactly why one gate is currently relaxed and what that means

Proof

SentinelForge: SonarQube gate blocks the Jenkins build

SonarQube gate blocks the Jenkins build

1 / 14

Demo