Files
vps-management-bot/memory/2026-02-25.md
2026-03-21 01:10:53 +08:00

237 lines
12 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.
# 2026-02-25
## Gitea 迁移 Tarek → netcup ✅
- 从 155.103.66.237(Tarek) 迁移到 159.195.41.188(netcup)
- Docker 部署: gitea/gitea:latest, 端口 3001→3000, 2222→22
- 数据打包 443K恢复后 app.ini 域名改为 mjjtop.com
- Nginx 配好短链(/oc /dd /ss /bbr /bk /bak) + Gitea 反代
- certbot HTTPS 签发成功,到期 2026-05-25自动续期
- 旧服 Gitea 容器+数据卷+镜像+Nginx配置全部清理
- 测试机(31.22.111.168)验证5个短链全部正常
## netcup 备份 → OVH ✅
- vps-snapshot 配置: REMOTE_IP=145.239.143.92, /data/backup/netcup/
- 踩坑: 手写配置文件用了 REMOTE_HOST脚本实际读 REMOTE_IP
- 快照 1.7G (12G原始数据压缩)120MB/s 同步到 OVH
- Cron: 0 3 * * * 每天自动备份
- TG 通知已配置
## Jellyseerr 求片系统部署 (OVH) ✅
- 地址: https://req.088520.xyz | 标题: 顶尖求片
- Docker: jellyseerr(:5055) + radarr(:7878) + sonarr(:8989) + prowlarr(:9696)
- compose: /data/docker-compose-arr.yml
- Caddy 反代 req.088520.xyz → jellyseerr:5055 (自动HTTPS)
- 对接 Emby(emby:8096, urlBase=/emby) + qB(qbittorrent:8080)
- Radarr root: /movies | Sonarr root: /tv
- 管理员: admin (Emby账号登录)
- 默认配额: 每用户每月10部电影+10部剧集
- 中文界面, 发现区域CN, 原始语言zh
- API keys: Prowlarr=306e863ef5fc41979f6e701a3f659526 | Radarr=13312d6d56ed48f78ba692204390b67c | Sonarr=8432ee6ca3174279858fbe839541b1eb
- 踩坑: Emby API 需要 urlBase=/emby 才能连通; hostname 参数是 IP 不含协议
- 待完成: Prowlarr 配 M-Team 索引器 → 已完成 ✅
## M-Team 索引器对接 Prowlarr ✅
- M-Team API Token: 019c9278-390d-7583-8ae8-4451ef5ed57c (从浏览器CDP操作创建+clipboard拦截获取)
- Prowlarr 添加 M-Team-TP 索引器, baseUrl=https://api.m-team.io
- Prowlarr → Radarr(fullSync) + Sonarr(fullSync) 应用关联完成
- Radarr/Sonarr 均已收到 "M-Team (Prowlarr)" 索引器
- 全链路: Jellyseerr求片 → Radarr/Sonarr → Prowlarr/M-Team搜索 → qB下载 → Emby入库
- 踩坑: M-Team API 需要 HMAC-SHA1 签名+JWT; JWT 会过期; 页面令牌脱敏需用clipboard拦截拿完整值
## 脚本修改约定
- 以后改脚本以 Mac 本地为源头,改完 push Gitea + GitHub
- 不在服务器上直接改
## 求片系统全链路打通 ✅
- 自动批准: 用户权限改为160(REQUEST+AUTO_APPROVE),求片直接自动通过
- 已有用户(muzichen/sistercon/xmg0828)权限都已更新
- 默认quality profile: Any(优先最高质量)
- 首批下载: X(恐怖X档案)28.4GB已完成入库 | The Shadow's Edge 37.1GB下载中
## Emby 四库分类 ✅
- 电影(/data/media/电影) → Radarr /movies
- 电视剧(/data/media/电视剧) → Sonarr /tvshows
- 动漫(/data/media/动漫) → Sonarr /anime (Jellyseerr默认)
- 动画(/data/media/动画) → /tv (儿童,手动管理,求片不进此库)
- Emby库: 电影(id:5) | 电视剧(id:1878) | 动漫(id:1887) | 动画(id:3)
- Jellyseerr配了两个Sonarr: 默认→/anime(动漫) | Sonarr-电视剧→/tvshows
- 已有动漫(Chained Soldier/Fights Break Sphere/Man's Inhumanity)从动画库移到动漫库
## 刮削完成 ✅
- OVH连不上TMDB封面需从Mac下载再base64上传(OVH直接curl TMDB只得2KB错误页)
- 魔都精兵的奴隶(Tmdb:139060) | 斗破苍穹(Tmdb:79481) | 人间非人(Tmdb:308085) — 中文名+简介+封面
- 恐怖X档案 | 庇护之地(Shelter) | 疯狂动物城 | 疯狂动物城2 — 已刮削
- 踩坑: Emby POST Items/{id} 写Name时如果Name变null会导致后续更新报"Value cannot be null"需带ForcedSortName一起写
- HEARTBEAT.md已加自动刮削任务: 每次心跳检查缺元数据的新片从Mac端web_fetch TMDB→base64上传封面
## 人间非人归类修正 ✅
- 人间非人是电视剧不是动漫,从动漫库移到电视剧库
- Sonarr路径: /anime → /tvshows
- 移库后Emby重建item(ID变了: 系列1915, E17→1917, E20→1918),需重新刮削
- 目前只有2集(E17/E20)M-Team资源不全Sonarr持续监控
## 动漫集级刮削 ✅
- 19集全部补上中文集名+简介+缩略图(ffmpeg 40%位置截取480p)
- Emby更新Episode需先GET完整item再POST回去(直接POST少字段会400)
- 魔都精兵的奴隶: S1×9集 + S2×7集 = 16集
- 斗破苍穹: 仅S5E105(1集/271集)M-Team资源极少Sonarr持续监控
- 人间非人: E17+E20(2集/21集)
## 封面上传踩坑
- OVH服务器curl TMDB图片只得2KB错误页(连不上TMDB)
- 正确流程: Mac下载封面 → base64 -i → pipe到SSH → curl POST Emby
- macOS base64命令: `base64 -i file`(不是`base64 file`)
## oc-monitor 迁移 Tarek → netcup ✅
- 从 155.103.66.237:3800 迁移到 159.195.41.188:3800
- Docker: oc-monitor:latest, 镜像66MB+数据5MB+源码1.2MB
- Nginx反代 + certbot HTTPS: https://openclaw.mjjvps.com (到期2026-05-26)
- 5个节点agent全部更新上报地址: Mac mini/HDY/Tarek/N100/netcup
- N100是OpenWrtagent跑在Docker容器里的Node.js版(oc-monitor-agent.js)
- Ciallo(155.103.67.87)节点已从面板删除
- Tarek旧容器+数据卷+镜像已清理
- Auth Token: D2DE595D2F9A6F12926212B326DA68BF
- 踩坑: Nginx WebSocket配置不能写死Connection "upgrade"需用map变量
## sub-bot 新部署 netcup ✅
- Bot Token: 8756357783:AAHKrQE7nuFxAbdyCW38X2wBu2tmVNrBBuw (来自155.103.67.87旧OpenClaw)
- 部署: /opt/sub-bot, systemd sub-bot.service, python3
- 域名: https://substore.mjjtop.com (certbot到期2026-05-26)
- HTTP订阅: https://substore.mjjtop.com/ead79f4a096586851100c5a39c2983b8/download?target=ClashMeta
- SUB_SECRET: ead79f4a096586851100c5a39c2983b8
- 管理员: 165067365
- 这是新装的独立实例xianyu上的旧sub-bot(@mjjvps_bot)不动
## 155.103.67.87 (Ciallo) 状态
- SSH连接超时机器可能没开
- 上面的OpenClaw待卸载(等机器恢复后处理)
## Tarek (155.103.66.237) 清理为测试机 ✅
- OpenClaw/Nginx/oc-monitor-agent/DStatus/certbot 全部卸载
- Docker容器和镜像清空(回收440MB)
- 只剩基础系统+Docker引擎+fail2ban
- 19G磁盘用9.5G2G内存用389MB
- 以后作为测试机使用
## Ciallo (155.103.67.87) 清理 ✅
- OpenClaw/oc-monitor-agent/DStatus/哪吒/playwright 全部卸载
- npm清理703 packagescrontab清空
- 只剩基础系统+Docker引擎
- 20G磁盘用3.5G2G内存用372MB
- oc-monitor面板已删除Ciallo和Tarek节点
## 财经快讯机器人 news-bot ✅
- Bot: @bookooobot_bot | Token: 8339960949:AAEbzWuGC81Ew4FN9Ple11J3QCwYooi3fXY
- 部署: netcup /opt/news-bot, systemd news-bot.service
- Mac源码: ~/.openclaw/workspace/projects/news-bot/
- 7个信息源: 金十数据/华尔街见闻/36氪/新浪财经/Google News/Finviz/TechCrunch
- 国际源英文自动翻译中文(Google Translate免费API)
- 新闻标题带可点击链接跳转原文
- AI评分过滤: >=8秒发, 6-7每30分钟汇总, <6不推
- 定时总结: 08:00/11:30/20:00
- 交互命令: /start /news /summary /sources /keywords /settings
- 管理员: 165067365
## NodeSeek 签到
- 朦胧: +5鸡腿累计428
- VP404: 今天已签过,重复被拦截
## News Bot 链接功能 ✅
- 所有7个源新闻标题加了可点击URL跳转原文
- 金十: flash_detail/{id}.html | 华尔街见闻: uri字段 | 36氪: 构造/newsflashes/{id}
- 新浪: url字段 | Google/TechCrunch: RSS link标签 | Finviz: HTML href提取
- parse_mode 全部从 Markdown 改为 HTML支持<a>标签)
- 已部署到 netcup
## Sub-Bot 分组管理功能 ✅
- 新增订阅分组功能561行→812行(+260行)
- 数据结构: sub_groups[] 每组有 id/name/secret/nodes
- 功能: 创建/删除/重命名分组、添加节点到分组、独立订阅链接、重置链接(旧链接失效)
- HTTP端点: /{group_secret}/download 自动匹配分组
- 三处同步: netcup(159.195.41.188) + xianyu(185.218.6.38) + Gitea(321bb43)
- Mac备份: ~/.openclaw/workspace/scripts/gitea-backup/sub-bot/bot.py
## Sub-Bot 后续修复 ✅
- 检测改为只更新状态不删除节点(auto_cleanup不再自动删)
- UI重构: 主菜单3入口(默认节点池/分组管理/全部检测)
- 返回按钮修复: menu_back→sg_back 避免pattern冲突
- 分组检测+删除节点功能
- 默认池显示订阅链接+重置按钮(get_default_secret()从data.json读)
- auto_cleanup完全移除只保留手动检测
- 三态检测: 🟢通/🟡未知/🔴不通 + IEPL专线提示
- 最终同步: Gitea ea233c3 + netcup + xianyu + Mac备份
## News-Bot 重复推送修复 ✅
- batch_items 立即 mark_pushed不等到推送时
- _batch_queue 加 existing_ids 去重
- 清空数据重启
## VPS-Reminder 恢复 ✅
- 从 HDY 备份(/data/backup/hdy/ on OVH)提取 vps-reminder 代码
- Bot token: 8300905342:AAH3Q78FuR5Exrw2zWYJHFRyVeLlws3xnww
- 部署到 netcup /opt/vps-reminder/systemd 启动
- 10台VPS数据完整恢复每天09:00自动检查到期
- 改进续费功能: 新增自动续期选项(根据周期自动算下一到期日) + 手动输入日期
- 依赖: python-telegram-bot, python-dotenv, python-dateutil
- Mac备份: ~/.openclaw/workspace/scripts/gitea-backup/vps-reminder/
## Stock-Monitor (HDY备份)
- 从 HDY 备份发现 /opt/tg-stock-monitor/ (商品库存监控Bot)
- 暂未部署,待顶尖决定是否需要
## EvoMap.ai 账号查看
- 账号: mf0@msn.com / @a110110
- 4个节点全部Offline: node_01885560ab27(OC2) / node_32e35d004633(OC3) / node_b59cc237cee2(HDY) / node_904d2652b8e2(Mac mini)
- Published Assets: 0 | Credits: 0 | 每节点 Reputation 50
- My Questions: 1 (之前提过一个问题)
- 当时注册了节点但没有成功发布Capsule/Gene
## OpenClaw 更新
- 2026.2.21-2 → 2026.2.24
## Koipy 迁移 HK优→netcup (失败,已回滚)
- 157.254.53.55 → 159.195.41.188 迁移尝试
- 错误1: 直接 docker pull latest 而不是用 koipy-linux-amd64.zip 覆盖二进制
- 错误2: sub-store 端口改成3002(因Gitea占3001),但外网访问不通
- 最终: netcup上Koipy+sub-store全部删除清理迁移取消
- ⚠️ 教训: Koipy正确部署方式是 docker create基础镜像 → unzip koipy-linux-amd64.zip → docker cp覆盖 koipy/pyrogram/resources → 补i18n
## Koipy 部署 155.103.66.237 (Tarek测试机)
- 用户提供 builtin.rar + koipy-linux-amd64.zip + config.yaml + sub-store-data
- 解压builtin.rar(需装unrar)unzip koipy-linux-amd64.zip
- docker create koipy-app(host网络) → docker cp覆盖binary/pyrogram/resources → 补i18n
- sub-store: xream/sub-store, 端口映射 3001:3001 + 3000:3000
- ⚠️ sub-store v2.21.27: 后端3000 前端3001Koipy config backend应指向3000不是3001
- config.yaml里 backend 已改为 http://172.17.0.1:3000/...
- i18n: 从173.249.199.16(朋友机)拷贝zh-CN.yml覆盖(自定义菜单文字:流媒体解锁/拓扑测试/点我开始顶尖等)
- Bot: @speedbot01_bot (7905907097)
- 173.249.199.16是朋友的Koipy只看不改做参考用
## ⚠️ Koipy 部署教训
- koipy-linux-amd64.zip 是正确的更新包不是docker save/load镜像
- sub-store新版后端端口3000前端3001别搞混
- i18n文件在 resources/localization/zh-CN.yml需拷贝到 resources/i18n/zh-CN.yml
- 155.103.66.237 SSH用密码(fJ7#vP9s@tL2qX!d)koipy_key连不上
- config.yaml最终用157.254.53.55的原始配置覆盖(不要乱改别人的后端节点配置)
## netcup (159.195.41.188) 服务清单
Docker:
- Gitea (gitea/gitea:latest, 端口3001→3000, SSH 2222→22)
- oc-monitor (oc-monitor:latest, 端口3800)
Systemd服务:
- openclaw.service — OpenClaw Gateway (TG bot 8390351834)
- news-bot.service — 财经快讯机器人 (@bookooobot_bot)
- sub-bot.service — 订阅管理 Bot
- vps-reminder.service — VPS到期提醒 Bot
- oc-monitor-agent.service — OC Monitor Agent
- nginx.service — 反代(mjjtop.com) + 短链
- docker.service
- fail2ban.service
## news-bot 免打扰功能
- 设置菜单(/settings)新增免打扰按钮
- 默认21:00-8:30可调整开始/结束时间
- 免打扰=静音通知(disable_notification),不是停止推送
- TG streaming已改off解决持续"正在输入"问题