if (!opts.apply) {
defaultRuntime.log("");
defaultRuntime.log(theme.muted("Run with --apply to install CoreDNS and configure it.")); return;
}
if (process.platform !== "darwin") { thrownew Error("dns setup is currently supported on macOS only");
} if (!tailnetIPv4 && !tailnetIPv6) { thrownew Error("no tailnet IP detected; ensure Tailscale is running on this machine");
}
// Ensure the gateway can write its zone file path.
await fs.promises.mkdir(path.dirname(zonePath), { recursive: true }); if (zoneFileNeedsBootstrap(zonePath)) { const y = new Date().getUTCFullYear(); const m = String(new Date().getUTCMonth() + 1).padStart(2, "0"); const d = String(new Date().getUTCDate()).padStart(2, "0"); const serial = `${y}${m}${d}01`;
const zoneLines = [
`; created by openclaw dns setup (will be overwritten by the gateway when wide-area discovery is enabled)`,
`$ORIGIN ${wideAreaDomain}`,
`$TTL 60`,
`@ IN SOA ns1 hostmaster ${serial} 72003600120960060`,
`@ IN NS ns1`,
tailnetIPv4 ? `ns1 IN A ${tailnetIPv4}` : null,
tailnetIPv6 ? `ns1 IN AAAA ${tailnetIPv6}` : null,
``,
].filter((line): line is string => Boolean(line));
if (cfg.discovery?.wideArea?.enabled !== true) {
defaultRuntime.log("");
defaultRuntime.log(
theme.muted( "Note: enable discovery.wideArea.enabled in the active OpenClaw config ($OPENCLAW_CONFIG_PATH, default ~/.openclaw/openclaw.json) on the gateway and restart the gateway so it writes the DNS-SD zone.",
),
);
}
});
}
Messung V0.5 in Prozent
¤ Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.0.13Bemerkung:
(vorverarbeitet am 2026-06-05)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.