zapier-docs-master/CATALOG-HOST.md

2.8 KiB
Raw Permalink Blame History

Move the documentation catalog to another hostname

The catalog is a static tree (site/ in the monorepo). HTML cards and PDF clicks are path-relative, so the same files can be served from https://zapier.georgelambert.org/ today and https://docs.verae-time.net/ later without rewriting links.

Live service doors (portal, IAM, fleet, …) stay on their own hostnames. Forgejo stays on git.georgelambert.org.

Script: scripts/rewrite-docs-host.py in master-zapier-plan-draft
Build: scripts/build-docs-site.py · Deploy: scripts/deploy-docs-site.sh

Default (relative) — no hostname pass

  1. Build: python3 scripts/build-docs-site.py
  2. Rsync the site/ directory to the new host document root (must be the site root, /).
  3. Point DNS + TLS (Caddy file_server with index index.html index.pdf README.html README.pdf) at that tree.

PDF annotations look like README.pdf and ../../index.html (relative to the PDF). Browsers resolve them against the PDFs own URL, so they follow the new host.

Optional label in the HTML banner (not a link target):

DOCS_PUBLIC_HOST=docs.verae-time.net python3 scripts/build-docs-site.py

Absolute URLs (only if a viewer needs them)

Bake a public origin at build time:

DOCS_PUBLIC_URL=https://docs.verae-time.net \
DOCS_PUBLIC_HOST=docs.verae-time.net \
  python3 scripts/build-docs-site.py

Or retarget an already built site/ without rebuilding PDFs from markdown:

# Lab origin → future docs host
python3 scripts/rewrite-docs-host.py \
  --site ./site \
  --from https://zapier.georgelambert.org \
  --to https://docs.verae-time.net

# Strip the origin (same as the default build)
python3 scripts/rewrite-docs-host.py --site ./site --relative

python3 scripts/rewrite-docs-host.py --site ./site --from … --to … --dry-run

The rewrite walks HTML/SVG/CSS/JS/MD text and PDF /URI annotations. It does not change portal.zapier.georgelambert.org, iam.…, or git.georgelambert.org.

Caddy (any host)

docs.verae-time.net {
	root * /SSD2/sites/docs.verae-time.net
	encode gzip zstd
	file_server {
		index index.html index.pdf README.html README.pdf
	}
	try_files {path} {path}/index.html {path}/index.pdf {path}/README.html {path}/README.pdf
}

Lab copy: packages/verae-ops/caddy/zapier.georgelambert.org.caddy.

Check

python3 scripts/check-doc-links.py

Local files must exist for homepage hrefs and PDF URI targets. Off-site HTTPS (Forgejo, live doors) is left alone.

Publish lab catalog (today)

git -C /Users/marchon/apps/zapier push ns1 main
git -C /Users/marchon/apps/zapier push ns1 main:master
bash scripts/deploy-docs-site.sh
# → marchon@70.88.205.138:/SSD2/sites/zapier.georgelambert.org