{"id":13714987,"url":"https://github.com/tcdowney/web-monetization-proxy","last_synced_at":"2026-06-19T02:31:45.539Z","repository":{"id":57545766,"uuid":"262886176","full_name":"tcdowney/web-monetization-proxy","owner":"tcdowney","description":"Simple Go proxy for injecting Web Monetization meta tags. Done as part of the Dev \"Grant For The Web\" Hackathon","archived":false,"fork":false,"pushed_at":"2020-08-11T14:25:51.000Z","size":359,"stargazers_count":3,"open_issues_count":1,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-11-12T02:03:24.209Z","etag":null,"topics":["gftwhackathon","go","golang","proxy","web-monetization"],"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/tcdowney.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":"2020-05-10T22:22:49.000Z","updated_at":"2025-03-26T12:38:03.000Z","dependencies_parsed_at":"2022-09-26T18:40:40.050Z","dependency_job_id":null,"html_url":"https://github.com/tcdowney/web-monetization-proxy","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/tcdowney/web-monetization-proxy","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tcdowney%2Fweb-monetization-proxy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tcdowney%2Fweb-monetization-proxy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tcdowney%2Fweb-monetization-proxy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tcdowney%2Fweb-monetization-proxy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tcdowney","download_url":"https://codeload.github.com/tcdowney/web-monetization-proxy/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tcdowney%2Fweb-monetization-proxy/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34515405,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-19T02:00:06.005Z","response_time":61,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["gftwhackathon","go","golang","proxy","web-monetization"],"created_at":"2024-08-03T00:00:52.733Z","updated_at":"2026-06-19T02:31:45.497Z","avatar_url":"https://github.com/tcdowney.png","language":"Go","funding_links":[],"categories":["Resources"],"sub_categories":["Packages"],"readme":"[![Docker Image Size (latest by date)](https://img.shields.io/docker/image-size/downey/web-monetization-proxy)](https://hub.docker.com/repository/docker/downey/web-monetization-proxy) [![Docker Image Version (latest by date)](https://img.shields.io/docker/v/downey/web-monetization-proxy)](https://hub.docker.com/repository/docker/downey/web-monetization-proxy)\n\n# web-monetization-proxy\nDocker repo: https://hub.docker.com/repository/docker/downey/web-monetization-proxy\n\nSimple proxy for injecting [Web Monetization](https://webmonetization.org/) `meta` tags. Intended to be deployed as a sidecar process alongside Web Monetization unaware webapps.\n\n![Architecture diagram of the Web Monetization Proxy](doc/web-monetization-proxy.png)\n\n## disclaimer\nThis **proof-of-concept** project was created for fun as part of the [DEV \"Grant For The Web\" Hackathon](https://dev.to/devteam/announcing-the-grant-for-the-web-hackathon-on-dev-3kd1). It should **not be relied on** for production use cases and merely exists to demonstrate what is possible. In the future it might be worth exploring doing something similar using Envoy proxies and a [WASM](https://github.com/envoyproxy/envoy-wasm) plugin that implements this functionality.\n\n## configuration\nThe proxy relies on the following environment variables:\n* `PROXY_PORT` -- the port the proxy listens on\n* `BACKEND_PORT` -- the port of the backend application that requests are forwarded to\n* `PAYMENT_POINTER` -- an [Interledger Payment Pointer](https://paymentpointers.org/) string\n\nReference the [example Deployment](hack/example-deployment.yaml) to see how you might configure these in Kubernetes.\n\n## development\nThis project uses [Go modules](https://blog.golang.org/using-go-modules) which work best with Golang 1.13+. To run the project's tests, run `go test ./...` from the root directory.\n\n## build and deployment\n![Architecture diagram of the Web Monetization Proxy](doc/example-deployment-screenshot.png)\n\nThis project uses [Cloud Native Buildpacks](https://buildpacks.io/) and the [`pack` cli](https://buildpacks.io/docs/install-pack/) in lieu of a `Dockerfile`. New images can be built by running the following:\n\n```console\npack build \u003cimage-name-here\u003e -B cloudfoundry/cnb:bionic\n```\n\nTo ease development and deployment to Kubernetes, it also includes some [`kbld`](https://get-kbld.io/) configuration in the `build` directory and a sample Kubernetes `Deployment` in the `hack` directory.\n\nTo quickly build, push, and deploy to Kubernetes run\u003csup\u003e1\u003c/sup\u003e:\n\n```console\nkbld -f hack -f build | kubectl apply -f -\n```\n\n_\u003csup\u003e1\u003c/sup\u003e - You will need to update `build/destinations.yaml` to refer to an OCI image registry you have permission to push to and replace `hack/example-ingress.yaml` with `Ingress` configuration that is valid for your cluster._\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftcdowney%2Fweb-monetization-proxy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftcdowney%2Fweb-monetization-proxy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftcdowney%2Fweb-monetization-proxy/lists"}