Skip to content

Commit

Permalink
Make the repository for personal use only
Browse files Browse the repository at this point in the history
  • Loading branch information
tarampampam committed Aug 12, 2024
1 parent 8795cfe commit f76acba
Show file tree
Hide file tree
Showing 68 changed files with 815 additions and 1,799 deletions.
15 changes: 0 additions & 15 deletions .github/PULL_REQUEST_TEMPLATE.md

This file was deleted.

25 changes: 0 additions & 25 deletions .github/workflows/dependabot.yml

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,10 +1,13 @@
# yaml-language-server: $schema=https://json.schemastore.org/github-workflow.json
# docs: https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions

name: 🚀 Deploy the DNS records

on:
workflow_dispatch: {}
push:
branches: [master, main]
paths: [domains/**, .github/workflows/deploy.yml]
paths: [zones/**, dnsconfig.js, .github/workflows/deploy-records.yml]

concurrency:
group: ${{ github.ref }}-deploy
Expand All @@ -17,12 +20,9 @@ jobs:
environment: production
steps:
- uses: actions/checkout@v4

- uses: gacts/install-dnscontrol@v1

- name: Create credentials file
run: echo '{"cloudflare":{"TYPE":"CLOUDFLAREAPI","accountid":"$CF_ID","apitoken":"$CF_TOKEN"}}' > ./creds.json

- run: dnscontrol push
env:
CF_ID: ${{ secrets.CF_ACCOUNT_ID }}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,17 +1,20 @@
# yaml-language-server: $schema=https://json.schemastore.org/github-workflow.json
# docs: https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions

name: 🚀 Deploy the website

on:
push:
branches: [master, main]
paths: [web/**, .github/workflows/website.yml]
paths: [sites/**, .github/workflows/deploy-sites.yml]

concurrency:
group: ${{ github.ref }}-website
cancel-in-progress: true

jobs:
update:
name: 🖼 Deploy the website
is-an-app:
name: 🖼 Deploy the is-an.app website
permissions:
pages: write
id-token: write
Expand All @@ -21,10 +24,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

- uses: actions/configure-pages@v5

- uses: actions/upload-pages-artifact@v3
with: {path: web}

with: {path: sites/is-an.app}
- {uses: actions/deploy-pages@v1, id: deployment}
44 changes: 0 additions & 44 deletions .github/workflows/pr.yml

This file was deleted.

13 changes: 6 additions & 7 deletions .github/workflows/tests.yml
Original file line number Diff line number Diff line change
@@ -1,13 +1,16 @@
# yaml-language-server: $schema=https://json.schemastore.org/github-workflow.json
# docs: https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions

name: 🧪 Tests

on:
workflow_dispatch: {}
push:
branches: [master, main]
tags-ignore: ['**']
paths-ignore: ['**.md', 'web/**']
paths-ignore: ['**.md', 'sites/**']
pull_request:
paths-ignore: ['**.md', 'web/**']
paths-ignore: ['**.md', 'sites/**']

concurrency:
group: ${{ github.ref }}-tests
Expand All @@ -18,17 +21,13 @@ jobs:
name: 🔐 GitLeaks
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with: {fetch-depth: 0}

- {uses: actions/checkout@v4, with: {fetch-depth: 0}}
- uses: gacts/gitleaks@v1

check:
name: 🌐 DNSControl check
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

- uses: gacts/install-dnscontrol@v1

- run: dnscontrol check
21 changes: 0 additions & 21 deletions LICENSE

This file was deleted.

144 changes: 10 additions & 134 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,143 +1,19 @@
<div align="center">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://socialify.git.ci/tarampampam/free-domains/image?description=1&font=Raleway&forks=1&issues=1&owner=0&pulls=1&pattern=Solid&stargazers=1&theme=Dark">
<img src="https://socialify.git.ci/tarampampam/free-domains/image?description=1&font=Raleway&forks=1&issues=1&owner=0&pulls=1&pattern=Solid&stargazers=1&theme=Light">
</picture>
<br/>
<br/>

[![Tests Status][badge-tests]][actions]
[![Deploy Status][badge-deploy]][deploy]
![badge-domains]
</div>

> **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`](https://is-an.app/) | ![cf][badge-cf] ![dnssec][badge-dnssec] ![ssl][badge-ssl] |
|`*.1bt.uk` | ![cf][badge-cf] ![dnssec][badge-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.
[badge-cf]:https://shields.io/badge/%20-cloudflare-blue?logo=cloudflare&style=plastic?cacheSeconds=3600
[badge-dnssec]:https://shields.io/badge/%20-DNSSEC-blue?logo=moleculer&logoColor=white&style=plastic?cacheSeconds=3600
[badge-ssl]:https://shields.io/badge/SSL-Required-blue?style=plastic?cacheSeconds=3600

## 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][dnssec] |||
| Email |||
| SSL/TLS * | [Full][ssl-full] | [Flexible][ssl-flex] |
| 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][caching-levels], Browser Cache TTL * | Standard, 4 hours | Standard, 4 hours |
| [Crawler Hints][crawler-hints] * |||
| [HTTP/2][http2], [HTTP/2 to Origin][http2-to-origin], HTTP/3 (with QUIC) * |||
| [0-RTT Connection Resumption][0rtt] * |||
| [gRPC][grpc], WebSockets * |||
| [Pseudo IPv4][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
[dnssec]:https://developers.cloudflare.com/dns/additional-options/dnssec
[ssl-full]:https://developers.cloudflare.com/ssl/origin-configuration/ssl-modes/full/
[ssl-flex]:https://developers.cloudflare.com/ssl/origin-configuration/ssl-modes/flexible/
[caching-levels]:https://developers.cloudflare.com/cache/how-to/set-caching-levels
[crawler-hints]:https://blog.cloudflare.com/crawler-hints-how-cloudflare-is-reducing-the-environmental-impact-of-web-searches/
[http2]:https://www.cloudflare.com/website-optimization/http2/what-is-http2/
[http2-to-origin]:https://developers.cloudflare.com/cache/how-to/enable-http2-to-origin
[0rtt]:https://developers.cloudflare.com/fundamentals/network/0-rtt-connection-resumption/
[grpc]:https://support.cloudflare.com/hc/en-us/articles/360050483011
[pseudo-ipv4]:https://support.cloudflare.com/hc/en-us/articles/229666767

# How to get one?

1. Make a PR to this repository (follow [this guide](https://github.com/firstcontributions/first-contributions)
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):

```javascript
// 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,
// }]
})
```

4. 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!_
5. After the pull request is merged, please allow up to 24 hours for the changes to propagate _(usually, it
takes 5..15 minutes)_
6. 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](https://github.com/tarampampam/free-domains/pull/300).

## If you don't know...
</div>

- What is GitHub pages and how to set up a custom domain, read the [docs here](https://docs.github.com/en/pages/configuring-a-custom-domain-for-your-github-pages-site)
- The difference between `A`, `CNAME`, and other record types, the article on Wikipedia [is here](https://en.wikipedia.org/wiki/List_of_DNS_record_types)
[badge-tests]:https://img.shields.io/github/actions/workflow/status/tarampampam/free-domains/tests.yml?branch=master&label=tests&logo=github
[badge-deploy]:https://img.shields.io/github/actions/workflow/status/tarampampam/free-domains/deploy.yml?branch=master&label=deploy&logo=github
[actions]:https://github.com/tarampampam/free-domains/actions
[deploy]:https://github.com/tarampampam/free-domains/actions/workflows/deploy.yml

> 🔍 A few similar services can be [found here](https://free-for.dev/#/?id=domain).
# DNS Configuration

[badge-tests]:https://img.shields.io/github/actions/workflow/status/tarampampam/free-domains/tests.yml?branch=master&label=tests&logo=github&style=for-the-badge
[badge-deploy]:https://img.shields.io/github/actions/workflow/status/tarampampam/free-domains/deploy.yml?branch=master&label=deploy&logo=github&style=for-the-badge
[badge-domains]:https://img.shields.io/github/directory-file-count/tarampampam/free-domains/domains?label=domains&style=for-the-badge&type=file
This repository contains DNS records for some of my domains, allowing me to manage them as code.

[actions]:https://github.com/tarampampam/free-domains/actions
[deploy]:https://github.com/tarampampam/free-domains/actions/workflows/deploy.yml
> [!NOTE]
> Previously, I was able to accept PRs with new records. However, due to numerous irrelevant domain
> requests, I have decided to close this option.
Loading

0 comments on commit f76acba

Please sign in to comment.