Skip to content

yashpal2104/todo-app-deployment

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

9 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

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

About

No description, website, or topics provided.

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors