✦ ILKER TAYSI’S DEVOPS PLAYGROUND

Small servers.
Big possibilities.

A little corner of the internet, built at home. A place to sharpen DevOps skills, turn curious ideas into small apps and games, and share them just for the fun of it.

Home-hosted. Cloud-connected. Always learning.
A cozy illustrated homelab room with warm desk lamps, plants, three small servers, and an indigo evening sky.
✦ Good systems. Brighter days. BUILD / LEARN / REPEAT
03nodes, one home cluster
64 GiBcombined node memory
03environments: preview, dev, prod
∞ideas worth experimenting with

01 / THE HOMELAB

A real platform.
A personal playground.

Three Ubuntu nodes run a kubeadm Kubernetes cluster. Development, temporary previews, and public production live side by side, with separate namespaces, guarded access, and a release path that keeps the tested image intact.

◈CONTROL PLANE

k8s-master-01

The coordinator: Kubernetes API, scheduling, cluster state, and encrypted etcd snapshots.

▤WORKER 01

k8s-node-01

A home for containers, application replicas, monitoring, and persistent workloads.

▤WORKER 02

k8s-node-02

A second worker spreads production replicas and leaves room to keep experimenting.

A shared home cluster keeps things approachable. Namespace boundaries, quotas, restricted pods, and backups make the experiments deliberate.

02 / THE TOOLBOX

A thoughtful stack,
from bare metal to browser.

Tools with a purpose: reproducible infrastructure, predictable releases, and enough visibility to understand what’s happening.

⌘

Foundation & infrastructure

The hosts and the infrastructure that make everything repeatable.

UbuntuAnsibleTerraformkubeadm
⬡

Orchestration & networking

Containers, cluster networking, and an entry point for every app.

KubernetescontainerdCalicoMetalLBEnvoy Gateway
⇄

Code & continuous delivery

Build and test once. Let Git describe what should be running.

GitLab CIGitLab RegistryArgo CDDockerNode.jsNext.js
◇

Edge & access

A public front door for projects, with protected doors for development.

Cloudflare DNSCloudflare TunnelCloudflare Accesscert-managerSOPSage
⌁

Observability & upkeep

Metrics inside the lab. Uptime checks outside the home network.

PrometheusGrafanaAlertmanagerUptimeRobotRenovate
▱

Data & recovery

PostgreSQL, persistent storage, and tested offsite recovery paths.

PostgreSQLCloudNativePGBarmanCloudflare R2local-path storageetcd snapshots

03 / UNDER THE HOOD

One home. A few well-connected layers.

Follow a request, a release, or a backup through the platform.

Taysi home Kubernetes architecture Browser requests pass through Cloudflare Tunnel into Envoy and application namespaces. GitLab CI builds images for the registry and updates GitOps; Argo deploys them. CloudNativePG and encrypted etcd snapshots back up to Cloudflare R2. HOME KUBERNETES CLUSTER 1 control plane · 2 workers tunnel sync Your browser public or protected Cloudflare DNS · TLS · Access 2 Tunnel connectors Envoy Gateway HTTPRoutes · MetalLB Production public apps · two replicas Development dev-* · Cloudflare Access MR previews pv-* · temporary & protected GitLab CI build · smoke test Registry + GitOps immutable image digest dev / main declarations Argo CD reconcile desired state Cloudflare R2 offsite backup storage Backups WAL · age-encrypted etcd Stateful workloads CloudNativePG · local storage

Cloudflare is the front door. Public apps reach Envoy through an outbound tunnel; development, previews, and admin tools require Access.

Observability runs alongside the workloads: Prometheus collects metrics, Grafana visualizes them, and UptimeRobot watches public apps from outside the lab.

04 / FROM IDEA TO INTERNET

A small change.
A complete delivery cycle.

Choose a step to see how a project moves from an idea to a public release. Production gets the image that development already tested.

THE STARTING POINT

An idea becomes an application.

A scaffold creates a static site, API, or Next.js app with a Dockerfile, a health endpoint, and a place in the application registry. Prepare the namespace, then make it your own.

Ubuntu / WSL
git switch -c pv/myapp/first-release origin/develop
python3 scripts/scaffold.py myapp static
python3 ../infra/scripts/prepare_namespace.py dev myapp

One branch. One app. Plenty of room to experiment.

05 / OUT IN THE WORLD

Little projects,
made to be shared.

Apps, experiments, and eventually a few games. This shelf discovers public production deployments automatically—there’s always room for the next idea.

Finding the projects on the shelf…