{"id":21375036,"url":"https://github.com/nathanwoodburn/hns-server","last_synced_at":"2025-07-13T09:32:23.687Z","repository":{"id":65751253,"uuid":"589799474","full_name":"Nathanwoodburn/HNS-server","owner":"Nathanwoodburn","description":"Collection of scripts to make setting up stuff related to Handshake easier","archived":false,"fork":false,"pushed_at":"2024-02-01T14:49:17.000Z","size":271,"stargazers_count":20,"open_issues_count":0,"forks_count":7,"subscribers_count":3,"default_branch":"main","last_synced_at":"2024-02-01T16:28:00.176Z","etag":null,"topics":["handshake","handshake-protocol","hns","nginx","proxy"],"latest_commit_sha":null,"homepage":"","language":"Shell","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/Nathanwoodburn.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","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}},"created_at":"2023-01-17T00:46:04.000Z","updated_at":"2023-09-27T20:42:23.000Z","dependencies_parsed_at":"2023-02-23T14:30:13.768Z","dependency_job_id":"1b15edb4-54d0-411e-95f0-f1ac1df8c23f","html_url":"https://github.com/Nathanwoodburn/HNS-server","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/Nathanwoodburn%2FHNS-server","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Nathanwoodburn%2FHNS-server/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Nathanwoodburn%2FHNS-server/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Nathanwoodburn%2FHNS-server/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Nathanwoodburn","download_url":"https://codeload.github.com/Nathanwoodburn/HNS-server/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":225869908,"owners_count":17537169,"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":["handshake","handshake-protocol","hns","nginx","proxy"],"created_at":"2024-11-22T08:46:39.932Z","updated_at":"2024-11-22T08:46:40.629Z","avatar_url":"https://github.com/Nathanwoodburn.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# HNS-server\n+ [NGINX HNS](#nginx-hns)  \n+ [NGINX ICANN](#nginx-icann)  \n+ [Redirect/Mirror Automation](#automation)\n+ [Varo Clone](varo)  \n+ [MariaDB Replication (after Varo cloning)](sql)  \n+ [Email Server](email)\n+ [DoH Server](doh.md)\n+ [HSD Scripts](hsd)\n+ [Varo Auth](varo-auth)\n\n\n# NGINX-HNS\nRun Installation scripts as below.  \nThen add A record to point to your server and add the TLSA generated by the script to your DNS.  \nRunning these scripts without arguments will start the interactive mode which will ask you for each variable.  \nVariables should be in this format (changing as needed)  \nDomain: `woodburn` or for slds `nathan.woodburn`  \nLocation: `/var/www/woodburn`  \nURL: `https://nathan.woodburn.au` or `https://nathan.woodburn.au/about`  \n\n\n\n## Standard HNS domain with HTML content (TLD and Wildcard SLD)\nThis creates a website with TLD and SLD pointing to one directory.  \nThis installs nginx as well as setup HNS domains.  \nChange directory into the directory containing your website files.  \n`wget https://raw.githubusercontent.com/Nathanwoodburn/HNS-server/main/new`  \n`sudo chmod +x new`  \n`sudo ./new \u003cHNSDOMAIN\u003e`  \n\n\n## Standard HNS domain with HTML content (SLD only)\nSame as above without wildcard.  \nThis uses the prexisting SSL Cert.  \nSo add the same TLSA DNS record as the previously generated one.  \nChange directory into the directory containing your website files.  \n`wget https://raw.githubusercontent.com/Nathanwoodburn/HNS-server/main/addsld`  \n`sudo chmod +x addsld`  \n`sudo ./addsld \u003cHNSTLD\u003e \u003cHNSSLD\u003e` #For example nathan.woodburn would be `sudo ./addsld woodburn nathan`  \n\n## Proxy HNS domain to ICANN site (TLD and Wildcard SLD)\nThis will create a mirror of the ICANN site showing the Handshake domain in the url bar.\n\n`wget https://raw.githubusercontent.com/Nathanwoodburn/HNS-server/main/proxy`  \n`sudo chmod +x proxy`  \n`sudo ./proxy \u003cHNSDOMAIN\u003e \u003ctarget url\u003e`  \n\nExample proxy *.3dprintingservice -\u003e nathan3dprinting.au  \n`sudo ./proxy 3dprintingservice https://nathan3dprinting.au`  \n\n## Proxy HNS domain to ICANN site (SLD or TLD only)\nThis will create a mirror of the ICANN site showing the Handshake domain in the url bar.  \nThis will only proxy the provided SLD or TLD.  \nEg only proxy nathan.3dprintingservice  \n`wget https://raw.githubusercontent.com/Nathanwoodburn/HNS-server/main/proxy-sld`\n`sudo chmod +x proxy-sld`\n`sudo ./proxy-sld nathan.3dprintingservice https://nathan3dprinting.au`  \n\n## Redirect HNS domain to ICANN site (TLD and Wildcard SLD)\nReplace proxy with redirect to do a redirect instead of a mirror (proxy).  \n`wget https://raw.githubusercontent.com/Nathanwoodburn/HNS-server/main/redirect`   \n`sudo chmod +x redirect`  \n`sudo ./redirect \u003cHNSDOMAIN\u003e \u003ctarget url\u003e`  \n\n\n\n## Redirect HNS domain to ICANN site (SLD or TLD only)\nReplace proxy with redirect to do a redirect instead of a mirror (proxy).  \n`wget https://raw.githubusercontent.com/Nathanwoodburn/HNS-server/main/redirect-sld`  \n`sudo chmod +x redirect-sld`  \n`sudo ./redirect-sld nathan.3dprintingservice https://nathan3dprinting.au`  \n\n\n## Forgot your TLSA record?  \nThis script will find the TLSA record for you.  \n`wget https://raw.githubusercontent.com/Nathanwoodburn/HNS-server/main/tlsa`  \n`sudo chmod +x tlsa`  \n`./tlsa \u003cHNSTLD\u003e`\n\n# NGINX-ICANN\n\n## Standard ICANN domain with HTML content\nFirst add A record to point to your server so Letsencrypt can generate you SSL cert.  \nThen run this script  \n`wget https://raw.githubusercontent.com/Nathanwoodburn/HNS-server/main/newicann`  \n`sudo chmod +x newicann`  \n`sudo ./newicann \u003cDOMAIN\u003e`  \n\n## Proxy ICANN domain to another ICANN site\nEg proxy 3dprinting.woodburn.au -\u003e nathan3dprinting.au  \n`wget https://raw.githubusercontent.com/Nathanwoodburn/HNS-server/main/proxyicann`  \n`sudo chmod +x proxyicann`  \n`sudo ./proxyicann 3dprinting.woodburn.au https://nathan3dprinting.au`  \n\n## Redirect ICANN domain to another ICANN site\nEg redirect 3dprinting.woodburn.au -\u003e nathan3dprinting.au  \n`wget https://raw.githubusercontent.com/Nathanwoodburn/HNS-server/main/redirecticann`  \n`sudo chmod +x redirecticann`  \n`sudo ./redirecticann 3dprinting.woodburn.au https://nathan3dprinting.au`  \n\n\n# Wordpress\n## Wordpress with HNS domain\n```sh\nwget https://raw.githubusercontent.com/Nathanwoodburn/HNS-server/main/wp.sh\nsudo chmod +x wp.sh\nsudo ./wp.sh \u003cHNSDOMAIN\u003e\n```\n\nIf you want to have multiple wordpress sites on the same server you can use the following command to create a new wordpress site. The port offset only affects the port used for the wordpress site. The port used for the HNS domain will always be 80 \u0026 443.\n```sh\nsudo ./wp.sh \u003cHNSDOMAIN\u003e \u003cPORT OFFSET\u003e\n```\n\n# Static html site from Git repo\n```sh\nwget https://raw.githubusercontent.com/Nathanwoodburn/HNS-server/main/git.sh\nsudo chmod +x git.sh\nsudo ./git.sh \u003cHNSDOMAIN\u003e \u003cGIT REPO\u003e\n```\n\n\n\n# Automation\n\n## csv File Format\nThe csv file should be format  \n`\u003cHNSDOMAIN\u003e,\u003cTARGETURL\u003e`  \nEg  \n`3dprintingservice,https://nathan3dprinting.au`  \nPlease note you need a header row as this script will not use the first row of the csv file.\n\n## Proxy HNS domain to ICANN site\n`wget https://raw.githubusercontent.com/Nathanwoodburn/HNS-server/main/proxy-csv.sh`  \n`sudo chmod +x proxy-csv.sh`  \n`sudo ./proxy-csv.sh \u003ccsv file\u003e`  \n\n## Redirect HNS domain to ICANN site\n`wget https://raw.githubusercontent.com/Nathanwoodburn/HNS-server/main/redirect-csv.sh`  \n`sudo chmod +x redirect-csv.sh`  \n`sudo ./redirect-csv.sh \u003ccsv file\u003e`  ","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnathanwoodburn%2Fhns-server","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnathanwoodburn%2Fhns-server","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnathanwoodburn%2Fhns-server/lists"}