Files
memind/scripts/patch-plaza-tunnel-config.mjs
John 25d9c8c364 Add MindSpace visual page editor and Plaza local Tunnel deployment.
In-preview HTML editing with undo/redo sync replaces Agent patch auto-save; Plaza runs on local Mac via Cloudflare Tunnel with embed height and CSP fixes.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-15 22:57:22 -07:00

61 lines
2.0 KiB
JavaScript
Executable File

#!/usr/bin/env node
/**
* Add plaza.tkmind.cn ingress to cloudflared config (before catch-all 404).
*
* Usage:
* node scripts/patch-plaza-tunnel-config.mjs
* CLOUDFLARE_TUNNEL_CONFIG=/path/to/config.yml PLAZA_TUNNEL_PORT=3001 node ...
*/
import fs from 'node:fs';
const configPath =
process.env.CLOUDFLARE_TUNNEL_CONFIG ??
'/Users/john/Project/ollama/cloudflare/config.yml';
const plazaPort = Number(process.env.PLAZA_TUNNEL_PORT ?? process.env.PLAZA_PORT ?? 3001);
const plazaHost = process.env.PLAZA_LOCAL_HOST ?? 'plaza.tkmind.cn';
if (!fs.existsSync(configPath)) {
console.error(`错误: 未找到 cloudflared 配置:${configPath}`);
console.error('请设置 CLOUDFLARE_TUNNEL_CONFIG');
process.exit(1);
}
let content = fs.readFileSync(configPath, 'utf8');
if (content.includes(`hostname: ${plazaHost}`)) {
const current = content.match(
new RegExp(`hostname: ${plazaHost.replace('.', '\\.')}[\\s\\S]*?service: (http://[^\\n]+)`),
);
const target = `http://127.0.0.1:${plazaPort}`;
if (current?.[1] === target) {
console.log(`cloudflared 已配置 ${plazaHost}${target}`);
process.exit(0);
}
content = content.replace(
new RegExp(
`(hostname: ${plazaHost.replace('.', '\\.')}[\\s\\S]*?service: )http://127\\.0\\.0\\.1:\\d+`,
),
`$1${target}`,
);
fs.writeFileSync(configPath, content);
console.log(`已更新 ${plazaHost}${target}`);
process.exit(0);
}
const block = ` - hostname: ${plazaHost}
service: http://127.0.0.1:${plazaPort}
originRequest:
connectTimeout: 30s
keepAliveTimeout: 90s
disableChunkedEncoding: false
`;
if (!content.includes('- service: http_status:404')) {
console.error('错误: 配置中未找到 catch-all http_status:404 规则');
process.exit(1);
}
content = content.replace(/\n - service: http_status:404/, `\n${block}\n - service: http_status:404`);
fs.writeFileSync(configPath, content);
console.log(`已添加 ${plazaHost} → http://127.0.0.1:${plazaPort}`);