{"id":18679837,"url":"https://github.com/bsctl/go-web-app","last_synced_at":"2025-11-07T14:30:20.210Z","repository":{"id":43299260,"uuid":"235981512","full_name":"bsctl/go-web-app","owner":"bsctl","description":"A simple web app written in GO. For demo only.","archived":false,"fork":false,"pushed_at":"2023-07-19T21:55:51.000Z","size":36,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2024-12-27T21:44:42.473Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bsctl.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-01-24T10:25:55.000Z","updated_at":"2022-03-09T08:16:01.000Z","dependencies_parsed_at":"2024-11-07T09:46:52.694Z","dependency_job_id":"e52c0af4-69d7-4b2b-9a52-5ebe118fa91c","html_url":"https://github.com/bsctl/go-web-app","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bsctl%2Fgo-web-app","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bsctl%2Fgo-web-app/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bsctl%2Fgo-web-app/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bsctl%2Fgo-web-app/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bsctl","download_url":"https://codeload.github.com/bsctl/go-web-app/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239533068,"owners_count":19654617,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-07T09:46:01.454Z","updated_at":"2025-11-07T14:30:20.169Z","avatar_url":"https://github.com/bsctl.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# A simple demo webapp\nClone this repo on a local machine where `kubectl` is configured against the target Kubernetes cluster. The image is built from the provided `Dockerfile`:\n\n```\ndocker build -t go-web-app:latest .\nOnce the image is built, push it on your preferred repository.\n```\n\n## Deployment\nUse this webapp to demostrate the deployment strategies in Kubernetes.\n\nThe app exposes ports:\n\n- 8080 for http requests on the \"/\" path.\n- 8080 for readiness and liveness probes on the \"/ready\", and \"live\" paths, respectively.\n- 9090 for Prometheus metrics on \"/metrics\" path.\n\nThe exposed metrics are the http_requests_total counter.\n\nDeploy multiple instances in Kubernetes through a deployment\n\n    kubectl apply -f webapp-deploy-rolling.yaml\n\nand expose the webapp through an ingress\n\n    kubectl apply -f webapp-svc.yaml\n    kubectl apply -f webapp-ingress.yaml\n\nUpdate the webapp by setting a new version string\n\n    kubectl set env deploy webapp VERSION=v2.0.0\n\nDuring the update access the webapp multiple times and see different answers coming from different versions of the application.\n\nThen use Prometheus and Grafana to display the number of http requests received and ordered by versions.\n\nIn Grafana, add a Prometheus data source url\n\n    http://prometheus-server\n\nAnd use the following query to see the requests ordered by `{{version}}`\n\n    sum(rate(http_requests_total{run=\"webapp\"}[5m])) by (version)\n\n## Horizontal Pod Autoscaler Walkthrough\nUse this webapp for an introduction to the HPA - Horizontal Pod Autoscaler. Refer to [autoscaler walkthrough](./autoscaler/README.md).","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbsctl%2Fgo-web-app","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbsctl%2Fgo-web-app","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbsctl%2Fgo-web-app/lists"}