Googly Login is a fun registration system built with Go, PostgreSQL, Docker, and Kubernetes. It features a sarcastic front-end, secure backend logic, Helm-based deployment, Calico network policies, and CI/CD automation using GitHub Actions.
| Layer | Tool / Technology |
|---|---|
| Frontend | HTML, CSS, JavaScript |
| Backend | Go |
| Database | PostgreSQL |
| Container | Docker |
| Deployment | Kubernetes + Helm |
| CI/CD | GitHub Actions |
| Security | Calico (NetworkPolicy) |
| Secrets Mgmt | K8s Secret + .env |
Googly-Login/
βββ database/ # DB connection logic
β βββ database.go
βββ googly-data/ # (generated data folder)
βββ googly-login/ # (helm module folder)
βββ handlers/ # Auth and routing handlers
β βββ auth.go
β βββ routes.go
βββ HelmCharts/ # Helm chart for K8s deployment
β βββ Chart.yaml
β βββ values.yaml
β βββ templates/
β βββ googly-deployment.yaml
β βββ googly-service.yaml
β βββ postgres-deployment.yaml
β βββ postgres-pv.yaml
β βββ postgres-pvc.yaml
β βββ postgres-secret.yaml # secret file (ignored from Git)
β βββ postgres-service.yaml
βββ models/ # Go struct models
β βββ user.go
βββ static/ # Static frontend files (HTML/CSS/JS)
β βββ index.html
β βββ styles.css
β βββ script.js
βββ utils/ # Utility-password hash logic
β βββ password.go
βββ .github/ # GitHub Actions workflows
β βββ workflows/
β βββ cicd.yaml
βββ .env # Local env file (ignored from Git)
βββ .gitignore # Ignore sensitive/unneeded files
βββ calico-network-policies.yaml # Network policy rules using Calico
βββ docker-compose.yaml # Local dev stack with Go + Postgres
βββ Dockerfile # Builds the Go backend image
βββ go.mod # Go module definitions
βββ main.go # Main application entrypoint
βββ main_test.go # Unit tests for main
βββ README.md
π Note:
.envand secrets are intentionally excluded from the repo for security reasons.



GitHub Actions runs on push or PR:
Example: .github/workflows/cicd.yaml
# Clone the repo
git clone https://github.com/nsahil992/googly-login
cd googly-login
# Copy .env.example and set values (never commit .env!)
cp .env.example .env
# Start app
docker compose up --build
# Apply Postgres manifests first
kubectl apply -f postgres-pvc.yaml -f postgres-secret.yaml -f postgres-service.yaml -f postgres-deployment.yaml -f postgres-pv.yaml -n googly-login
# Apply Googly manifests
kubectl apply -f googly-deployment.yaml -f googly-service.yaml -n googly-login
# Install all components via Helm chart
helm install googly-login ./helm/ -n googly-login
kubectl apply -f calico-network-policy.yaml -n googly-login
β .env is used for local development only and is never committed to GitHub β Kubernetes Secrets are defined in postgres-secret.yaml (base64-encoded) π You must create secrets locally
π Click the image above to watch a 5-minute walkthrough of Googly Login in action.
Made with π» and β by Sahil
β Donβt forget to star this repo if it helped you learn something new!