{"id":48259136,"url":"https://github.com/outout14/sacrebleu-dns","last_synced_at":"2026-04-04T21:24:39.663Z","repository":{"id":54984266,"uuid":"319454024","full_name":"outout14/sacrebleu-dns","owner":"outout14","description":"DNS server made in Go with SQL \u0026 Redis backend.","archived":false,"fork":false,"pushed_at":"2022-06-05T19:32:17.000Z","size":77,"stargazers_count":14,"open_issues_count":2,"forks_count":3,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-06-19T09:12:57.344Z","etag":null,"topics":["dns","go","golang","redis","reverse-dns","sql","wildcard"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/outout14.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}},"created_at":"2020-12-07T21:53:33.000Z","updated_at":"2023-11-06T22:42:48.000Z","dependencies_parsed_at":"2022-08-14T08:10:34.425Z","dependency_job_id":null,"html_url":"https://github.com/outout14/sacrebleu-dns","commit_stats":null,"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"purl":"pkg:github/outout14/sacrebleu-dns","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/outout14%2Fsacrebleu-dns","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/outout14%2Fsacrebleu-dns/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/outout14%2Fsacrebleu-dns/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/outout14%2Fsacrebleu-dns/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/outout14","download_url":"https://codeload.github.com/outout14/sacrebleu-dns/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/outout14%2Fsacrebleu-dns/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31414915,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-04T20:09:54.854Z","status":"ssl_error","status_checked_at":"2026-04-04T20:09:44.350Z","response_time":60,"last_error":"SSL_read: 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":["dns","go","golang","redis","reverse-dns","sql","wildcard"],"created_at":"2026-04-04T21:24:39.607Z","updated_at":"2026-04-04T21:24:39.656Z","avatar_url":"https://github.com/outout14.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Sacrebleu\n[![FOSSA Status](https://app.fossa.com/api/projects/git%2Bgithub.com%2Foutout14%2Fsacrebleu-dns.svg?type=shield)](https://app.fossa.com/projects/git%2Bgithub.com%2Foutout14%2Fsacrebleu-dns?ref=badge_shield) [![DeepSource](https://deepsource.io/gh/outout14/sacrebleu-dns.svg/?label=active+issues\u0026show_trend=true)](https://deepsource.io/gh/outout14/sacrebleu-dns/?ref=repository-badge) [![Github release action](https://github.com/outout14/sacrebleu-dns/workflows/Release/badge.svg)](https://github.com/outout14/sacrebleu-dns/actions?query=workflow%3ARelease) [![Github commit action](https://github.com/outout14/sacrebleu-dns/workflows/Go/badge.svg)](https://github.com/outout14/sacrebleu-dns/actions?query=workflow%3AGo)\n\nSacrebleu is a DNS authoritative nameserver made in Go with ``github.com/miekg/dns`` library. \n\nRecords are stored in a SQL Database and cached using Redis.\n\nThis software requires a SQL server and a Redis server.\n\nThis software is currently in development and NOT ready for production.\n\n## Installation \n\n### Automated install\nEach release contains a RPM and DEB package. \n- [Download the latest package](https://github.com/outout14/sacrebleu-dns/releases/latest) compatible with your system \n- Edit the config file in ``/etc/sacrebleu/config-dns.ini`` \n- Launch the database migration with ``sacrebleu-dns -sqlmigrate -config /etc/sacrebleu/config-dns.ini``\n- Start the service ``systemctl start sacrebleu-dns`` \n\n### Manual Install\n- [Download the latest release](https://github.com/outout14/sacrebleu-dns/releases/latest) compatible with your system \n- [Download](https://raw.githubusercontent.com/outout14/sacrebleu-dns/main/extra/config.ini.example) and edit the configuration file  \n- Launch the database migration with ``sacrebleu-dns -sqlmigrate -config [config path].ini``\n- [Download](https://raw.githubusercontent.com/outout14/sacrebleu-dns/main/extra/sacrebleu-dns.service) and edit the systemd service and put it in ``/lib/systemd/system/`` \n- Start the service ``systemctl start sacrebleu-dns`` \n\n## Arguments \nYou can show theses informations using ``./sacrebleu-dns -h``.\n``` \n   -config string\n        the patch to the config file (default \"extra/config.ini.example\")\n  -sqlmigrate\n        initialize / migrate the database\n``` \n\n## Configuration \nVariables names are case sensitives.\n|Variable name|Type|Example|Informations|\n|--|--|--|--|\n| app_mode | string|``\"production\"``|Anything different than ``production`` will show debug messages\n| App | Section |\n|IP|string|``\":\"``|IP address on which the DNS server must listen. Blank to listen on all IPs \n|Port|int|``5353``|Port on which the DNS server must listen\n|Logfile|bool|``true``|Enable or disable file logs.\n|Logdir|string|``/var/log``|Log file directory.\n|Database|Section|\n|Type|string|``\"postgresql\"``|SQL Database type. ``\"postgresql\"`` or ``\"mysql\"`` (anything different than ``\"postgresql\"`` will rollback to ``\"mysql\"``)\n|Host|string|``\"127.0.0.1\"``  ``\"/var/run/postgres\"``|Can be either an IP or a path to a socket for Postgres\n|Username|string|``\"sacrebleu\"``|SQL Database Username\n|Password|string|``\"superSecretPassword\"``|SQL Database Password (optional)\n|Port|string|``\"5432\"``|SQL Database port (``\"5432\"`` for postgres or ``\"3306\"`` for MySQL by default)\n|DB|string|``\"sacrebleudatabase\"``|SQL Database Name \n|Redis|Section\n|IP|string|``\"127.0.0.1\"``|Redis Database IP \n|Password|string|``\"\"``|Redis Database Password\n|Port|int|``6379``|Redis Database port\n|DB|int|``0``|Redis Database ID\n|TTL|int|``10``|Redis Time To Live (in seconds)\n|DNS|Section\n|XfrIPs|[]string|``*,192.0.2.9,192.0.2.98``|Allowed IPs for XFR transfer (``*`` for any)\n\n## What is working \n- Read records (stricts \u0026 wildcard) from MySQL\n- Read and write records (stricts \u0026 wildcard) in Redis\n- Recursive wildcard for reverse DNS (IPv6 only) \n- Generate dynamic reverse DNS (IPv6 only)\n- Respond to all requested MySQL queries \n\n## ToDo\n- Recursive wildcard for reverse DNS (IPv4 part) \n- Generate dynamic reverse DNS (IPv4 part)\n- XFR \n- DNSSEC \n- Unit tests \n\n\n## License\n[![FOSSA Status](https://app.fossa.com/api/projects/git%2Bgithub.com%2Foutout14%2Fsacrebleu-dns.svg?type=large)](https://app.fossa.com/projects/git%2Bgithub.com%2Foutout14%2Fsacrebleu-dns?ref=badge_large)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foutout14%2Fsacrebleu-dns","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Foutout14%2Fsacrebleu-dns","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foutout14%2Fsacrebleu-dns/lists"}