Skip to content

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

1 watching

Forks

Latest commit

 

History

18 Commits

Folders and files

Repository files navigation

Go Wiki – DevOpsified 🐳🚀

A simple Wiki web application written in Go, containerized and deployed using modern DevOps tooling including Docker, Kubernetes, GitHub Actions, Helm, and Argo CD.


🔥 What I Implemented

✅ Go backend using net/http, HTML templates & local file storage
✅ Multi-stage Dockerfile with non-root user
✅ Minikube setup with real K8s cluster
✅ Kubernetes Deployment, Service, Ingress + NGINX Ingress Controller
✅ Domain mapping via hosts file (go-wiki.local) + minikube tunnel
✅ File permission fix using securityContext
✅ Helm Chart to package the app
✅ CI with GitHub Actions, CD via Argo CD (GitOps)


🧰 Tech Stack


🏗️ Architecture Overview

GitHub → GitHub Actions → Docker Build → Push to Repo
        ↓
       Argo CD ← GitOps Pull
        ↓
  Minikube or EC2 Cluster (K8s Deployment, Service, Ingress)
        ↓
NGINX Ingress Controller → go-wiki.local

📦 Setup Instructions

Prerequisites

  • Go 1.18+
  • Docker
  • Minikube + kubectl
  • Helm 3.x
  • Argo CD installed on Minikube

🚀 How to Run

1. Clone the Repository

git clone https://github.com/krrishmahar/go-wiki-devopsified.git
cd go-wiki-devopsified

2. Build & Run Locally (Dev Mode)

go run main.go

3. Build Docker Image

docker build -t gowiki .

4. Set Up Minikube

minikube start
minikube addons enable ingress
minikube tunnel

5. Apply Kubernetes Manifests

kubectl apply -f k8s/deployment.yaml
kubectl apply -f k8s/service.yaml
kubectl apply -f k8s/ingress.yaml

6. (Optional) Install via Helm

helm install gowiki ./chart

7. Configure Hosts File

Add this to /etc/hosts or C:\Windows\System32\drivers\etc\hosts:

127.0.0.1 go-wiki.local

Now visit http://go-wiki.local


🤖 CI/CD Overview

  • GitHub Actions handles:
    • Docker image build
    • Helm linting
    • Pushing manifests or Helm package
  • Argo CD pulls from Git repo and deploys to Minikube automatically

📷 Screenshot

App Screenshot

App Scrrenshot 2


🤝 Contributing

If you learned something from this, consider leaving a ⭐!
Contributions are welcome — feel free to fork and PR!

#HappyShipping 🚢

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages