/free-domains

🌐 Grab your own subdomain (for personal sites, open-source projects, and more) for free

Primary LanguageJavaScriptMIT LicenseMIT



Tests Status Deploy Status badge-domains

Due to numerous nonsensical domain requests since the creation of this repository, I have temporarily restricted interactions to previously contributed developers.

Free subdomains for personal sites, open-source projects, and more. Here is a list of supported domain names:

Domain name Features
*.is-an.app cf dnssec ssl
*.1bt.uk cf dnssec

Wildcards (like *.foo.is-an.app) are supported too, but the reason for their registration should be very clear and described in detail. Open an issue before the wildcard subdomain request with a clear description.

Why?

First of all, I want to answer one important question - "Why are you giving out domains for free?". Because sometimes I need domains for my pet projects, and instead of buying new domains every time, I decided to buy one for everyone, and use subdomains. And why not share them with the community?

Please, register domains only for existing projects - empty or misconfigured sites will be removed after some time (I do it manually, with notifications before the cleaning).

Domains settings

Option *.is-an.app *.1bt.uk
DNSSEC
Email
SSL/TLS * Full Flexible
Always Use HTTPS *
HTTP Strict Transport Security (HSTS)
Minimum TLS Version * TLS 1.2 TLS 1.2
Opportunistic Encryption, TLS 1.3 *
WAF (Web Application Firewall) * ✅ (Medium Security Level) ✅ (Medium Security Level)
Browser Integrity Check *
Caching Level, Browser Cache TTL * Standard, 4 hours Standard, 4 hours
Crawler Hints *
HTTP/2, HTTP/2 to Origin, HTTP/3 (with QUIC) *
0-RTT Connection Resumption *
gRPC, WebSockets *
Pseudo IPv4 * Add header Add header
IP Geolocation (HTTP header CF-IPCountry) *
Maximum Upload Size * 100 MB 100 MB

* Available only when proxying ("proxy": true) is enabled

How to get one?

  1. Make a PR to this repository (follow this guide if you don't know how to make a contributions)
  2. Add a new file called <your-subdomain-name>.<root-domain>.js (in lower case) in the ./domains folder to register <your-subdomain-name> subdomain
  3. Edit it (below is just an example, provide a valid JS file with your needs):
// for more details watch the file `./domains.d.ts`

addSubDomain({
  description: '...', // describe your project in this field
  domain: '1bt.uk', // aka "root-domain". select between '1bt.uk' and 'is-an.app'
  subdomain: 'foobar', // desired subdomain name
  owner: {
    repo: '<https://URL/to/the/repository/with/your/project/sources/if/it/is/public>',
    email: '<your-public@email.address>',
  },
  record: {
    CNAME: '<cname-domain>', // e.g.: <your-github-account>.github.io
    TXT: ['list', 'of', 'required', 'txt', 'records'],
    A: ['list', 'of', 'IPv4', 'addresses', 'like', 'a', '127.0.0.1'],
    AAAA: ['list', 'of', 'IPv6', 'addresses', 'like', 'a', '::1'],
    NS: ['list', 'of', 'nameservers'],
  },
  //proxy: false, // disable Cloudflare proxy (with is enabled by default). In this case, your origin server
                  // should provide valid a SSL certificate and protection CF will be disabled
  // nested: [{ // in addition, you may define the required nested subdomains
  //   subdomain: 'foo',
  //   record: {
  //     CNAME: '...',
  //   },
  //   proxy: false,
  // }, {
  //   subdomain: 'bar',
  //   record: {
  //     A: ['...'],
  //   },
  //   proxy: true,
  // }]
})
  1. Your pull request will be reviewed and merged. Please, don't ignore the PR checklist. If you ignore this repository rules, your PR will be ignored too. Make sure to keep an eye on it in case we need you to make any changes!
  2. After the pull request is merged, please allow up to 24 hours for the changes to propagate (usually, it takes 5..15 minutes)
  3. Enjoy your new domain!

Domains, used for illegal purposes will be removed and permanently banned. Please, provide a clear description of your resource in the PR.

⚠ To validate the project domain, registered on the Vercel platform - please, provide full information about the required verification records in the PR description or separate issue. I need to add them to the DNS zone manually. A correct PR example can be found here.

If you don't know...

  • What is GitHub pages and how to set up a custom domain, read the docs here
  • The difference between A, CNAME, and other record types, the article on Wikipedia is here

🔍 A few similar services can be found here.