This site is already on fondue; what is left is a stale copy, dead manifests, and xq0.net #1
Labels
No labels
bug
duplicate
enhancement
invalid
question
waiting-on-julian
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
jlxq0/lindner_web#1
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Investigation only — nothing migrated, no DNS touched.
This one came to me as "hosted somewhere nobody knows, move it to our own infrastructure". That premise is wrong, and the real finding is more useful: the site is already on our infrastructure and has been since 2026-07-12. What is actually outstanding is a stale second copy of it here, a dead deployment in this tree, and a domain left pointing at nothing.
The site is on fondue
www.lindner.earthis served bystatic-siteson fondue, through the anycast edges:Edge Caddy vhost binds
2001:df7:2b40::4and reverse-proxies[2001:df7:2b40:1::100]:80, the sharedstatic-sitesorigin. Its comment reads "consolidated from jlxq0/lindner_web 2026-07". This repository's ownREADME.mdsays the same thing: "The repository retains itsxq0.netname for historical reasons. The canonical host islindner.earth."So the site is fine. Three things around it are not.
1. There are two copies of this site, and this one is the stale one
The live content is vendored at
oddie-apps/static-sites/sites/www.lindner.earth/. Comparing it against this tree:js/xq.js,css/crt.css,js/profile.js,robots.txt,sitemap.xmlindex.htmlThe live copy is ahead by two changes that were never made here:
static-sites252859d, 2026-08-12) — the<script defer data-domain="lindner.earth" src="https://stats.oddie.app/js/script.js">tag, together with a comment recording thatdata-domainmust match a Plausible site exactly or every event is discarded server-side with no visible error, and that this host's stricter CSP neededstats.oddie.appin bothscript-srcandconnect-src—script-srcalone loads the file and thenconnect-srcblocks every event it sends, which looks exactly like "no visitors".?v=1on the css and js references (599e711, 2026-07-12).This repository's
AGENTS.mdtells you to editsrc/xq.js, runnpm run build, and commit both. That workflow is correct for the bundle and produces a site nothing deploys — and if the built output were ever copied over the live one, it would silently remove analytics. Two copies, and this is the wrong one.Decide which is authoritative. Either this repository becomes the source and
static-sitesvendors from its build (which means bringing the twoindex.htmlchanges back here first), or this repository is retired to a source-of-record forsrc/xq.jsand the deployable truth isstatic-sites. Either is defensible; carrying both silently is not.2.
k8s/describes a deployment that does not existk8s/deployment.yamldeclares alindner-webDeployment in namespaceweb, 2 replicas with pod anti-affinity, pulling fromforge-registry. Thewebnamespace on fondue contains exactly one Deployment:lindner-webwas superseded by thestatic-sitesconsolidation and its manifests were left behind. Anyone reading this tree would reasonably conclude the site runs from its own image. Delete them, or if the intent is to go back to a dedicated image, say so in the file.3.
xq0.netpoints at GitHub Pages and serves a certificate errorThis is the only genuinely broken thing found, and it is the leftover of the migration this repository is named after.
No Pages site claims the apex, so GitHub serves its default wildcard. Ignoring the certificate, the response is a 404. And
www.xq0.netdoes not resolve at all — there is no record for it.Every HTTPS visitor to
xq0.netgets a browser certificate warning followed by a 404. It has presumably been that way since the site becamelindner.earth.Three options, and this is Julian's call because it is about what the domain is for:
xq0.netandwww.xq0.nettohttps://www.lindner.earth/. Preserves any old inbound link and costs one vhost.A/AAAA, keep the zone for mail.xq0.netstill receives and sends mail through Stalwart and Postal withDMARC p=reject, so the zone stays either way.Two more dangling records in this zone
jf.xq0.netandmc.xq0.netbothAto101.100.163.70, and both answer — with a certificate forCN=unifi.yuzu.fish, from the home nginx. Same class asbluemap-create.lindner.earth, which is already tracked inoddie-apps/infrastructure#4. Either they are live services that need their own certificate, or they are leftovers to delete. Worth establishing whatjfandmcwere.What is already fine and should not be disturbed
xq0.net's mail posture is complete and deliberate:MX 10 mx.kampong.social, Stalwart RSA and ed25519 DKIM, Postal with its own selector,DMARC p=rejectwith aggregate and failure reporting, TLSRPT, and the three FastMailfm1-3DKIM CNAMEs restored byte-for-byte on 2026-07-30 after the estate-wide lockdown had bounced legitimate family mail. None of the options above touches any of it.Remote
This checkout points at
github.com/jlxq0/xq0.net. On this forge the repository isjlxq0/lindner_web— the same repository, renamed, andjlxq0/xq0.netstill 301s to it. Both are at3b01b1c, so nothing has diverged; the forge remote is canonical and repointing the checkout is independent of everything above.Three things in this issue are no longer true, and one of them was never true. Re-measured 2026-08-26T05:11Z.
Section 3 is done
xq0.netno longer serves a*.github.iocertificate and a 404. The redirect option was taken, inoddie-apps/edge-configPR #15 (feat(xq0): redirect the website to www.lindner.earth), merged as0a58334.No certificate warning, no 404. This section no longer needs Julian's decision.
"
www.xq0.netdoes not resolve at all" is no longer trueSame change.
www.xq0.netresolves to203.24.209.4and returns the same308tohttps://www.lindner.earth/."already tracked in
oddie-apps/infrastructure#4" was never trueThis is the one worth reading twice.
jf.xq0.netandmc.xq0.netwere described here as the same class asbluemap-create.lindner.earth, "which is already tracked inoddie-apps/infrastructure#4". They are not in that issue. Its body mentions neitherjf, normc, norxq0, noryuzu, and it is still open.They still answer:
Untracked while an issue says otherwise is worse than untracked, because it stops anyone looking. Filed properly as
oddie-apps/infrastructure#6.Section 1 and the drift
Both addressed, in this repository:
k8s/and.forgejo/workflows/docker.yaml. The pipeline was not dormant: its last run, #20, was triggered by the merge of #2, the pull request whose content was documenting it as dead. Observed after the deletion: the merge of #3 produced no run, and the merge of #4, a content change toindex.html, produced no run and nochore(deploy)commit.mainis at the merge commit rather than a self-bump for the first time since 2026-07-11.index.htmllevel with the deployed copy, so all twelve runtime files are now byte-identical tooddie-apps/static-sites/sites/www.lindner.earth/. The Plausible tag and?v=1are in both. There is still no automation keeping them equal.Still open, and still Julian's
Which copy is authoritative. Recommendation on the record: retire this repository to source-of-record for
src/xq.jsand leaveoddie-apps/static-sitesthe deployable, because it is what ArgoCD syncs and a second deployment path for one static site buys nothing.Two things that follow from whichever way that goes, so they are not being decided here:
DockerfileandCaddyfiledescribe an origin nobody builds. Two tests hold them to a runtime asset allowlist and a CSP. The CSP is now byte-equal to the one the edge actually serves, checked against the live response header, but it is a copy of a policy that lives inoddie-apps/edge-configand nothing keeps it in step.oddie-apps/static-siteshas noAGENTS.mdnote aboutwww.lindner.earthat all, so nothing on that side records that a second copy exists. Filing that separately.Unrelated to any of the above, and now done: the repository had a stale
masterbranch at6837735, 43 commits behindmainand 0 ahead, fully contained inmain. Deleted, along with the branch protection rule that guarded it. That rule was the only branch protection in the repository, somainnow has none, as it had none before. Whethermainshould be protected is a separate question and has not been answered here.