{"id":17968297,"url":"https://github.com/twixes/backname","last_synced_at":"2025-04-09T22:18:01.922Z","repository":{"id":196400527,"uuid":"692833181","full_name":"Twixes/backname","owner":"Twixes","description":"🌐 A DNS server where every IP address gets its own domain","archived":false,"fork":false,"pushed_at":"2025-01-26T00:05:56.000Z","size":84,"stargazers_count":71,"open_issues_count":3,"forks_count":4,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-04-09T22:17:58.521Z","etag":null,"topics":["dns","dns-server","go","golang"],"latest_commit_sha":null,"homepage":"https://backname.io/","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Twixes.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}},"created_at":"2023-09-17T18:08:45.000Z","updated_at":"2025-03-11T21:30:58.000Z","dependencies_parsed_at":null,"dependency_job_id":"3394ef11-c2c5-4136-9c5f-c015c1e3757b","html_url":"https://github.com/Twixes/backname","commit_stats":{"total_commits":49,"total_committers":2,"mean_commits":24.5,"dds":"0.061224489795918324","last_synced_commit":"9bfc944fa425234d3be23f7f598517240bf56149"},"previous_names":["twixes/backname"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Twixes%2Fbackname","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Twixes%2Fbackname/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Twixes%2Fbackname/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Twixes%2Fbackname/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Twixes","download_url":"https://codeload.github.com/Twixes/backname/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248119286,"owners_count":21050755,"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":["dns","dns-server","go","golang"],"created_at":"2024-10-29T14:20:53.306Z","updated_at":"2025-04-09T22:18:01.902Z","avatar_url":"https://github.com/Twixes.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Backname\n\nBackname is a DNS server that gives every IP address its very own domain:\n\n- **142.250.147.138.backname.io** resolves to **142.250.147.138**  \n  _IPv4 with dots_\n- **127-0-0-1.backname.io** resolves to **127.0.0.1**  \n  _IPv4 with dashes_\n- **2a00.1450.401b.810.0.0.0.200e.backname.io** resolves to **2a00:1450:401b:810::200e**  \n  _IPv6 with dots_\n- **0--1.backname.io** resolves to **::1**  \n  _IPv6 with dashes_\n\nThe service is live publicly and for free over at [backname.io](https://backname.io), but feel free to host your own instance if you wish.\n\n## Self-hosting\n\nHosting Backname yourself is easy with `docker compose`.\n\nThe only prerequisite: a Linux server instance with a public IPv4 address attached, and with `git` + `docker compose` installed.\n\nWith the server instance ready, follow the steps below:\n\n1. Get Backname onto your disk, e.g. in your home directory (`~`):\n\n    ```bash\n    git clone https://github.com/Twixes/backname.git\n    ```\n\n2. Enter the `backname` directory:\n\n    ```bash\n    cd backname\n    ```\n\n3. Use your favorite text editor to create the `.env` file storing configuration:\n\n    ```bash\n    nano .env\n    ```\n\n    This file must follow the format below. Only `ZONE` and `NAMESERVER_A` are _required_ for operation:\n\n    ```bash\n    # The domain name under which Backname will be running (real-world example: backname.io)\n    ZONE=your-backname-domain.com\n    # The public IPv4 address of this server hosting Backname (in a dual-server setup, two comma-separated addresses)\n    NAMESERVER_A=123.123.123.123\n    # Optional: The public IPv6 address of this server hosting Backname, if supporting IPv6 (in a dual-server setup, two comma-separated addresses)\n    NAMESERVER_AAAA=\n    # Optional: Website A and/or AAAA records that will be served for your-backname-domain.com + www.your-backname-domain.com (comma-separated)\n    WEBSITE_A=\n    WEBSITE_AAAA=\n    # Optional: TXT record values server at the root of the zone (comma-separated), if needed for e.g. domain verification\n    ROOT_TXT=\n    # Optional: IP addresses blocked from receiving a backname (comma-separated), if seeing problematic usage\n    BLOCKLIST=\n    ```\n\n    Once done, save the `.env` file.\n\n4. Start the Backname server:\n\n    ```bash\n    docker compose up -d\n    ```\n\n    \u003e In older versions of Docker, the command may be `docker-compose` with a hyphen.\n\n5. Verify that startup succeeded:\n\n    ```bash\n    docker compose logs\n    ```\n\n    You should be seeing `DNS server listening on :53` at the very top. If that is the case, the Backname server is now ready to process DNS queries!\n\n6. The final step is to configure your domain (`ZONE`) to use this server for its own DNS resolution:\n\n    1. Go to your domain registrar's DNS settings for the domain.\n    2. Set the domain's nameservers to:\n\n          ```plaintext\n          alpha.your-backname-domain.com\n          ```\n\n        \u003cdetails\u003e\n          \u003csummary\u003eDual-server setup\u003c/summary\u003e\n\n          ```plaintext\n          alpha.your-backname-domain.com\n          omega.your-backname-domain.com\n          ```\n\n        \u003c/details\u003e\n\n          Do not change try to change these subdomains from `alpha` and `omega` to something else – they are hard-coded.\n\n    3. Also set **glue records** so that the nameservers can be found initially:\n\n          ```plaintext\n          alpha.your-backname-domain.com → value of NAMESERVER_A\n          ```\n\n          If supporting IPv6:\n\n          ```plaintext\n          alpha.your-backname-domain.com → value of NAMESERVER_A\n          alpha.your-backname-domain.com → value of NAMESERVER_AAAA\n          ```\n\n        \u003cdetails\u003e\n          \u003csummary\u003eDual-server setup\u003c/summary\u003e\n\n       ##### IPv4-only\n\n        ```plaintext\n        alpha.your-backname-domain.com → first value in NAMESERVER_A\n        omega.your-backname-domain.com → second value in NAMESERVER_A\n        ```\n\n       ##### IPv4 + IPv6\n\n        ```plaintext\n        alpha.your-backname-domain.com → first value in NAMESERVER_A\n        alpha.your-backname-domain.com → first value in NAMESERVER_AAAA\n        omega.your-backname-domain.com → second value in NAMESERVER_A\n        omega.your-backname-domain.com → second value in NAMESERVER_AAAA\n        ```\n\n        \u003c/details\u003e\n\n7. Now wait for DNS propagation to complete. It can be quick but _may_ take up to 48 hours.\n\n    Use `dig NS your-backname-domain.com` to check the status of propagation. Once this command returns `alpha.your-backname-domain.co` – your Backname DNS is operational!\n\n### Achieving high availability\n\nFor redundancy, you should host two Backname instances in different data centers. In that case everything stays the same, except that `NAMESERVER_A` (and optionally `NAMESERVER_AAAA` too) contains two comma-separated IP address values, rather than just one (refer to \"dual-server setup\" annotations in the steps above).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftwixes%2Fbackname","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftwixes%2Fbackname","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftwixes%2Fbackname/lists"}