Skip to content

Latest commit

 

History

History
116 lines (79 loc) · 2.99 KB

File metadata and controls

116 lines (79 loc) · 2.99 KB

Todo App Deployment

A full-stack Todo application with a modern Svelte frontend, Go backend, containerization, and Kubernetes-native deployment. This repo demonstrates real-world DevOps with GitHub Actions CI and ArgoCD GitOps CD—all ready for local and cloud-native workflows.


🚀 Features

  • Frontend: Svelte for a responsive UI (go-todo-frontend/)
  • Backend: Go REST API (backend/), containerized for K8s
  • Manifests: YAML & Jinja templates for flexible Kubernetes deployment
  • CI/CD: Automated with GitHub Actions (CI) and ArgoCD (CD)
  • No Vendor Lock-In: Deploy on any Kubernetes cluster (local/cloud)
  • DevOps Best Practices: Full pipeline and manifest templating

Repository Structure

go-todo-frontend/     # Svelte frontend code
backend/              # Go backend API
manifests/            # K8s manifests & Jinja templates
.github/workflows/    # GitHub Actions CI/CD pipelines
Dockerfile            # Container build files
README.md             # Project overview 

🏁 Getting Started

1. Clone the Repo

git clone https://github.com/yashpal2104/todo-app-deployment.git
cd todo-app-deployment

2. Frontend: Svelte

cd go-todo-frontend
npm install
npm run dev

Visit http://localhost:5173 (or as printed in terminal) to view the app.


3. Backend: Go API

cd backend
go build -o app
./app

4. Kubernetes Deployment

  1. Ensure you have a Kubernetes cluster running (local: Minikube, Kind, K3d, etc.)
  2. Render any Jinja templates if applicable:
    jinja2 manifests/todo-deployment.yaml.j2 > manifests/todo-deployment.yaml
  3. Apply manifests:
    kubectl apply -f manifests/todo-deployment.yaml

5. CI/CD

  • CI: All pushes trigger GitHub Actions for lint, build, and test
  • CD: ArgoCD (if set up) automatically syncs manifests from this repo to your K8s cluster

💡 Notes

  • No cloud service is required; works on local Kubernetes.
  • Manifests are ready for cloud if you want to deploy later.
  • You can tweak the manifests and templates for your needs.

📸 Screenshots

App

todo-app

Github Actions CI

github com_yashpal2104_todo-app-deployment_actions

ArgoCD Deployment

argocd


📝 License

This project is licensed under the MIT License.


🤝 Connect

If you like this project, connect with me on LinkedIn.

Made with Svelte Go Backend