db082d78cc12c9a2733c50dc99267759179a149a
- Interactive script to create repo and push code - Comprehensive MCP setup guide for future automation - Instructions for connecting MCP servers to Claude Code 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
Nicholas Haven - Resume Website
A professional, responsive resume website designed for deployment on Kubernetes.
Features
- Modern Design: Dark theme with cyan accents, animated backgrounds, and smooth transitions
- Responsive: Works on all device sizes
- Production-Ready: Includes Dockerfile and Helm chart
- Kubernetes-Native: Configured with health checks, PDB, HPA, and proper security contexts
- TLS Ready: Pre-configured for cert-manager integration
Quick Start
1. Build the Docker Image
# Build locally
docker build -t resume-site:latest .
# Or build and push to your registry
docker build -t your-registry.com/resume-site:latest .
docker push your-registry.com/resume-site:latest
2. Deploy with Helm
# Create namespace (optional)
kubectl create namespace resume
# Install with custom values
helm upgrade --install resume ./helm \
--namespace resume \
--set image.repository=your-registry.com/resume-site \
--set image.tag=latest \
--set ingress.hosts[0].host=resume.yourdomain.com \
--set ingress.hosts[0].paths[0].path=/ \
--set ingress.hosts[0].paths[0].pathType=Prefix \
--set ingress.tls[0].secretName=resume-tls \
--set ingress.tls[0].hosts[0]=resume.yourdomain.com
3. Using a Values File (Recommended)
Create a values-production.yaml:
image:
repository: your-registry.com/resume-site
tag: "1.0.0"
ingress:
enabled: true
className: nginx
annotations:
cert-manager.io/cluster-issuer: letsencrypt-prod
nginx.ingress.kubernetes.io/ssl-redirect: "true"
hosts:
- host: resume.yourdomain.com
paths:
- path: /
pathType: Prefix
tls:
- secretName: resume-tls
hosts:
- resume.yourdomain.com
resources:
limits:
cpu: 100m
memory: 64Mi
requests:
cpu: 10m
memory: 32Mi
Then deploy:
helm upgrade --install resume ./helm \
--namespace resume \
-f values-production.yaml
Configuration Options
| Parameter | Description | Default |
|---|---|---|
replicaCount |
Number of pods | 2 |
image.repository |
Docker image repository | resume-site |
image.tag |
Docker image tag | latest |
ingress.enabled |
Enable ingress | true |
ingress.className |
Ingress class name | nginx |
ingress.hosts |
Ingress hosts configuration | [] |
autoscaling.enabled |
Enable HPA | false |
podDisruptionBudget.enabled |
Enable PDB | true |
Local Development
# Run with Docker
docker build -t resume-site:dev .
docker run -p 8080:80 resume-site:dev
# Open http://localhost:8080
Directory Structure
.
├── index.html # Main resume page
├── Dockerfile # Multi-stage Docker build
├── README.md # This file
└── helm/
├── Chart.yaml # Helm chart metadata
├── values.yaml # Default values
└── templates/
├── _helpers.tpl
├── deployment.yaml
├── service.yaml
├── ingress.yaml
├── serviceaccount.yaml
├── pdb.yaml
└── hpa.yaml
Customization
Updating Content
Edit index.html directly. The file is self-contained with embedded CSS.
Changing Colors
CSS variables are defined at the top of the <style> block:
:root {
--accent-cyan: #06b6d4;
--accent-emerald: #10b981;
--accent-violet: #8b5cf6;
/* ... */
}
Adding New Sections
Follow the existing pattern using section elements with appropriate class names.
Health Checks
The nginx configuration includes a /health endpoint that returns 200 OK for Kubernetes probes.
Security
- Runs as non-root user (nginx:101)
- Drops all capabilities
- Configured with proper security contexts
- TLS termination at ingress level
Built with clean code and deployed on Kubernetes ☸️
Description
Languages
HTML
72.3%
Shell
22.5%
Smarty
3.4%
Dockerfile
1.8%