{"id":20331207,"url":"https://github.com/comcast/dns-over-https-translator","last_synced_at":"2025-04-11T21:07:46.490Z","repository":{"id":144206926,"uuid":"232346607","full_name":"Comcast/DNS-over-HTTPs-translator","owner":"Comcast","description":null,"archived":false,"fork":false,"pushed_at":"2020-09-09T19:54:43.000Z","size":35,"stargazers_count":7,"open_issues_count":0,"forks_count":6,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-04-11T21:07:41.254Z","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":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Comcast.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","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}},"created_at":"2020-01-07T14:49:54.000Z","updated_at":"2021-02-12T23:15:35.000Z","dependencies_parsed_at":null,"dependency_job_id":"fe164b11-08c8-4c17-9b33-ed2f13f40357","html_url":"https://github.com/Comcast/DNS-over-HTTPs-translator","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/Comcast%2FDNS-over-HTTPs-translator","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Comcast%2FDNS-over-HTTPs-translator/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Comcast%2FDNS-over-HTTPs-translator/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Comcast%2FDNS-over-HTTPs-translator/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Comcast","download_url":"https://codeload.github.com/Comcast/DNS-over-HTTPs-translator/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248480434,"owners_count":21110937,"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-11-14T20:19:15.096Z","updated_at":"2025-04-11T21:07:46.482Z","avatar_url":"https://github.com/Comcast.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# DNS-over-HTTPs-translator\n\nHTTP proxy server that accepts DNS queries and responds with replies from the configured DNS resolver.\n\n## License\n\nApache License 2.0\n\n## Working\n\nThe DoH-Translator listens on port 80 and translates GET or POST requests containing messages of media type - \"application/dns-message\". The translator then queries the configured DNS Resolver (default is the public anycast Comcast DNS Resolver) and correlates the DNS response from the resolver with the  HTTP exchange.\n\n## Design\n\nThe DoH-Translator uses the following interfaces: Config, Controller and Proxy. This keeps the design modular and allows for more functionality to be added by adding features to the interface implementation. The current Proxy interface is implemented using the net/http go package. Proxy can also be implemented using a different http package if desired.\n\n## Configuration\n\nThe translator is configured using the config-doh-translator.yaml file at the path /etc/translator on a linux machine.\n\nSince the translator is designed to be hosted behind an nginx HTTPS service and within a provider's network, the resolver's IP could be appropriately chosen to be the geographically closest internal resolver. For now the public anycast Comcast DNS IP is set as default.\n\nExample:\n```yaml\n# IP address and port of the resolver.\n# Note: Comcast resolver set as default if no resolver\n#       is provided here.\nresolver: \"75.75.75.75:53\"\n\n# Other configuration options such as caching options, rate-limiting\n# options go below this. (TBD)\n```\n\n## Requirements\n\nPlease verify the success of the below checks before executing the translator:\n- `echo $GOPATH` must be set as a system-wide environment variable.\n\n## Execution\n```shell\nmkdir -p /etc/translator/\nmkdir -p $GOPATH/src/github.com/Comcast\ncd $GOPATH/src/github.com/Comcast\ngit clone git@github.com:Comcast/DNS-over-HTTPs-translator.git\ncd translator\ncp $GOPATH/src/github.com/Comcast/DNS-over-HTTPs-translator/config-doh-translator.yaml /etc/translator\nmake build\nsudo .build/doh-translator-linux-amd64 start\n```\nNote: To exit to terminal or stop translator, hit `Ctrl + C` twice.\n\n## Deploy\n```shell\n# Run script to deploy the translator as a systemd service (sudo commands used)\nsh deploy.sh\n\n# To start service...\nsudo service doh-translator start\n\n# To check status of service...\nsudo service doh-translator status\n\n# To stop service...\nsudo service doh-translator stop\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcomcast%2Fdns-over-https-translator","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcomcast%2Fdns-over-https-translator","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcomcast%2Fdns-over-https-translator/lists"}