All projects

DevOps / Infrastructure

Personal Project

K3s Application Platform

Self-managed infrastructure used to implement and explore production-style deployment patterns for containerized Next.js applications, from local builds through Kubernetes workloads and private reverse-proxy access.

DockerKubernetesK3sPostgreSQLCaddyUbuntu
Abstract container deployment flow through K3s, a Kubernetes service, private networking, and Caddy

Context

The Problem

Containerized Next.js workloads needed a repeatable path from development builds to a self-managed Kubernetes environment, including database connectivity, private ingress, deployment automation, and operational troubleshooting.

System flow

Architecture

Developer / Git
Docker Build
K3s Deployment
Kubernetes Service
Tailscale Network
Caddy
Application

Implementation

Engineering

  • Dockerized Next.js applications and used Docker Compose for the development workflow.
  • Configured K3s workloads with Kubernetes Deployments and Services, including local container image deployment and rolling deployments.
  • Built Bash-based deployment automation and managed application environment variables.
  • Connected Kubernetes pods to PostgreSQL and exposed applications through Caddy over a Headscale/Tailscale private network.
  • Debugged containers and pod lifecycles while operating the underlying Ubuntu host.

What required care

Challenges

  • Diagnosing Kubernetes DiskPressure and expanding Linux storage with LVM.
  • Troubleshooting pod lifecycle and local container image behavior.
  • Maintaining PostgreSQL connectivity and environment configuration from inside Kubernetes pods.

Technology

Stack

Status: Personal Project

DockerKubernetesK3sPostgreSQLCaddyUbuntu