DevOps / Infrastructure
Personal ProjectK3s 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
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