Buy Me a Coffee

Hey馃憢 I’m Oscar

Welcome to my technical blog!
Here, you’ll find useful insights and knowledge to help you stay ahead in the industry.
Thanks for stopping by, and I hope you enjoy what you read.
Find about me more 猬囷笍

Configure Drone CI server and runner for Github repository

Setup DroneCI Server and Runner for Github Repository (Compose File Takeaway)

Introduction Self-hosting a CI/CD system is still a common requirement when you want more control over your build environment, runners, and infrastructure. In this post, I鈥檒l walk through how I set up DroneCI to work with GitHub repositories, using Docker Compose. Rather than covering every click in detail, the focus is on the key steps that actually matter during setup and the small but critical details that are easy to miss. ...

Docker File Bind Mount Not Updating

Docker Bind Mount Not Updating? Why File Edits Fail but Directories Work

When you bind mount a file into a Docker container, you expect that updating the file on the host will immediately update the file inside the container. Yet many developers observe the opposite: the file content inside the container stays frozen at the old version. Interestingly, bind mounting a directory does not have this problem. The directory version updates correctly. This post explains why file bind mounts behave differently, why the issue occurs, and how Linux inode behavior is the root cause. ...

Traefik routing issue between frontend and backend containers

[Docker/Traefik] Resolving Intermittent Frontend Loading and 504 Errors Behind a Traefik Reverse Proxy (Update 2025-11)

We encountered a frustrating issue in our Dockerized app environment where the frontend service was intermittently failing to load, and backend API calls were stuck or returning 504 Gateway Timeout errors. Our infrastructure consists of: Frontend container (React app) Backend API container (Go server, accessible at /api/...) Database container (PostgreSQL) Traefik reverse proxy managing HTTPS termination and routing Despite having valid TLS certs and seemingly working routes, users experienced broken pages, incomplete frontend rendering, and stuck fetch requests to /api endpoints. ...

OneClickTLS online certificate generator

Introducing OneClickTLS: Generate Self-Signed TLS and mTLS Certificates Instantly

Introducing OneClickTLS: Generate Self Signed TLS and mTLS Certificates Instantly If you have worked with Kubernetes, Docker, microservices, or local HTTPS development, you already know how frustrating it is to generate self signed TLS certificates. Searching for OpenSSL commands, adjusting SAN values, fixing errors, and repeating the entire process again and again. After dealing with this pain for years, I finally built a tool that removes all the friction: https://oneclicktls.com ...

Running n8n in Docker for AI Workflow

[n8n/Ollama] How to Run n8n in Docker for AI Workflow with Local Ollama Service (Windows Example)

Let鈥檚 get started with setting up an AI workflow using n8n in Docker on a Windows machine, featuring local service integration with Ollama. Whether you are familiar with n8n or starting from scratch, this guide walks you through the steps needed. Understanding the Basics n8n is a versatile, self-hosted automation tool designed to connect and automate the use of over 400 services, now including AI components. When integrated with various large language models (LLMs) such as OpenAI鈥檚 chat models, Google鈥檚 Gemini Chat Model, or Ollama, it extends its capabilities significantly. ...

Automated Docker Image Build and Push

[Docker] Simple Script to Build and Push 'latest' Docker Images with Small Changes for Pull Image Debugging

In production environments, many systems still use the latest tag for Docker images. While convenient, this makes it difficult to verify whether your program is actually pulling the updated image or just using a cached one. To properly test the pull logic, you need a workflow that repeatedly builds and pushes images tagged as latest, each with a small change so the digest is unique every time. This post shows how to do that with a lightweight alpine-based image and a simple shell script. The image size is very small and it鈥檚 very fast to build. ...

Debugging Go Programs in VSCode with Kubernetes

[Kubernetes] How to Debug Programs That Use the Kubernetes Client SDK in VSCode (Golang Example)

When you first work on a Go project that uses the Kubernetes client SDK, you might feel lost about how to debug it on your local environment. Don鈥檛 panic. It鈥檚 actually very simple once you understand what鈥檚 happening behind the scenes. I鈥檒l walk you through how to make it work using VSCode as an example. The Common Confusion When your program is designed to run inside a Kubernetes cluster, it usually connects to the cluster using rest.InClusterConfig(). This configuration relies on the ServiceAccount token mounted at /var/run/secrets/kubernetes.io/serviceaccount/token. When you run the same program locally, that path doesn鈥檛 exist, and the SDK will fail to initialize with an error like: ...

Docker garbage characters in API responses

[Docker] `docker exec` API Responses returns Garbage Characters

When using the Docker Engine API to execute commands inside a container, some users report seeing garbage characters or random symbols appearing in the API response. These characters do not appear when the same command is executed interactively in the terminal, and they often show up inconsistently. This behavior can be confusing, but it鈥檚 actually expected under certain conditions. 1. The Issue A developer may use the Docker Exec API to run commands in containers, such as: ...

Save Text to File in n8n

[n8n] How to Save Text into a Downloadable File

Managing workflows in n8n often involves handling large chunks of text or generated content, which might exceed the limits of platforms like Slack or Discord. An effective solution is to convert this text into a file, upload it to an S3 storage bucket, and share the access URL. This guide walks you through creating a downloadable file from text using n8n and setting it up for automatic handling. 1. Save the Text into a File Start by utilizing the Code function node. Suppose your previous node outputs the following JSON: ...

Observer pattern illustration depicting a central subject with multiple observers connected

[Golang] Exploring the Observer Design Pattern with Code Example

Introduction Today, we will dive into understanding the Observer Design Pattern with a Golang code example. This pattern is a cornerstone of software design, promoting flexibility and reuse in code by managing dependencies effectively. What Is the Observer Pattern? The Observer pattern defines a one-to-many dependency between objects, ensuring that when one object (the Subject) changes its state, all its dependents (Observers) are automatically notified. This pattern is pivotal in creating an efficient and decoupled architecture. ...

DigitalOcean Referral Badge
Sign up to get $200, 60-day account credit !