Files
teahub/pages/README.md
T

1.2 KiB

Teahub pages (green-tea-pages)

The pages convention for orgs on prod: an org's public site repo is served at its domain. PAGES_SITES in fly.toml maps hostnames to org/site. The server clones each repo over https (no token), serves static files (directory → index.html, missing → 404.html), and re-pulls every 5 minutes or on POST /_hook/<org>/site (a Gitea webhook on the repo, push events, no secret: the hook only triggers a pull of public content).

Adding a site: a line in PAGES_SITES + fly deploy (operator lane), fly certs add <host>, the _acme-challenge CNAME, then A/AAAA to the app's IPs (fly ips list), and a push webhook on the site repo.

Live: persimmons.app → persimmons/app (repo root, as its pages/page.conf says), yolopreneur.lol and *.yolopreneur.lol → teahubxyz/time#gh-pages/ventures (PAGES_WILDCARDS). A site can be any public repo, org/repo#branch/subdir; it doesn't have to be called site. A product with a backend serves its own pages instead (phast.app is phast-app), so there is never a copy to drift.

Files without an extension that start with <!doctype html or <html are served as HTML (/signin).