Blog
Mert Özen's blog posts on software development, backend, frontend, and DevOps.
Managing Jenkins as Code: Configuration as Code (JCasC), plugins.txt and Backups
You manage Jenkins as code with a Dockerfile, a pinned plugins.txt and JCasC YAML in Git, and back up only the state in JENKINS_HOME. The YAML's structure, the export's encrypted-secret trap, a manual change undone on reload, --available-updates, no bundled plugins in the war since 2.580.1, a 1.7 MB backup, a real restore test and the LTS upgrade flow.
Installing Jenkins: LTS with Docker, Java 21, the First Admin and Choosing Plugins
You install Jenkins in Docker with a version-pinned LTS image, a named JENKINS_HOME volume and Java 21, and you skip the setup wizard with plugins.txt and JCasC. The anonymous volume trap, initialAdminPassword, the Docker-in-Docker TLS certificate error, anonymous access, zero executors on the controller, the CSRF crumb, agent-to-controller security and installing from the Linux package.