# vizforge-protal **Repository Path**: rorop/vizforge-protal ## Basic Information - **Project Name**: vizforge-protal - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-07-22 - **Last Updated**: 2026-07-22 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # VizForge 产品官网 VizForge 官方产品网站,介绍 VizForge 平台以及 VizTable、VizChart、VizAgent 三个产品。 ## 技术栈 - Next.js 15 App Router - React 19 - TypeScript - Tailwind CSS 4 - Lucide - Biome ## 本地开发 ```bash npm install npm run dev ``` 默认访问 `http://localhost:3000`。 ## 环境变量 ```dotenv NEXT_PUBLIC_SITE_URL=https://your-domain.example NEXT_PUBLIC_APP_URL=https://your-app.example CONTACT_WEBHOOK_URL=https://your-webhook.example CONTACT_STORAGE_PATH=/app/storage/leads.jsonl CONTACT_BACKEND_URL=https://app.xscha.com/api/public/contact-lead/submit CONTACT_BACKEND_TOKEN=replace-with-the-same-value-as-vizforge-portal-lead-token CONTACT_CAPTCHA_SECRET=replace-with-a-long-random-secret DEMO_APP_URL=https://app.xscha.com DEMO_USERNAME=vizforge DEMO_PASSWORD=vizforge9527 ``` - `NEXT_PUBLIC_SITE_URL`:正式站点地址。未配置时使用本地地址并禁止搜索引擎索引。 - `NEXT_PUBLIC_APP_URL`:产品登录地址。未配置时隐藏登录入口。 - `CONTACT_WEBHOOK_URL`:可选的联系和预约演示通知地址;本地持久化成功后再异步通知该地址。 - `CONTACT_STORAGE_PATH`:预约与咨询记录的 JSON Lines 持久化路径。 - `CONTACT_BACKEND_URL`:管理端后端公开预约接入地址,生产环境必须配置。 - `CONTACT_BACKEND_TOKEN`:门户与后端共享令牌,必须与后端 `VIZFORGE_PORTAL_LEAD_TOKEN` 保持一致。 - `CONTACT_CAPTCHA_SECRET`:图形验证码签名密钥,生产环境必须使用独立的高强度随机值。 - `DEMO_*`:预约演示成功后展示的体验环境访问信息。 门户会先写入本地 JSONL 审计记录,再同步到管理端数据库。只有管理端后端确认保存成功后,页面才会展示预约成功及体验账号信息。 ## Docker 部署 ```bash docker build -t vizforge/portal:latest . cp .env.example .env docker compose up -d ``` 容器加入现有 `deploy_proxy-network`,由边缘 Nginx 将 `www.xscha.com` 转发到 `vizforge-portal:3000`。预约记录默认保存在 `/opt/vizforge/portal/storage/leads.jsonl`,目录权限应限制为运行账户与管理员可读。 ## 校验 ```bash npm run check:ci npm run build ``` ## 内容约束 - 不发布未经确认的客户案例、统计数字、安全认证和企业主体信息。 - 客户案例和法律页面只有在真实内容与授权就绪后才进入导航和 sitemap。 - 产品能力文案必须与真实产品实现保持一致。