edu-yatharth

edu.yatharth.org

The one-page public website for Yatharth International, a pre-school at 20, Navdurga Colony, Malviya Nagar, Jaipur 302017, Rajasthan (phone 0141 6655323).

It exists so the school has an active website on its own domain when applying for Google Workspace for Education.

Layout

Path Published? Purpose
docs/index.html yes The whole site: one file, inline CSS, no JavaScript
docs/404.html yes Shown for any missing path
docs/CNAME yes The custom domain, edu.yatharth.org (do not edit)
docs/.nojekyll yes Serves files as-is, with no Jekyll build
README.md no These notes

GitHub Pages publishes only docs/. Everything in docs/ is public on the internet, even though this repository is private.

Content rule

Only put confirmed facts on the site. Today those are the name, “pre-school”, the address with PIN, and the phone number. Do not add class names, hours, recognition or affiliation numbers, founding year, staff names, student counts, fees or admission dates unless the school has confirmed them. A reviewer compares the site against the application form and the recognition document, so the name, address and phone must read the same in all three.

When content changes, update the “Last updated” date in the footer of docs/index.html.

Do not

One-time setup

1. GitHub

Before configuring Pages, make sure main contains docs/ (merge the site pull request first). Otherwise the /docs source is empty, and saving the custom domain makes GitHub commit its own docs/CNAME to main.

  1. Check the ysurolia account first. yatharth.org and www are served from ysurolia, and DNS has a GitHub challenge record for it on the apex. Sign in as ysurolia and open https://github.com/settings/pages > Verified domains. If yatharth.org is verified there, GitHub lets only ysurolia’s repositories use its immediate subdomains, so this repository cannot use edu.yatharth.org. Pick one:
    • Remove that verification in ysurolia. The apex and www then lose GitHub’s takeover protection.
    • Or transfer this repository to ysurolia. Then read every manzill-surolia below as ysurolia: that account needs GitHub Pro (or the repository must be public), the DNS record becomes edu → ysurolia.github.io, and you verify edu.yatharth.org from ysurolia instead.
  2. Confirm the manzill-surolia account is on GitHub Pro (Settings > Billing and plans).
  3. Signed in as manzill-surolia, open https://github.com/settings/pages > Verified domains and verify edu.yatharth.org only. Its TXT record is already in DNS.
    • Do not verify yatharth.org from this account. Verifying the apex here would detach ysurolia’s site from it. If yatharth.org is listed here as unverified, delete that entry and never click Verify.
  4. In this repository, open Settings > Pages:
    • Source: Deploy from a branch
    • Branch: main, folder /docs
    • Custom domain: edu.yatharth.org > Save

2. DNS (GoDaddy, zone yatharth.org)

Add one record:

Type Name Value TTL
CNAME edu manzill-surolia.github.io 1 hour

Do not change @, www, the existing MX/TXT records, _github-pages-challenge-manzill-surolia.edu or _github-pages-challenge-ysurolia. Do not add a wildcard (*) record.

Check it with dig +short edu.yatharth.org CNAME, which should print manzill-surolia.github.io.

3. HTTPS

Back in Settings > Pages, wait for “DNS check successful”. GitHub then issues a certificate, which can take up to 24 hours. Tick Enforce HTTPS. If it is stuck on “Certificate not yet created”, remove the custom domain and add it again. GitHub commits the removal and re-adding of docs/CNAME to main, so git pull before your next edit, and tick Enforce HTTPS again once the certificate is issued.

Then open https://edu.yatharth.org in a private window on a phone.

4. Google Workspace for Education sign-up

Eligibility note: Google’s published criteria cover government-recognised K-12 schools and do not mention pre-schools. A pre-school-only application may be declined whatever the website shows.

Later: email at @edu.yatharth.org

A CNAME at edu blocks the MX and TXT records that Gmail needs. To add email after approval, replace the CNAME with these records, all named edu, in one sitting (the site is unreachable between steps 1 and 3):

  1. Delete the edu CNAME. GoDaddy will not accept other records at edu while it exists.
  2. Add MX smtp.google.com, priority 1, and TXT v=spf1 include:_spf.google.com ~all.
  3. Add the GitHub Pages addresses:
    • A 185.199.108.153, 185.199.109.153, 185.199.110.153, 185.199.111.153
    • AAAA 2606:50c0:8000::153, 2606:50c0:8001::153, 2606:50c0:8002::153, 2606:50c0:8003::153
  4. In Settings > Pages, remove and re-add the custom domain so the DNS check and HTTPS certificate run again. When the certificate shows, make sure Enforce HTTPS is ticked. GitHub commits the docs/CNAME removal and re-adding to main, so git pull before your next edit.
  5. Add DKIM (google._domainkey.edu) from the Admin console.

Add the MX record before or with the A records. GitHub’s DNS check only accepts A records on a subdomain when an MX record is present.

Local preview

python3 -m http.server 8080 --directory docs
# open http://localhost:8080/