{"id":13617551,"url":"https://github.com/mshdg/dadjoke-ui","last_synced_at":"2025-04-14T06:34:21.918Z","repository":{"id":38211312,"uuid":"238785314","full_name":"mshdg/dadjoke-ui","owner":"mshdg","description":"A Python 3 Flask project which provides a simple web ui for an open source dadjokes generator","archived":false,"fork":false,"pushed_at":"2023-04-18T01:01:06.000Z","size":134,"stargazers_count":1,"open_issues_count":3,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2024-08-01T20:47:55.455Z","etag":null,"topics":["dad-jokes","dadjokes-microservice","devops","docker","k3s","k8s","kubernetes","microk8s","microservice","python-flask","python3","python3-flask"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mshdg.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"License.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2020-02-06T21:09:43.000Z","updated_at":"2022-03-29T14:42:47.000Z","dependencies_parsed_at":"2024-03-30T23:32:31.814Z","dependency_job_id":"de915ac1-a72f-4c12-b066-18b1d7db825a","html_url":"https://github.com/mshdg/dadjoke-ui","commit_stats":null,"previous_names":[],"tags_count":12,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mshdg%2Fdadjoke-ui","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mshdg%2Fdadjoke-ui/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mshdg%2Fdadjoke-ui/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mshdg%2Fdadjoke-ui/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mshdg","download_url":"https://codeload.github.com/mshdg/dadjoke-ui/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":223621852,"owners_count":17174772,"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":["dad-jokes","dadjokes-microservice","devops","docker","k3s","k8s","kubernetes","microk8s","microservice","python-flask","python3","python3-flask"],"created_at":"2024-08-01T20:01:43.621Z","updated_at":"2024-11-08T02:30:39.791Z","avatar_url":"https://github.com/mshdg.png","language":"Python","funding_links":[],"categories":["HarmonyOS"],"sub_categories":["Windows Manager"],"readme":"# Dad Jokes Web UI #\r\n\r\n![Build Status](https://github.com/jaysgrant/dadjoke-ui/workflows/dadjoke_ui/badge.svg)\r\n![GitHub release (https://github.com/jaysgrant/dadjoke-ui/releases)](https://img.shields.io/github/v/release/jaysgrant/dadjoke-ui?include_prereleases)\r\n![LGTM Grade](https://img.shields.io/lgtm/grade/python/github/jaysgrant/dadjoke-ui)\r\n![GitHub](https://img.shields.io/github/license/jaysgrant/dadjoke-ui)\r\n![Docker Pulls](https://img.shields.io/docker/pulls/nhjay/dadjoke-ui)\r\n\r\nA simple Python 3 Flask based web UI for the [Dad Jokes microservice](https://github.com/yesinteractive/dad-jokes_microservice) project. The project is built around the idea of deployment hosted on Docker, and Kubernetes.\r\n\r\n## Getting Started ##\r\n\r\nSee the deployment examples within the [examples](./examples) folder.\r\n\r\n### Kubernetes ###\r\n\r\nThe Kubernetes example deployes two services, and two deployments.\r\n\r\n#### DadJokes Microservice ####\r\n\r\n* Creation of a service, and deployment of the DadJokes Microservice to generate the jokes.\r\n* Service creation with a type of NodePort.\r\n\r\n#### DadJokes Web UI ####\r\n\r\n* Creation of a service, and deployment of the DadJokes UI, providing a web view of the output of the DadJokes Microservice.\r\n* Service creation with a type of NodePort.\r\n\r\n#### Installation on Kubernetes ####\r\n\r\nSee the Kubernetes [examples](./examples/kubernetes/) provided.\r\n\r\n### Docker ###\r\n\r\nSee the docker-compose [example](./examples/docker-compose/) provided.\r\n\r\n### Observability ###\r\n\r\nThe Kubernetes/loadbalancer example has the UWSGI stats server enabled. The deployment will include a sidecar container for the [UWSGI Exporter](https://github.com/timonwong/uwsgi_exporter) to allow exporting metrics to Prometheus on the performance of UWSGI.\r\n\r\nThe service created for the load balancer includes exposing the UWSGI stats over port 9117 via http. This configuration can be used to allow Prometheus to scrape metrics. A simple example of a Prometheus scrape job setup would be as follows:\r\n```yaml\r\n  - job_name: 'uwsgi'\r\n    static_configs:\r\n         - targets:\r\n           - '192.168.1.53:9117'\r\n```\r\n\r\nThis is a very simple configuration, with a static job, that scrapes the metrics from the loadbalancer located at IP 192.168.1.53 via port 9117.\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmshdg%2Fdadjoke-ui","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmshdg%2Fdadjoke-ui","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmshdg%2Fdadjoke-ui/lists"}