A personal corner of the internet
Hi, I’m Alau. I build thingsthat keep running.
DevOps engineer. Software developer. Homelab tinkerer.
From .NET applications to the infrastructure behind them, I enjoy turning moving parts into reliable systems.
Built by me. Hosted at home.
THE HOME LAB NODE / 01
Nginx web server
Docker containers
Small server. Plenty of possibilities.
MY TOOLBOX .NET / C# Azure Docker GitHub Actions Terraform Cloudflare ArgoCD Linux
01 / Sandbox
A place to run things. Infrastructure, experiments and useful side projects.
Infrastructure / Azure / v4
Azure platform sandbox
Build the expensive parts for a session. Destroy them when the work is done.
A small Azure learning environment for Kubernetes experiments. Terraform keeps one folder per resource group, while GitHub Actions creates the session resources and clears the largest costs every morning.
Explore the infrastructure source ↗
Planning estimate $20–35 USD, before tax
Session target ~10% of the month active
Terraform states One per folder in Azure Blob Storage
01 / Architecture
One folder. One resource group.
State Bootstrap State resource group Blob Storage backend Separate state per module Created once
Always available Foundation Network + subnets Storage + Key Vault Dashboard + ACR Low idle cost
Session resources Compute + database One AKS D2s v3 node Private PostgreSQL AKS-managed node group Created and destroyed on demand
Each Terraform module owns one Azure resource group. AKS creates its node resource group and manages its contents.
Private database PostgreSQL uses a delegated subnet and private DNS inside the virtual network. AKS has its own subnet and managed node group.
Simple state Every module writes an isolated state blob. GitHub Actions supplies the shared Azure name and region as repository variables.
02 / Lifecycle
Start a session. Clear the cost.
01 / Push Deploy a module Each folder has its own workflow.
02 / Start Create database + AKS Bring up the expensive session resources.
03 / Use Run the experiment Connect to Kubernetes and test workloads.
04 / Destroy Remove expensive resources AKS first, PostgreSQL second.
The session workflow supports manual start or destroy. Scheduled cleanup runs at 08:00 UTC.
Workflow-driven GitHub Actions applies each resource-group module independently. The backend state lock protects concurrent changes.
Destroy, do not stop Destroying AKS removes its node VMSS, load balancer, public IP, disk and node resource-group contents. Destroying PostgreSQL ends its compute charge.
03 / At a glance
The important numbers.
Planning estimate $20–35 before tax if AKS and PostgreSQL are active around 10% of the month. Pricing is a planning estimate, not a bill or spending cap.
What it provides AKS, private PostgreSQL, Blob Storage, Key Vault, Azure Container Registry, managed identities and focused GitHub Actions automation.
The estimate is a planning range, not a spending cap. Azure budget alerts notify but do not stop resources.
04 / Full flow
From change to session.
flowchart LR
Dev["Developer push"] --> GH["GitHub Actions"]
GH --> State["Azure Blob state"]
GH --> Network["Network module"]
GH --> Session["Database + AKS"]
Session --> AKS["AKS sandbox"]
Clock["08:00 UTC"] --> Destroy["Destroy expensive resources"]
Destroy --> Session
Each change is applied through a focused workflow; scheduled cleanup removes the costly session resources.
Other projects
alau.work
HELLO, WORLD. Code. Ship.Repeat.
✳ FROM SOURCE TO SERVER
WEB / PLATFORM 01
This little corner of the web A lightweight personal website built with HTML, CSS, and JavaScript. Served by Nginx and deployed to my home server through GitHub Actions.
Explore the source ↗
A SOUNDTRACK FOR THE SIDE PROJECTS
MUSIC / PERSONAL 02
A change of pace A collection of music I keep coming back to. Pick something from the collection, or let a random selection take the lead.
Find your next track ↗
02 / Behind the scenes
Less cloud.More living room. This site lives on my own Ubuntu server. The homelab is where I experiment, automate, and get hands-on with the systems that make software work.
Every update follows the same path: build an image, publish it, and deploy it at home.
See the deployment workflow ↗
THE PATH TO PRODUCTION ↘
01 Push & build GitHub Actions packages the static site.
CI 02 Package & publish Docker image stored in GitHub Container Registry.
GHCR 03 Bring it home Docker Compose runs Nginx on Ubuntu.
HOST 04 Hello, internet Cloudflare Tunnel connects you to this site.
EDGE
03 / A bit about me
Curious by default. An engineer by practice. I’m Alau Bolatov, a DevOps engineer and software developer working with .NET, Azure, and infrastructure automation. I like understanding how things fit together, from the code to the container to the machine it runs on.
When the terminal closes, the music starts ↗
Off the clock / On repeat
A soundtrack for the side projects.
Some familiar favorites. A few new directions. Pick a video or see where shuffle takes you.
Browse the collection
Surprise me ↗
Pick your next listen
Show more options
Your collection / To go
A link. A music file.
Paste a YouTube video link to save its audio as an MP3 on the home server. Download it to listen in your favorite music player.
Saved audio Load saved files
Enter your access key to load files saved on your server.