Buy Me a Coffee
StreamVault self-hosted media library with downloaded and uploaded videos

Introducing StreamVault: A Self-Hosted Media Archival Server

Introducing StreamVault: A Self-Hosted Media Archival Server Saving online media often starts with a command-line tool and ends with a folder full of files that have lost their context. The video may be preserved, but its original title, source URL, uploader, thumbnail, subtitles, format, and download history are scattered or missing. Running the same workflow on a home server or NAS adds more pieces: background jobs, progress tracking, retries, storage configuration, user access, and a way to find the file again later. ...

Illustration of a Docker registry with certificate error

[Docker] Why Your Self-Hosted Docker Registry Fails with `x509: certificate signed by unknown authority`

Setting up your own Docker registry using tools like Harbor can be incredibly satisfying. However, one common problem you may encounter is: x509: certificate signed by unknown authority If you’re tempted to blame a server misconfiguration or your reverse proxy, hold that thought. The issue usually stems from the client not recognizing the Certificate Authority (CA) that signed the server’s certificate. Let’s dive into why this happens and how to set things right. ...

Local HTTPS with Nginx in Minutes: A Practical Dev & Debug Setup (No Domain, No Public IP)

Setting up a local HTTPS environment is essential for developers wanting to test web applications under conditions that closely resemble production settings. This guide will help you establish a local Nginx reverse proxy using Docker Compose without the need for a domain or public IP, focusing specifically on Portainer as a sample application. Why You Want a Local Nginx Setup for Debugging When developing or debugging services like web dashboards or APIs, having an environment that closely mimics production is critical. A local Nginx reverse proxy enables you to: ...

Extracting Data from a Docker Volume Using a Third Container

[Docker] How to Safely Extract Data from a Docker Volume Using a Third Container

Introduction If you work with Docker long enough, you will eventually face this situation: You want to migrate data to a new server You want to back up a Docker volume before a risky change You are decommissioning a container but need to keep its data You need to inspect or recover files from a broken container You want to move data out of Docker into the host filesystem Docker volumes are intentionally abstracted away from the host. This is good for portability and safety, but it also means: ...

Traefik Docker Swarm Logout Issue Illustration

Refreshing Web Page Logs Out the User When Using Traefik in Docker Swarm

1. Introduction If you use Traefik as the reverse proxy in a Docker Swarm cluster, and your application is server-side rendered (SSR), you may encounter the following issue: You can log in successfully But when you refresh the page or navigate to another page, you are suddenly logged out The behavior feels random: sometimes it works, sometimes it doesn’t This issue usually does not appear: when running the app locally when using only one container before scaling the service in Docker Swarm Once you add multiple replicas, the problem starts to show up. This post will explore the reasons behind this behavior and how to effectively address it. ...

Setting up a Local Kubernetes Cluster for Home Lab

[Kubernetes/K3s] Setting Up a Local Multi-Node Kubernetes Cluster on Different Operating Systems

Setting up a Kubernetes cluster can seem like a mountain to climb, especially when you’re just starting out. However, having a local Kubernetes cluster is a fantastic way to get hands-on experience without worrying about cloud expenses. If you have a spare laptop sitting at home, this guide will help you turn it into a useful part of your Kubernetes home lab using k3s. Whether you’re using Linux, macOS, or Windows, this guide has got your back. ...

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’ll 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. ...

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’s 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’s chat models, Google’s Gemini Chat Model, or Ollama, it extends its capabilities significantly. ...

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