A lightweight blog platform where users can create, view, and delete posts. This project is built with a full Helm chart structure for Kubernetes deployment, using Docker containers and best practices for configuration, secret management, and persistence.
| Layer | Technology |
|---|---|
| Frontend | HTML, CSS, JavaScript (Vanilla JS) |
| Backend | Node.js, Express |
| Database | PostgreSQL (inside Kubernetes) |
| Containerization | Docker |
| Orchestration | Kubernetes |
| Config Management | ConfigMap, Secret, PVC, Namespace |
| Deployment Management | 🆕 Helm (Templating, release lifecycle, rollback, upgrade, etc.) |
helm install mini-blog-helm . -n blog-project-helm --create-namespace
helm upgrade mini-blog-helm . -n blog-project-helm
helm list -n blog-project-helm
helm status mini-blog-helm -n blog-project-helm
helm uninstall mini-blog-helm -n blog-project-helm
# Backend
kubectl port-forward svc/backend 3000:3000 -n blog-project-helm
# Frontend
kubectl port-forward svc/frontend 8080:80 -n blog-project-helm
Access backend at: http://localhost:3000 Access frontend at: http://localhost:8080
Supports both /api/posts and /posts endpoints.
Visit in browser or via curl:
curl http://localhost:3000/
Expected JSON response:
{
"message": "Mini Blog Backend API",
"endpoints": [
"GET /health",
"GET /posts or /api/posts",
"POST /posts or /api/posts",
"DELETE /posts/:id or /api/posts/:id"
]
}
Frontend sends requests to http://localhost:3000 and is reachable at http://localhost:8080
All Kubernetes resources are deployed under the namespace: blog-project-helm
helm uninstall mini-blog-helm -n blog-project-helm
# If you want full removal including namespace:
kubectl delete namespace blog-project-helm
Running and READYHappy Helming! 🚀