Initial commit: Memind H5 portal with MindSpace, Plaza, and agent jobs.

Track application source and tests; exclude local env, user workspaces, and runtime data via .gitignore.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
John
2026-06-15 15:04:43 -07:00
commit 2e14873f2d
272 changed files with 64133 additions and 0 deletions
+140
View File
@@ -0,0 +1,140 @@
# TKMind H5 环境变量(复制为 .env 后按需修改)
#
# 本地开发(默认只做本地,不自动发布生产):
# 1. pnpm dev # 热更新 (http://127.0.0.1:5173)
# 2. pnpm run test:local # 生产构建本地跑 (http://127.0.0.1:8081)
# 3. pnpm run test:fruit-john-e2e # john 水果主题:预览图 + 可点击链接 + 我的空间
# 4. node scripts/mindspace-rebuild-thumbnails.mjs # 批量重建预览图(可选)
#
# 发布生产:仅当明确要求「发布生产」时再执行:
# pnpm run deploy:105 或 pnpm run deploy:prod 或 ./rsync_to_server.sh
# 105 配置见 deploy/h5-105.env.example
#
# 后端代理(server.mjs / vite dev proxy 共用)
TKMIND_API_TARGET=https://127.0.0.1:18006
TKMIND_SERVER__SECRET_KEY=local-dev-secret
H5_PORT=8081
# Agent 生成链接用(本地开发建议 8081;生产再改为 https://goo.tkmind.cn
H5_PUBLIC_BASE_URL=http://127.0.0.1:8081
# MindSpace 与 Plaza 跨子域共享登录(如 g2.tkmind.cn + plaza.tkmind.cn
# H5_COOKIE_DOMAIN=.tkmind.cn
# 多用户系统(MySQL 配置后启用;未配置时回退到 H5_ACCESS_PASSWORD
DATABASE_URL=mysql://boot:password@localhost:3306/tkmind
# 或分别设置 MYSQL_HOST / MYSQL_PORT / MYSQL_USER / MYSQL_PASSWORD / MYSQL_DATABASE
H5_USERS_ROOT=/root/tkmind_go/users
H5_SIGNUP_BALANCE_CENTS=1000
H5_ADMIN_USERNAME=admin
H5_ADMIN_PASSWORD=change-me-admin
# 管理员工作区(默认 users 目录的父目录;对接 goose 全权限时建议设为项目根)
# H5_ADMIN_WORKSPACE_ROOT=/Users/john/PycharmProjects/tkmind
# LLM Key 数据库加密(可选;默认派生自 TKMIND_SERVER__SECRET_KEY
# H5_SETTINGS_ENCRYPTION_KEY=change-me-encryption-key
# 启动时自动导入 Relay(若不存在同名配置)
# H5_RELAY_BOOTSTRAP_NAME=Relay Buyer Ollama
# H5_RELAY_BOOTSTRAP_URL=http://127.0.0.1:18300/relay/buyer/v1/chat/completions
# H5_RELAY_BOOTSTRAP_API_KEY=your-bearer-token
# H5_RELAY_BOOTSTRAP_MODEL=qwen2.5:3b
# H5_RELAY_BOOTSTRAP_MODELS=qwen2.5:3b,llama3.2:1b
# H5_RELAY_BOOTSTRAP_PROVIDER=ollama
# 本地 Ollama fallbackDeepSeek 额度不足,或 andu Relay 500agent 请求体含 tools 超过 ~8.5KB)时自动切换
# Local Ollama fallback — creditsExhausted or relay 500 (nginx body limit with tool payloads).
# H5_LOCAL_LLM_FALLBACK=0
# H5_LOCAL_LLM_URL=http://127.0.0.1:11434/v1/chat/completions
# H5_LOCAL_LLM_MODEL=qwen2.5-coder:7b
# H5_LOCAL_LLM_API_KEY=ollama
# H5_LOCAL_LLM_NAME=Local Ollama 7B
H5_ACCESS_PASSWORD=change-me
# 计费(Phase 2
# H5_USE_BACKEND_COST=1 # 优先用后端 accumulatedCostUSD)计费
# H5_USD_CNY_RATE=7.2
# H5_BILL_INPUT_CENTS_PER_1K=2
# H5_BILL_OUTPUT_CENTS_PER_1K=6
# H5_MIN_BILL_CENTS=1
# 用户自助充值(微信支付)
# H5_RECHARGE_TIERS_CENTS=500,1000,3000,5000,10000,20000
# H5_MIN_RECHARGE_CENTS=500
# H5_RECHARGE_ORDER_TTL_MS=900000
# H5_RECHARGE_MAX_PENDING=3
# H5_RECHARGE_DAILY_LIMIT_CENTS=200000
# H5_WECHAT_PAY_ENABLED=1
# H5_WECHAT_APP_ID=wx...
# H5_WECHAT_MCH_ID=1...
# API 版本:v2(商户 API 密钥)或 v3(证书);不填则按已配置凭据自动选择
# H5_WECHAT_API_VERSION=v2
#
# --- API v2(商户平台「账户中心 → API安全 → 设置APIv2密钥」)---
# H5_WECHAT_API_V2_KEY=32位APIv2密钥
# 或简写:
# H5_WECHAT_API_KEY=32位APIv2密钥
#
# --- API v3(需商户证书 + 平台证书)---
# H5_WECHAT_API_V3_KEY=32位APIv3密钥
# H5_WECHAT_SERIAL_NO=商户API证书序列号
# H5_WECHAT_PRIVATE_KEY_PATH=/path/to/apiclient_key.pem
# 或直接内联 PEM\n 转义):
# H5_WECHAT_PRIVATE_KEY="-----BEGIN PRIVATE KEY-----\n...\n-----END PRIVATE KEY-----"
# H5_WECHAT_PLATFORM_CERT_PATH=/path/to/wechatpay_platform.pem
# H5_WECHAT_PLATFORM_CERT="-----BEGIN CERTIFICATE-----\n...\n-----END CERTIFICATE-----"
#
# H5_WECHAT_NOTIFY_URL=https://goo.tkmind.cn/webhooks/wechat-pay/notify
# 本地调试验签可临时开启(生产务必关闭):
# H5_WECHAT_SKIP_NOTIFY_VERIFY=0
# 微信服务号 OAuth 登录(网页授权;与支付可共用 H5_WECHAT_APP_ID
# 服务号后台需配置「网页授权回调域名」为 H5_PUBLIC_BASE_URL 的域名
# H5_WECHAT_OAUTH_ENABLED=1
# H5_WECHAT_APP_SECRET=服务号AppSecret
# H5_WECHAT_OAUTH_SCOPE=snsapi_userinfo
# 默认回调:{H5_PUBLIC_BASE_URL}/auth/wechat/callback
# H5_WECHAT_OAUTH_CALLBACK_URL=https://goo.tkmind.cn/auth/wechat/callback
# 本地开发:pnpm dev 会自动启动 server.mjs + vite
# 若只跑前端:pnpm dev:vite(需另开 pnpm dev:server
# H5_DEV_PORTAL=http://127.0.0.1:8081
# 语音输入(按住说话 → ASR 识别)
# H5_ASR_TARGET=https://asr.tkmind.cn
# H5_ASR_MAX_BYTES=5242880
# H5_ASR_TIMEOUT_MS=45000
# 前端构建时注入(Vite,需 VITE_ 前缀)
# 工作目录:新建会话时使用,必填
VITE_TKMIND_WORKING_DIR=/Users/john/PycharmProjects/tkmind
# 可选:覆盖默认 provider / model(未设置则从服务端 config 读取)
# VITE_TKMIND_PROVIDER=openai
# VITE_TKMIND_MODEL=gpt-4o
# 可选:harness recall 的默认查询
# VITE_TKMIND_MEMORY_QUERY=project architecture conventions current goals decisions risks and recent work
# 历史列表每次展示/加载条数(默认 25,与 desktop 一致)
# VITE_SESSION_PAGE_SIZE=25
# Plaza 发现广场(Sprint 1
# PLAZA_AUTO_APPROVE=true
# 本地 Plaza(无端口,与线上一致):
# sudo pnpm setup:plaza-dns # hosts: plaza.tkmind.cn -> 127.0.0.1
# pnpm dev:plaza # 仅 Plaza + Portal
# sudo pnpm dev:plaza-proxy # :80 -> :3001(另开终端,或随 pnpm dev 自动尝试)
# PLAZA_LOCAL_HOST=plaza.tkmind.cn
# PLAZA_PUBLIC_PORT=80
# PLAZA_PUBLIC_BASE=http://plaza.tkmind.cn
# VITE_PLAZA_BASE=http://plaza.tkmind.cn
# 线上:
# PLAZA_PUBLIC_BASE=https://plaza.tkmind.cn
# VITE_PLAZA_BASE=https://plaza.tkmind.cn
# MindSpace(默认启用;子功能需按需开启)
# MINDSPACE_ENABLED=false
# MINDSPACE_UPLOAD_ENABLED=false
# MINDSPACE_PUBLISH_ENABLED=true
# MINDSPACE_PRIVATE_ENABLED=false
# Agent 后台任务(创建/执行空间内 Agent 任务,默认关闭)
# MINDSPACE_AGENT_JOBS_ENABLED=true
# MINDSPACE_INTERNAL_AGENT_SECRET=local-dev-secret
# MINDSPACE_STORAGE_ROOT=/path/to/mindspace-storage