Home avatar

Lou Stack Base

Lou's knowledge base for software engineering, DevOps, and topics I'm exploring.

Building a Minimal HTTP Server in Go: Project Structure and Chi Router

DevOps Learning Notes

Build a minimal Go HTTP server from scratch that follows North American industry standards, covering project structure and chi router usage

My background is as a .NET Engineer, so these notes use .NET analogies to help clarify Go’s design choices

If you also come from a .NET background, these comparisons should be helpful

Project Structure

Overall Layout

1
2
3
4
5
6
7
8
9
go-Api/
β”œβ”€β”€ cmd/
β”‚   └── server/
β”‚       └── main.go
β”œβ”€β”€ internal/
β”‚   └── handler/
β”‚       └── health.go
β”œβ”€β”€ go.mod
└── go.sum

The cmd/ Directory

Go requires every executable program to have a package main and a main() function. cmd/ is a Go community convention for organizing the entry points of binaries this repo will produce

Ubuntu-24.04 Minimal Server on KVM/Libvirt Default NAT: Network Troubleshooting and Docker Deployment Full Record

This post is the complete record of placing Ubuntu 24.04 Minimal Server into a KVM/libvirt default NAT network β€” going from “apt update completely fails” to “Docker Engine running normally” β€” a deployment walkthrough you can follow step by step.

The focus is not just providing a set of commands, but documenting every checkpoint clearly, to avoid getting stuck at the same place when rebuilding the environment later.

Setting Up the Virtualization Server (Arch-Derived)

First, install virtualization and networking packages on the Host.

Collecting Container Output on EC2 With Cloud Logging Pipelines

This post is a full record of the issues and implementation details I hit while configuring container output collection on EC2 in a real environment.

Why central remote logging is worth it

Before this setup, checking container output always meant SSH into EC2 and running docker logs. Once environments grow (staging + prod), that becomes hard to manage. A centralized stream lets you inspect output in AWS Console or CLI directly, without SSH on every check.

First Look: Enterprise Edition on Docker

First Look: Enterprise Edition via Containers

Introduction

A recent project required a self-hosted Git platform, so I researched how to set it up. The client was on an older version, so I had to work with that initially β€” but the workflow is essentially the same across versions; only the UI differs.