Add MindSpace page live edit, chat skills, and H5 deploy tooling.

Introduce page edit sessions with draft preview and patch API, chat skill picker, user memory profile, h5ApiBase resolution, voice WAV transport, and scripts for 105/g2 deployment and Plaza local dev.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
John
2026-06-15 22:09:38 -07:00
parent 3cd322ccfe
commit 6ee6fd64dd
94 changed files with 7015 additions and 2136 deletions
+20
View File
@@ -0,0 +1,20 @@
[Unit]
Description=Plaza Next.js (plaza.tkmind.cn)
After=network.target goose-h5.service
Wants=goose-h5.service
[Service]
Type=simple
User=root
WorkingDirectory=/root/plaza/web
EnvironmentFile=-/root/plaza/web/.env
Environment=NODE_ENV=production
Environment=PORT=3002
Environment=PLAZA_API_PROXY=http://127.0.0.1:8080
Environment=PLAZA_API_BASE=http://127.0.0.1:8080
ExecStart=/usr/bin/node node_modules/next/dist/bin/next start -p 3002
Restart=on-failure
RestartSec=5
[Install]
WantedBy=multi-user.target
+15
View File
@@ -0,0 +1,15 @@
# Plaza 独立部署(105)— 复制为 deploy/plaza-105/plaza-105.env
PLAZA_DEPLOY_HOST=root@120.26.184.105
PLAZA_REMOTE_DIR=/root/plaza/web
PLAZA_PROD_URL=https://plaza.tkmind.cn
PLAZA_PORT=3002
PLAZA_SYSTEMD_SERVICE=goose-plaza-web
# Plaza API / 登录 / 发布页仍由 H5 提供(同机 :8080)
PLAZA_API_UPSTREAM=http://127.0.0.1:8080
H5_SYSTEMD_SERVICE=goose-h5
# 本地 Next.js 源码(默认 sibling 仓库)
# PLAZA_APP_DIR=/Users/john/Project/tkmind_go/ui/plaza
# DNSplaza.tkmind.cn A → 120.26.184.105
@@ -0,0 +1,67 @@
# Plaza bootstrap(首次部署、尚未签发证书)
# 仅 HTTP :80,用于 certbot webroot
upstream goose_plaza_web_bootstrap {
server 127.0.0.1:3002;
keepalive 8;
}
upstream goose_plaza_api_bootstrap {
server 127.0.0.1:8080;
keepalive 8;
}
server {
listen 80;
listen [::]:80;
server_name plaza.tkmind.cn;
location /.well-known/acme-challenge/ {
root /var/www/certbot;
}
location ^~ /api/ {
proxy_pass http://goose_plaza_api_bootstrap;
proxy_http_version 1.1;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_read_timeout 120;
proxy_buffering off;
}
location ^~ /auth/ {
proxy_pass http://goose_plaza_api_bootstrap;
proxy_http_version 1.1;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_buffering off;
}
location ^~ /u/ {
proxy_pass http://goose_plaza_api_bootstrap;
proxy_http_version 1.1;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_read_timeout 120;
proxy_buffering off;
}
location / {
proxy_pass http://goose_plaza_web_bootstrap;
proxy_http_version 1.1;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_read_timeout 120;
proxy_buffering off;
}
}
@@ -0,0 +1,85 @@
# Plaza 独立入口(plaza.tkmind.cn
# 安装:/etc/nginx/conf.d/plaza.tkmind.cn.conf
#
# /plaza、/_next → goose-plaza-web :3002
# /api、/auth、/u → goose-h5 :8080Plaza API + 登录 + 发布页嵌入)
upstream goose_plaza_web {
server 127.0.0.1:3002;
keepalive 16;
}
upstream goose_plaza_api {
server 127.0.0.1:8080;
keepalive 16;
}
server {
listen 80;
listen [::]:80;
server_name plaza.tkmind.cn;
location /.well-known/acme-challenge/ {
root /var/www/certbot;
}
location / {
return 301 https://$host$request_uri;
}
}
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name plaza.tkmind.cn;
ssl_certificate /etc/letsencrypt/live/plaza.tkmind.cn/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/plaza.tkmind.cn/privkey.pem;
include /etc/letsencrypt/options-ssl-nginx.conf;
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
location ^~ /api/ {
proxy_pass http://goose_plaza_api;
proxy_http_version 1.1;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_read_timeout 120;
proxy_buffering off;
}
location ^~ /auth/ {
proxy_pass http://goose_plaza_api;
proxy_http_version 1.1;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_buffering off;
}
location ^~ /u/ {
proxy_pass http://goose_plaza_api;
proxy_http_version 1.1;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_read_timeout 120;
proxy_buffering off;
}
location / {
proxy_pass http://goose_plaza_web;
proxy_http_version 1.1;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_read_timeout 120;
proxy_buffering off;
}
}