Files
gfil-blog/MEMORY.md
2026-06-28 17:19:47 +00:00

202 lines
8.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# GFIL_BLOG 记忆文档
> 最后更新: 2026-06-29
## 项目概述
blog.quant-view.xyz 的内容引擎 — 多语言交易教育站点80+ 免费计算器专业市场分析SEO/GEO 优化文章。
## 架构
```
blog_content/ → build_blog.py → output/ → RackNerd /var/www/blog/
tools/ → → (static HTML served by Nginx)
deploy_scripts/ → daily cron jobs on server
```
## 服务器部署
### SSH 链路(中国国内无法直连海外服务器)
- **本地 PC** → **JD Cloud 跳板机** (111.228.37.165, root/Liudecai110) → **RackNerd 服务器** (107.174.186.162, root/liudapao2026, /var/www/blog/)
- 部署脚本: `deploy_via_jdcloud.py`(通过 paramiko 双跳)
- JD Cloud 连接不稳定,需要 `banner_timeout=60` 并重试
### Blog 服务器 (RackNerd)
- IP: 107.174.186.162
- SSH: root / liudapao2026
- 文档根: /var/www/blog/
- Nginx 配置: 默认
- robots.txt: 由 build_blog.py 生成653 chars含 GPTBot/ClaudeBot/PerplexityBot 等 AI 爬虫许可)
### 主站服务器 (gfil-lab.com)
- IP: 216.144.233.14
- SSH: root / Kt9V72Tx2c48ChikKU密码在 D:\GFIL\.env
- 文档根: /GFIL/
- Nginx: 两个 server block — `default`(gfil-lab.com :5000) + `gfil`(quant-node.com :8000)
- robots.txt: /var/www/gfil-lab/robots.txt (580 chars)Nginx location block 提供服务
- **Nginx 配置备份**: `default.bak.before-robots`, `gfil.bak.before-robots`
### gfil-intel.xyz
- 部署在 RackNerd 服务器
- Nginx: /etc/nginx/sites-available/gfil-mask
- 反向代理到 gfil-lab.comsub_filter 替换域名
- robots.txt 继承自 gfil-lab.com 代理
- Cloudflare 代理(与 blog 不同的 CF zone/account
## 域名 & DNS
| 域名 | Cloudflare | DNS 模式 |
|-------|-----------|---------|
| blog.quant-view.xyz | CF 代理 | DNS-only (grey cloud) |
| gfil-lab.com | CF 代理 | Proxied (orange cloud) |
| gfil-intel.xyz | CF 代理 | Proxied (orange cloud) |
## Cloudflare
- **blog.quant-view.xyz**: CF_TOKEN=`cfut_xRDcVVOTE9hLWxe8fFUG1Xgv7aQVtV0ytWFYZKimffcc10e3`zone 在 blog 的 CF 账户
- **gfil-lab.com**: CF_PURGE_TOKEN=`cfut_Qe696Mw2HIWZ9KtJnmTJ8Gl1RIr9OroFYesb4aDk30346a1a`CF_ZONE_ID=`5ab2b548b8e4d5a1cb0e7a43c074a871`zone 在 D:\GFIL\.env不同 CF 账户)
- **gfil-intel.xyz**: 独立 CF zonetoken 在 blog CF 账户zone ID=`a107f45f3d82e7209447cec396504d0b`
- Bot Fight Mode: OFF所有站点
- Browser Integrity Check: OFF所有站点
- managed robots.txt: OFF所有站点
- AI training block: OFF所有站点
## 开源平台全景
### ⚠️ GitHub 状态:双双公开 404
**两个 GitHub 账号对外全部 404。git push 仍可用,但外部访客看不到任何仓库。**
| 账号 | Web 状态 | Git 状态 | 说明 |
|------|---------|---------|------|
| **liudecai-one** | ❌ 公开 404 | ✅ git push 可用 | 2026-06-29 起公开仓库全部 404 |
| **liudapao880807-arch** | ❌ 已被 FLAG | ✅ git push 可用 | 长期 FLAG公开仓库 404Actions 禁用 |
**因此:全站不得出现任何 github.com 外链。所有开源引用走 GitLab。**
**Git push 需代理**: `git -c http.proxy=http://127.0.0.1:7890 push`
### Gitea自建主力🆕
- 地址: [code.quant-view.xyz](https://code.quant-view.xyz)RackNerd 107.174.186.162
- 管理员: liudecai / Liudapao2026
- 配置: SQLite, Nginx + Let's Encrypt, systemd 自动启动
- 内存: ~100MB
- **谁也封不了,自己说了算。**
### GitLab镜像备份
- 账号: **liudecai110**
- 仓库: [gfil-trading-calculators](https://gitlab.com/liudecai110/gfil-trading-calculators) — 开源计算器库
- 仓库: awesome-trading-resources — 资源索引镜像
- Token: 在 `.env`
### PyPI
- 包名: [gfil-calculators](https://pypi.org/project/gfil-calculators/)v1.1.1
- 内容: 22个交易计算器Position Size, Pip Value, Fibonacci, ATR, Kelly, Risk of Ruin, Margin, Compound Growth, Drawdown, Profit Factor, Risk/Reward, Pivot Points, Correlation Matrix 等)
- 双语言实现: Python + JavaScript
- 许可: MIT
- Token: 在 `.env`
### npm
- ❌ 已 404`@liudecai-one` scope 随 GitHub org 一起消失)
- npm_package/ 目录保留源码index.js待重新发布到其他 registry
### 平台链接汇总
| 平台 | URL | 用途 |
|------|-----|------|
| Gitea | code.quant-view.xyz | 自建 Git — 仓库 + Issue + MR + Packages |
| GitLab | gitlab.com/liudecai110/gfil-trading-calculators | 镜像备份 |
| PyPI | pypi.org/project/gfil-calculators/ | Python 包分发 |
### GitHub 历史记录(仅供参考,勿用)
liudecai-one 曾有 15+ 个公开仓库7个核心 + 8个SEO引流liudapao880807-arch 曾有 GFIL 主站 + Cannon Studio 私有仓库。git push 仍可用但 web 访问全部 404。github_blast.py 等脚本保留不动(内部工具)。
### 计划中(未开始)
- Codeberg 镜像
- self-hosted Gitea at code.gfil-lab.com
- docs.gfil-lab.com 独立文档站
## 内容统计
- **文章**: 20 篇 EN 文章 (article_1 ~ article_20),每篇 4 语言 (EN/ZH/ES/AR) = 80 篇
- art-12: Bloomberg Terminal Alternative
- art-16: Position Size Guide (9.1KB)
- art-17: XAUUSD Trading Guide (12.7KB)
- art-18: SSH Chain Engineering
- art-19: GitHub SEO (de-GitHub 叙事完整版)
- art-20: Gold Calculator Pitfalls
- **工具页**: 199+ HTML 文件,含 54 变体 SEO 页
- 10 公式页 + 6 黄金 + 5 外汇 + 3 交易对 + 5 加密 + 9 pip 变体 + 4 索引 + 6 教育 + 3 对比 + 3 账户规模
- **Sitemap**: 405 URLs (289 tools + 81 posts + 35 geo)
- **Schema**: FAQPage + SoftwareApplication JSON-LD on 109 tool pages
## SEO/GEO
- **IndexNow key**: `72aa77b68704abcfada4020ba81f7c5a`
- **已提交 URL**: ~411 URLs across sessions (Bing 200, Yandex 202, Seznam 200)
- **Bing Webmaster**: BingSiteAuth.xml 已上线
- **Google**: GA_ID=G-D33M8PWQDP验证码=d53ir9M-igK014y6QqLbDG8q_qKotQi70TGGxQwHas4
## De-GitHub-ification 状态
- ✅ 所有 GitHub + npm 死链已清除,替换为 PyPI/GitLab/TG/Discord
- ✅ 三个核心页面零 github.com 引用: entity.html, media.html, gfil-faq.html
- ✅ article_19 已更新完整 de-GitHub 叙事
- ✅ build_blog.py footer: EN/ES/AR→Telegram/Discord; ZH→微信/QQ
- ✅ research.html: PyPI 链接标签改为"PyPI"
- ✅ gfil-faq.html: "merge requests" 而非 "pull requests"
- ✅ PyPI v1.1.1 发布,所有 URL→blog/PyPI/Telegram/GitLab
## 已知问题
- **GitHub Actions CI**: 账号级禁用,仅 GitHub Support 可修复
- **GitHub 账号 flagging**: +86 不被接受,虚拟号风险更高
- **gfil-intel.xyz robots.txt**: CF 缓存仍返回旧版 (64 chars),需从 gfil-intel.xyz 的 CF 面板手动清缓存
- **npm**: 无 authenticator app仅 4 个恢复码
## 构建命令
```bash
# 本地构建(不部署)
python build_blog.py --no-upload
# 构建并部署(需 .env 含 SSH 凭据)
python build_blog.py
# 本地预览
python build_blog.py --no-upload --serve
```
## 关键约束
- **D:\GFIL 主站**: READ-ONLY除非用户明确说改
- **Nginx 配置编辑**: 必须用 Python 脚本精确插入,**绝不用 sed** — sed 曾删除闭合花括号导致配置损坏
- **PowerShell**: `curl` 是 Invoke-WebRequest 别名(有问题),用 Python 做 HTTP 调用
- **Python f-string**: `%{var}``{result[...]}` 在 f-string 内必须转义为 `{{result[...]}}`
- **95/5 规则**: 95% 精力在自有网站5% 在第三方平台
- **上传方式**: tar.gz 经 JD Cloud → scp 到目标 → 解压;关键文件用 sed 在服务器直接改(但 Nginx 配置除外)
## Token/密钥清单
所有密钥在 `.env` 文件中,.gitignore 已排除。关键 token:
- GitHub: `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`主账号push 可用但 repos 404
- GitHub (blog repo): 见 .env GITHUB_TOKEN
- GitLab: `glpat-i1Elj2OD2CltzT1XSbOTvGM6MQpvOjEKdTpucDA2Yg8.01.171bazl46`
- PyPI: `pypi-AgEIcHlwaS5vcmcCJGE4NWRkYjJkLWEyYjItNDNkNS04NjI2LTgxMmViYmFmMDE5OAACKlszLCI4OTY3MDNmZS0xOGE3LTQyNjEtYTUwOC1jNTZjYzBmNDU1MjQiXQAABiClm87Doks-uv0hxnNjvFYZPxIwElp7kCaTlHS8NcLwAQ`
- npm: `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`4 recovery codes
- IndexNow: `72aa77b68704abcfada4020ba81f7c5a`
## 下一步
- 注册 Trustpilot, G2, Capterra用户任务
- 清 gfil-intel.xyz CF 缓存(用户从 CF 面板操作)
- 考虑给 gfil-intel.xyz 独立 robots.txt修改 gfil-mask Nginx 配置)
- Codeberg 镜像self-hosted Gitea at code.gfil-lab.com
- docs.gfil-lab.com 文档站