{"id":21920099,"url":"https://github.com/itaru2622/docker-bind9","last_synced_at":"2025-03-22T10:22:08.360Z","repository":{"id":152349488,"uuid":"601599724","full_name":"itaru2622/docker-bind9","owner":"itaru2622","description":null,"archived":false,"fork":false,"pushed_at":"2024-07-04T22:35:52.000Z","size":23,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-01-27T10:11:44.190Z","etag":null,"topics":["bind9","ddns","docker","webmin"],"latest_commit_sha":null,"homepage":"","language":"Makefile","has_issues":false,"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/itaru2622.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,"publiccode":null,"codemeta":null}},"created_at":"2023-02-14T12:17:15.000Z","updated_at":"2024-09-14T22:24:48.000Z","dependencies_parsed_at":"2025-01-27T10:11:11.558Z","dependency_job_id":"ee1d2a49-5593-47d8-a0b6-c867d578f4e8","html_url":"https://github.com/itaru2622/docker-bind9","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/itaru2622%2Fdocker-bind9","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/itaru2622%2Fdocker-bind9/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/itaru2622%2Fdocker-bind9/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/itaru2622%2Fdocker-bind9/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/itaru2622","download_url":"https://codeload.github.com/itaru2622/docker-bind9/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244939104,"owners_count":20535359,"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":["bind9","ddns","docker","webmin"],"created_at":"2024-11-28T20:13:18.154Z","updated_at":"2025-03-22T10:22:08.339Z","avatar_url":"https://github.com/itaru2622.png","language":"Makefile","readme":"## private DNS server with bind9 + dynamic DNS feature\n\n## Requirement\n   - OS: Linux\n   - Software: docker, docker-compose\n\n## docker image build\n\n\n```bash\n   # build\n   #   zoneDir:   bind config folder to store named.conf (i.e /etc/bind)\n   #   rootpwd:   password for root\n   $ zoneDir=/etc/bind  rootpwd=changeme docker-compose build\n```\n\n## basic usage: start / stop\n\n```bash\n   # start\n   #   dnsdip:    IP address of docker host\n   #   forwarder: upstream DNS server IP to forward request as cache server.\n   #   zoneDir:   bind config folder to store named.conf\n   $ dnsdip=YourHostIP  forwarder=DNSIPinYourNW zoneDir=/etc/bind domain=YourDomain docker-compose up\n\n   # stop\n   $ docker-compose down -v\n```\n\n\n## sample operation, to add new zone, A-record on demand (to examle.com)\n\n   helper script: ${zoneDir}/Makefile in container\n\n```bash\n   $ docker-compose exec bind9 bash # do below after login to container's bash\n\n   #    initialize zone when you want. (clear all exisiting records and zones)  (*A)\n   $ make initConf\n\n   #    add new zone(domain) on demand  (*B)\n   $ make addZone domain=example.com\n\n   #    add / update / delete recode (i.e A-record)\n   $ make dynReg   fqdn=host1.subdomain.example.com  type='IN A'   v=192.168.0.1 # add new record when not exists.\n   $ make dynReg   fqdn=host1.subdomain.example.com  type='IN A'   v=192.168.0.2 # update IP for fqdn\n   $ make rmReg    fqdn=host1.subdomain.example.com  type='IN A'                 # remove record\n      :\n\n   #    confirm records in domain (by zone transfer)\n   $ make getRecord domain=example.com\n\n   #    store DDNS requests into zonefile, to freeze them ( i.e. backup ) (*C)\n   $ make jnl2zone\n\n```\n\n## DNS Ops Alternatives.\n - the ops easier than other tools.\n      - A initialize configurations\n      - B adding domain/zone\n      - C backup DDNS requests to zone file.\n - what you can do with other tools.\n      - adding entry;          nsupdate (add multiple records from remote)\n      - confirm zone entries:  dnz zone transfer ( dig axfr )\n      - webmin x bind9 for management via GUI.\n\n## bind9 with webmin\n  - zoneDir has to be /etc/bind when using webmin for managing bind9\n```bash\n   $ make webminStart\n   #    then you can access webmin via  http://${dnsdip}:10000/\n   $ make webminReload\n   $ make webminStop\n```\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fitaru2622%2Fdocker-bind9","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fitaru2622%2Fdocker-bind9","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fitaru2622%2Fdocker-bind9/lists"}