DevOps

For me, DevOps is not a separate role but a collection of practices that make software delivery more reliable and enjoyable. In this category, I share practical observations about automation, CI/CD, deployments, infrastructure, and the tools I use while building personal and commercial projects.

jira-gitlab-merge-request-status-automation-cover.png
CI/CD

Jira + GitLab Merge Requests: How I Automated Issue Statuses Without Breaking the Workflow

In ICanUp, I wanted Jira issues to move automatically when a GitLab Merge Request was created and merged, but I did not want automation to own the entire issue lifecycle. I explain why I kept only two automatic transitions, how target branch and current status guards protect the workflow, and why repeated webhook events must remain idempotent.

11
docker-build-cache-almost-30-gb-cover.png
Docker

How Big Can Docker Build Cache Get? Mine Reached Almost 30 GB

While starting AVN Documentation AI locally, I almost ran out of disk space. Docker Build Cache had grown to about 29 GB, images occupied more than 31 GB, and the filesystem reached 99-100% usage. I show how I found the cause, why a conservative prune barely helped, and how I safely reclaimed tens of gigabytes.

21
vite-environment-variables-laravel-gitlab-ci-deployments.png
CI/CD

Vite Environment Variables in Laravel Deployments: Why Server .env Was Not Enough

All VITE_REVERB_* values were present in the server .env, yet the production bundle was still built without them. I traced the problem to the GitLab CI build stage, moved the build-time variables into the correct environment scope, and added fail-fast checks before deployment.

59
sectigo-ssl-nginx-dcv-renewal-debugging.png
Nginx

How I Renewed a Sectigo SSL Certificate in Nginx and Debugged DCV

While renewing a Sectigo SSL certificate, DCV stayed in progress even though the verification file returned 200 OK. I traced it to a stale token and different HTTP and HTTPS validation paths in Nginx, then completed the renewal safely.

59
composer-docker-gitlab-ssh-agent-forwarding.png
Laradock

Composer Cannot Access GitLab from Docker: Fix with SSH Agent

SSH to GitLab works on the host, but Composer inside Docker asks for a username and password or fails with Permission denied (publickey). I show how I diagnosed the issue in Laradock and forwarded the host SSH Agent into the container.

71