{"id":28483219,"url":"https://github.com/smoothprogrammer/knrp","last_synced_at":"2025-06-28T23:32:32.566Z","repository":{"id":42436643,"uuid":"478422512","full_name":"smoothprogrammer/knrp","owner":"smoothprogrammer","description":"Knative Reverse Proxy","archived":false,"fork":false,"pushed_at":"2022-04-06T09:30:26.000Z","size":6,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-06-07T21:44:50.656Z","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":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/smoothprogrammer.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2022-04-06T05:56:27.000Z","updated_at":"2022-04-06T09:17:54.000Z","dependencies_parsed_at":"2022-09-13T00:32:32.668Z","dependency_job_id":null,"html_url":"https://github.com/smoothprogrammer/knrp","commit_stats":null,"previous_names":["injustease/knrp","smoothprogrammer/knrp"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/smoothprogrammer/knrp","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/smoothprogrammer%2Fknrp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/smoothprogrammer%2Fknrp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/smoothprogrammer%2Fknrp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/smoothprogrammer%2Fknrp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/smoothprogrammer","download_url":"https://codeload.github.com/smoothprogrammer/knrp/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/smoothprogrammer%2Fknrp/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":262513625,"owners_count":23322661,"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":"2025-06-07T21:37:59.115Z","updated_at":"2025-06-28T23:32:32.559Z","avatar_url":"https://github.com/smoothprogrammer.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Knative Reverse Proxy\n\nKnative Reverse Proxy (knrp) for local development of Knative application with/without magic DNS.\n\n## Install\n\n```bash\ngo install github.com/injustease/knrp@latest\n```\n\n## Usage\n\n### Run Knative cluster\n\nThe easiest way is using [Knative quickstart](https://knative.dev/docs/getting-started/quickstart-install/).\n\n### Fetch the Knative networking layer for `\u003cgateway\u003e`\n\nFetch the External IP.\n\n```bash\n# Kourier\nkubectl --namespace kourier-system get service kourier\n\n# Istio\nkubectl --namespace istio-system get service istio-ingressgateway\n\n# Contour\nkubectl --namespace contour-external get service envoy\n```\n\nExample output Kourier (External IP is pending and it is intentional, use localhost instead), e.g. `localhost:80` or simply `localhost`.\n\n```bash\nNAME      TYPE           CLUSTER-IP     EXTERNAL-IP   PORT(S)                      AGE\nkourier   LoadBalancer   10.96.97.137   \u003cpending\u003e     80:32354/TCP,443:32488/TCP   33m\n```\n\n### Fetch the Knative service URL for `\u003cservice\u003e`\n\nFetch the Service URL.\n\n```bash\n# kn\nkn service list\n\n# kubectl\nkubectl get services.serving.knative.dev\n```\n\nExample output with service `hello` in the namespace `default`, e.g. `http://hello.default.example.com`.\n\n```bash\n# without magic DNS\nNAME    URL                                       LATEST        AGE   CONDITIONS   READY   REASON\nhello   http://hello.default.example.com   hello-00001   34m   3 OK / 3     True    \n\n# with magic DNS\nNAME    URL                                       LATEST        AGE   CONDITIONS   READY   REASON\nhello   http://hello.default.127.0.0.1.sslip.io   hello-00001   34m   3 OK / 3     True    \n```\n\n### Run knrp\n\nCommand `knrp \u003cgateway\u003e \u003cservice\u003e`\n\n```bash\nknrp localhost http://hello.default.127.0.0.1.sslip.io\n```\n\nOutput knrp.\n\n```bash\n2022/04/06 16:05:19 knrp run at port: 52070\n```\n\nFor more information run `knrp --help`.\n\n### Expose to the internet with ngrok\n\nYou now expose Knative service to the internet with [ngrok](https://ngrok.com/) by using knrp address.\n\n```bash\nngrok http 52070\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsmoothprogrammer%2Fknrp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsmoothprogrammer%2Fknrp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsmoothprogrammer%2Fknrp/lists"}