{"id":15753410,"url":"https://github.com/dmotte/webauthn-proxy","last_synced_at":"2026-04-27T18:32:03.378Z","repository":{"id":249888887,"uuid":"832862697","full_name":"dmotte/webauthn-proxy","owner":"dmotte","description":"🐳 Customization of the quiq/webauthn_proxy Docker image","archived":false,"fork":false,"pushed_at":"2026-03-23T00:46:54.000Z","size":47,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-03-23T18:12:25.766Z","etag":null,"topics":["auth","authentication","authn","browser","build","container","custom","docker","docker-compose","dockerhub","http","hub","image","login","middleware","proxy","quiq","reverse","webauthn","webauthn-proxy"],"latest_commit_sha":null,"homepage":"https://hub.docker.com/r/dmotte/webauthn-proxy","language":"HTML","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/dmotte.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-07-23T21:55:44.000Z","updated_at":"2026-03-23T00:46:42.000Z","dependencies_parsed_at":"2025-03-24T23:19:33.695Z","dependency_job_id":"ebf35418-e481-4657-9a0b-640b8cb1747d","html_url":"https://github.com/dmotte/webauthn-proxy","commit_stats":null,"previous_names":["dmotte/webauthn-proxy"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/dmotte/webauthn-proxy","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dmotte%2Fwebauthn-proxy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dmotte%2Fwebauthn-proxy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dmotte%2Fwebauthn-proxy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dmotte%2Fwebauthn-proxy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dmotte","download_url":"https://codeload.github.com/dmotte/webauthn-proxy/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dmotte%2Fwebauthn-proxy/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32349427,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-27T17:12:42.749Z","status":"ssl_error","status_checked_at":"2026-04-27T17:12:41.658Z","response_time":128,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["auth","authentication","authn","browser","build","container","custom","docker","docker-compose","dockerhub","http","hub","image","login","middleware","proxy","quiq","reverse","webauthn","webauthn-proxy"],"created_at":"2024-10-04T07:40:38.894Z","updated_at":"2026-04-27T18:32:03.373Z","avatar_url":"https://github.com/dmotte.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"# webauthn-proxy\n\n[![GitHub main workflow](https://img.shields.io/github/actions/workflow/status/dmotte/webauthn-proxy/main.yml?branch=main\u0026logo=github\u0026label=main\u0026style=flat-square)](https://github.com/dmotte/webauthn-proxy/actions)\n[![Docker Pulls](https://img.shields.io/docker/pulls/dmotte/webauthn-proxy?logo=docker\u0026style=flat-square)](https://hub.docker.com/r/dmotte/webauthn-proxy)\n\nThis is a :whale: customization of the [`quiq/webauthn_proxy`](https://hub.docker.com/r/quiq/webauthn_proxy) Docker image.\n\nGitHub repo of the upstream [**WebAuthn Proxy**](https://github.com/Quiq/webauthn_proxy) project: [Quiq/webauthn_proxy](https://github.com/Quiq/webauthn_proxy)\n\n\u003e :package: This image is also on **Docker Hub** as [`dmotte/webauthn-proxy`](https://hub.docker.com/r/dmotte/webauthn-proxy) and runs on **several architectures** (e.g. amd64, arm64, ...). To see the full list of supported platforms, please refer to the [`.github/workflows/main.yml`](.github/workflows/main.yml) file. If you need an architecture that is currently unsupported, feel free to open an issue.\n\n## Usage\n\nIn this repo we also provide an example of how to protect services with **WebAuthn** using this image and [Traefik](https://traefik.io/), and expose the resulting stack through an **SSH reverse port forwarding tunnel** using [dmotte/docker-portmap-client](https://github.com/dmotte/docker-portmap-client). See the [`docker-compose.yml`](docker-compose.yml) file.\n\nNote that this is meant to be run behind an **HTTPS \u0026rarr; HTTP** reverse proxy.\n\nIn addition, the [`docker-compose.yml`](docker-compose.yml) file also defines an example **SFTPGo container** named `webauthn-admin`, which you can use to edit the WebAuthn user credentials file (`users.yml`) via SFTP.\n\n### Set up portmap-client\n\nFirst of all, you need to set up everything for the `portmap-client` docker-compose service. Basically you need to create the missing files into the [`volumes/portmap-client`](volumes/portmap-client) directory (see instructions in the [official repo](https://github.com/dmotte/docker-portmap-client)) and adjust the `command` field of the `portmap-client` service in the [`docker-compose.yml`](docker-compose.yml) file with the right values.\n\n### Set up webauthn-proxy\n\nThen you need to replace `example.com` with the right target **domain name** inside [`volumes/webauthn-proxy-config/config.yml`](volumes/webauthn-proxy-config/config.yml).\n\nCreate the `volumes/webauthn-proxy-config/cooks.yml` file starting from [`volumes/webauthn-proxy-config/cooks.sample.yml`](volumes/webauthn-proxy-config/cooks.sample.yml). It's important to generate and set a **cookie session secret** there, to avoid the following error after _WebAuthn Proxy_ restart:\n\n```\nError getting session from session store during user auth handler: securecookie: the value is not valid\n```\n\nYou can use the following command to **generate** a cookie session secret:\n\n```bash\ndocker run --rm --log-driver=none docker.io/quiq/webauthn_proxy:0.1 -generate-secret\n```\n\nCreate the `volumes/webauthn-proxy-config/users.yml` file starting from [`volumes/webauthn-proxy-config/users.sample.yml`](volumes/webauthn-proxy-config/users.sample.yml). You can leave the `user_credentials` dictionary empty (`{}`) for now, and you'll populate it later, once someone **registers** in your _WebAuthn Proxy_ instance.\n\n\u003e **Note**: the _WebAuthn Proxy_ service will **restart automatically** whenever the `users.yml` file is changed.\n\n### Final steps\n\nFinally, you may want to **further customize** the configuration files, so make sure to take one last look and check that everything is OK. When you are ready:\n\n```bash\ndocker-compose up -d\n```\n\nThen you can visit the **public URL** of your exposed service and check that everything is working fine.\n\n## Development\n\nIf you want to contribute to this project, you can use the following one-liner to **rebuild the image** and bring up the **Docker-Compose stack** every time you make a change to the code:\n\n```bash\ndocker-compose down \u0026\u0026 docker-compose up --build\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdmotte%2Fwebauthn-proxy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdmotte%2Fwebauthn-proxy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdmotte%2Fwebauthn-proxy/lists"}