{"id":20820220,"url":"https://github.com/muhammadn/avahi-proxy","last_synced_at":"2025-09-15T00:08:00.570Z","repository":{"id":259536139,"uuid":"878158697","full_name":"muhammadn/avahi-proxy","owner":"muhammadn","description":null,"archived":false,"fork":false,"pushed_at":"2025-06-24T05:21:38.000Z","size":39,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-06-24T06:30:35.034Z","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":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/muhammadn.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}},"created_at":"2024-10-24T21:34:04.000Z","updated_at":"2025-06-24T05:21:36.000Z","dependencies_parsed_at":"2025-05-07T15:47:51.861Z","dependency_job_id":"e0b8c30a-7571-4aa0-aa2f-35c3d856db2e","html_url":"https://github.com/muhammadn/avahi-proxy","commit_stats":null,"previous_names":["muhammadn/avahi-proxy"],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/muhammadn/avahi-proxy","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/muhammadn%2Favahi-proxy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/muhammadn%2Favahi-proxy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/muhammadn%2Favahi-proxy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/muhammadn%2Favahi-proxy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/muhammadn","download_url":"https://codeload.github.com/muhammadn/avahi-proxy/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/muhammadn%2Favahi-proxy/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":275185399,"owners_count":25419919,"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","status":"online","status_checked_at":"2025-09-14T02:00:10.474Z","response_time":75,"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":[],"created_at":"2024-11-17T22:08:40.689Z","updated_at":"2025-09-15T00:08:00.524Z","avatar_url":"https://github.com/muhammadn.png","language":"Go","readme":"# Multicast DNS Proxy written in Go\n\nThis was to solve the problem in trying to proxy all my local \"home.lan\" domain to Multicast DNS \".local\" domain.\n\nProblem was all existing solutions are eiher written in scripting languages such as Ruby and Python which are less performant.\n\nSo now, everything that is within Multicast DNS \".local\" domain is resolvable with \"home.lan\" as well.\n\nFor example, i have a machine which is \"muhammads-macbook-pro.local\" which resolves with Multicast DNS (mDNS) but i want the host \"muhammads-macbook-pro\" to be resolvable as \"muhammads-macbook-pro.home.lan\" as well.\n\nThis helps with machines like Microsoft Windows,Android and Linux (without avahi installed) which does not have Multicast DNS built-in (thus cannot resolve \".local\" TLD)\n\nAnother use case is when you want your \".local\" DNS hosts to be resolvable across IPSec VPNs or other segmented networks where mDNS reflection is not possible.\n\nAlso useful for dynamic IP environments where IPs are assigned via DHCP and it is almost impossible to configure hostnames via your custom domain.\n\nSo you can actually run `dnsmasq` and then upstream any `.home.lan` requests to this multicast dns proxy software and return the IP from multicast `.local`.\n\nExample in `dnsmasq.conf`:\n\n```\nserver=/home.lan/127.0.0.1#5354\n\n```\n\nNote: I assume you have Avahi running on Linux with DBus to run this program.\n\nRun this program by specifying what is your LAN domain name. Default port is 5354.\n\nExample:\n\n```\n./avahi-proxy run --baseDomain home.lan\n```\n\ndepending on what domain you configured for your LAN network.\n\nAlso you can specify the port which you want `avahi-proxy` to run on.\n\nexample:\n\n```\n./avahi-proxy run --baseDomain home.lan --port 5355\n``` \n\nLinux systemd configuration example:\n\n```\n[Unit]\nDescription=Avahi Multicast-DNS Proxy\nAfter=network.target\n\n[Service]\nType=simple\nUser=dnsmasq\nGroup=nogroup\nExecStart=/usr/local/bin/avahi-proxy run home.lan\nRestart=on-failure\nRestartSec=10\n```\n\nContributions are welcome.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmuhammadn%2Favahi-proxy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmuhammadn%2Favahi-proxy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmuhammadn%2Favahi-proxy/lists"}