Giter Site home page Giter Site logo

denosaurs / mod.land Goto Github PK

View Code? Open in Web Editor NEW
195.0 5.0 46.0 8.54 MB

๐Ÿ“ฆ Pretty subdomains for you deno project

Home Page: https://mod.land

License: MIT License

JavaScript 4.37% CSS 11.08% TypeScript 36.21% SCSS 10.27% MDX 38.07%
community domains deno project hacktoberfest

mod.land's Introduction

*.mod.land

๐Ÿ“ฆ Pretty subdomains for your deno project.

Checks Status Deploy Status DNS Status

Taking inspiration from the great js.org project we at @denosaurs thought of giving something back to the deno community: a free and sleek URL where you can host a free website for your deno project.

How to get one?

Pretty simple.

Step 1 - Create and statically host a website

Find a static site hosting service (we recommend GitHub Pages) and create your site. If you need some inspiration, this site is built and hosted with GitHub Pages and deployed with GitHub Actions.

Step 2 - Choose your subdomain

Now you should determine your mod.land subdomain: either choose your username or the name of your repository, according to the existing GitHub Pages URL (for http://foo.github.io/bar, either "foo.mod.land" or "bar.mod.land" would be possible).

Step 3 - Add a CNAME to your repo

Add a file named "CNAME" to your root directory of your repository (or in the "gh-pages" branch, if you use that) with a single line matching the domain you have chosen (e.g. "foo.mod.land" without quotes). For more info about this step you can follow the Custom URLs section at GitHub Pages Help.

+ foo.mod.land

Step 4 - Claim your subdomain

To finish the procedure, make a pull request in our GitHub repository that adds your subdomain to the list of existing mod.land domains. Your new URL should go live within 24 hours (keep an eye on your pull request in case of a naming conflict or a question from our side).

import { CNAMEs } from "./mod/types.ts";

export default <CNAMEs> {
  "@": {
    target: "denosaurs.github.io/mod.land",
  },
+ "foo": {
+   target: "foo.github.io/bar",
+ }
};

For advanced users

Our subdomain are CNAME records which map one domain name to another. You can actually point your mod.land to many different services like Vercel or Netlify.

Important

As the owner of the repository, you keep complete control over your published content. That also means that all rights and duties that come along with publishing a GitHub Page (e.g. GDPR) remain in your responsibility.

Thanks

... to Cloudflare for their superb DNS service that makes this possible. Many thanks!

mod.land's People

Contributors

adkimsm avatar akiacode avatar ayntee avatar boywithkeyboard avatar buttercubz avatar carrotzrule123 avatar chaitanyarahalkar avatar code913 avatar djdeveloperr avatar eliassjogreen avatar eser avatar falentio avatar gamertike avatar ghaerdi avatar godwhitetaiwan avatar imjamesb avatar itohatweb avatar jeroenptrs avatar leonskidev avatar littledivy avatar load1n9 avatar minecodes avatar mirakelor avatar notfilippo avatar notgabry avatar salemalem avatar sinkaroid avatar skillz4killz avatar tejasag avatar tricked-dev avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

mod.land's Issues

Prove Ownership

I tried adding the subdomain to my vercel website , but it says this:

image

Just like #35
But now it seems that we can Set the following TXT record on _vercel.mod.land to prove ownership to solve the problem

Typo in repo description

-๐Ÿ“ฆ Pretty subdomains for you deno project
+๐Ÿ“ฆ Pretty subdomains for your deno project

CI based CNAME verfication

Describe change
Every PR will have to pass the verfication CI inorder to get mergable status.

Additional context
Avoids manual verfication. Happy to create a PR ๐Ÿ˜„

Subdomain of domain

Would it be possible to have a domain that looks like this? foo.bar.mod.land

I want to have app.mod.land AND api.app.mod.land at the same time, both pointing to different urlโ€™s, if possible.

Funding

  • You can sponsor this specific effort via a Polar.sh pledge below
  • We receive the pledge once the issue is completed & verified
Fund with Polar

Lint action fails because of files other than cnames.ts

Describe the bug
When you edit cnames.ts to add your domain and make a pull request, there are two checks that are run. First it checks if the file passes deno fmt and second it checks if the file passes deno lint. However, due to linting errors in files other than cnames.ts (that we little dinos didnt touch) it always fails.

To Reproduce
Steps to reproduce the behavior:

  • Fork repo
  • Edit cnames.ts and add your domain
  • Make sure you made no errors in cnames.ts
  • Make a pull request to the main repo

Expected behavior
The checks pass.

Additional context
All fmt checks pass but lint check fails on some other files.

Fixes #18

Status of existing subdomains

As of 2022-03-04T20:58:58.442Z, checking all subdomains of https://mod.land/ via the following script:

import CNAMES from 'https://raw.githubusercontent.com/denosaurs/mod.land/master/cnames.ts'

const domains = Object.keys(CNAMES).filter(CNAME => CNAME !== '@').map(CNAME => `${CNAME}.mod.land`)

for (const domain of domains) {
    Deno.stdout.writeSync(new TextEncoder().encode(`Checking ${domain}... `))

    try {
        const res = await fetch(`https://${domain}/`, {
            redirect: 'manual',
        })

        if (res.status === 200) {
            console.log('OK')
            continue
        }

        const meta: Record<string, unknown> = {
            status: res.status,
        }

        if (res.status > 300 && res.status < 399)
            meta.location = res.headers.get('location')

        console.error(meta)
    } catch (e) {
        console.error(e)
    }
}
Checking adons.mod.land... { status: 404 }
Checking atordvairn.mod.land... { status: 404 }
Checking autopilot.mod.land... OK
Checking crewdevio.mod.land... OK
Checking denodoc.mod.land... Sending fatal alert BadCertificate
TypeError: error sending request for url (https://denodoc.mod.land/): error trying to connect: invalid peer certificate contents: invalid peer certificate: CertNotValidForName
    at async mainFetch (deno:ext/fetch/26_fetch.js:280:14)
Checking denopack.mod.land... OK
Checking dext.mod.land... OK
Checking discordbot.mod.land... OK
Checking discorddn.mod.land... OK
Checking discordeno.mod.land... OK
Checking dyno.mod.land... { status: 404 }
Checking gamer.mod.land... OK
Checking ghaerdi.mod.land... OK
Checking god.mod.land... { status: 404 }
Checking godwhite.mod.land... { status: 404 }
Checking harmony.mod.land... OK
Checking harmony-korean.mod.land... { status: 404 }
Checking imlshorid.mod.land... OK
Checking keyv.mod.land... OK
Checking natico.mod.land... OK
Checking range.mod.land... OK
Checking shyngys.mod.land... OK
Checking slashdeno.mod.land... OK
Checking suzumi.mod.land... { status: 301, location: "https://suzumi.mod.land/" }
Checking the-all-javascript-blog.mod.land... { status: 404 }
Checking thebigbot.mod.land... OK
Checking usbo.mod.land... OK
Checking x.mod.land... { status: 307, location: "https://x.mod.land/" }

Probably worth removing old domains with 404 status and remind owners of domains with 3xx status.

Funding

  • You can sponsor this specific effort via a Polar.sh pledge below
  • We receive the pledge once the issue is completed & verified
Fund with Polar

Error Too Many Redirects

Describe the bug If I go to gabry.mod.land my browser says To Many Redirects

To Reproduce Steps to reproduce the behavior:

  1. Go to gabry.mod.land.
  2. Wait
  3. See error

Expected behavior I expect my website (gabry.cf)
(I think this is an ssl problem)

what is CNAME?

I don't understand what is meant by adding a CNMAE in my project?
And If I make a gh pages in my repo what will be the link to my mod.ts file?

Can I claim more than one subdomain?
Can I later change the target for my subdomain or is it permanant?
Does this work with private repos?

And do yuo have a discord server where I can ask more or somewhere else. Ty and sorry for the dumb questions.

MX or NS records

Can you add support for MX records so users can also use it for emails. NS records would be good so you don't need to wait for PR approve when you want to change DNS records for your subdomain

Funding

  • You can sponsor this specific effort via a Polar.sh pledge below
  • We receive the pledge once the issue is completed & verified
Fund with Polar

Adding mod.land to Public Suffix List

Describe change I suggest you add mod.land to the Public Suffix List, in the likes of other similar free subdomain services like eu.org and js.org.

Additional context This would help against supercookies and other issues (i.e. per-domain rate limits)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.