{"id":13580390,"url":"https://github.com/pcfens/traefik-localplugins","last_synced_at":"2026-01-05T05:35:05.909Z","repository":{"id":145587038,"uuid":"439124339","full_name":"pcfens/traefik-localplugins","owner":"pcfens","description":"A demo of local plugins in Traefik","archived":false,"fork":false,"pushed_at":"2022-03-02T22:13:31.000Z","size":17,"stargazers_count":2,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-01-29T01:59:00.186Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Dockerfile","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/pcfens.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}},"created_at":"2021-12-16T20:54:41.000Z","updated_at":"2023-06-08T14:04:21.000Z","dependencies_parsed_at":null,"dependency_job_id":"4b3afd5c-b714-4b06-9c57-6bfb769ea576","html_url":"https://github.com/pcfens/traefik-localplugins","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/pcfens%2Ftraefik-localplugins","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pcfens%2Ftraefik-localplugins/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pcfens%2Ftraefik-localplugins/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pcfens%2Ftraefik-localplugins/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pcfens","download_url":"https://codeload.github.com/pcfens/traefik-localplugins/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245153896,"owners_count":20569408,"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-08-01T15:01:50.469Z","updated_at":"2026-01-05T05:35:05.872Z","avatar_url":"https://github.com/pcfens.png","language":"Dockerfile","funding_links":[],"categories":["Dockerfile"],"sub_categories":[],"readme":"Traefik Local Plugins\n=====================\n\nA demo of Traefik local plugins running in Kubernetes.\n\nTo demonstrate that the local plugin is running we'll block exploits against log4j.\n\nTo test the ondemand plugin, the service we're testing against will be shut down if it's idle\nfor an hour (that value can be chagned at the bottom of `k8s-demo/whoami.yaml`).\n\n## Prerequisites\n\nThis demo can be run in any k8s cluster that isn't already using Traefik, but to follow\nalong with this README, you'll need:\n\n* This repository cloned locally\n* [kind](https://kind.sigs.k8s.io/)\n* A web browser\n* cURL\n\n## Running the Demo\n\nFirst, start everything up, including your local Kubernetes cluster\n\n```bash\nkind create cluster --image=kindest/node:v1.23.0\nkubectl apply -k k8s-demo/\n```\n\nWait about a minute for things to get stable. When things are done, you should\nhave 4 running pods.\n\nOnce things are up, you'll want at least 3 terminal windows:\n\n1. Port-forward the Traefik main ingress port\n  \n  `kubectl port-forward svc/traefik-ingress 8000:80`\n\n2.  Port-forward the [Traefik dashboard](http://localhost:8080/dashboard/) (login with admin/password)\n  \n  `kubectl port-forward svc/traefik-admin 8080`\n\n3. A place to run cURL commands:\n\nRunning `curl -v -H 'Host: example.com' -H 'User-Agent: ${${lower:j}ndi:ldap://127.0.0.1/a}' http://localhost:8000` should fail with the response code `500`.\n\nRunning `curl -v -H 'Host: example.com' http://localhost:8000` will return a 200 with\nsome information about the request as expected, since you're not trying to exploit anything\n\nIf you let things sit idle for an hour or so, you'll see a startup page when you visit\nhttp://localhost:8080 in your browser. The shutdown is useless for demoing the log4j filter,\nbut it works well to demonstrate multiple local plugins running at the same time.\n\n## Cleaning Up\n\nWhen you're done, you can run `kind delete cluster` and the cluster we created will be turned off.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpcfens%2Ftraefik-localplugins","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpcfens%2Ftraefik-localplugins","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpcfens%2Ftraefik-localplugins/lists"}