{"repo":"tod-zhang/fuck-competitors","free":true,"listed":false,"github":"https://github.com/tod-zhang/fuck-competitors","clone":"git clone https://github.com/tod-zhang/fuck-competitors.git","description":"Watch competitors' sitemaps and journal every page change — self-hosted, open-source competitor monitoring (FastAPI + SQLite, one-command Docker).","language":"HTML","stars":13,"topics":[],"license":"MIT","category":"mcp-servers","readme_excerpt":"Fuck Competitors 盯紧竞争对手的网站，把每一次变化都记成日志。 一个自托管、开源的竞品监控应用。填入竞品的 sitemap.xml ，它会定期巡检页面的 新增 / 删减 / 修改 ，像写观察日记一样记录下来。温暖的手账风界面，自带像素眼睛吉祥物。 界面截图 最近动态 变更日志 --- --- 内容 diff 竞品列表 --- 功能特性 - 📒 变更日志 —— 竞品页面的新增、删减、内容修改，按日期分组、时间倒序，可按竞品和变更类型筛选 - 🔍 两层监控 —— 轻量的 sitemap 增删监控（全站）+ 可选的正文逐行 diff（按竞品开启） - 🧠 AI 分析（MCP） —— 内置只读 MCP server，把变化和 diff 开放给 Claude Code / Codex 等 Agent，直接分析\"对手在优化什么\" - 🤫 静默基线 —— 首次巡检只记录\"现在有哪些页\"，不会用初始清单刷屏日志 - ⚙️ 竞品设置 —— 随时改名称 / sitemap 地址 / 巡检频率、立即巡检、删除竞品 - 🐳 一条命令部署 —— 单容器 + 单个 SQLite 文件，无需任何外部服务 - 🪶 无前端构建 —— 服务端渲染 + 原生 JS，克隆即跑 快速开始 就这样 —— 一个容器、一个 SQLite 文件（持久化在主机的 ./data 目录里），不依赖任何外部服务。 安装方式 方式一：Docker（推荐） 数据库就是主机仓库目录下的 ./data/app.db 。它是 目录挂载 （不是 docker 命名卷），所以重建镜像、 docker compose down -v 、改项目名都不会动它——升级代码后重新部署，竞品记录都还在。需要重置为空白：删掉 ./data 目录再 up 。 从 CI/脚本里 每次 clone 到新目录 部署的话，相对的 ./data 会落在新目录里。这种情况把 compose 里的挂载改成一个固定的绝对路径（如 /var/lib/fuck-competitors/data:/data ），数据就和代码目录解耦了。 仓库自带一个 Makefile 封装了常用命令（固定 -p fuck-competitors 项目名，并在经典构建器下构建， 这样即使项目目录是中文/非 ASCII 路径也能跑）： 方式二：源码本地运行 ⚠️ 调度器跑在进程内，请用 单个 worker （默认即是）。多 worker 会重复触发巡检。 使用流程 1. 添加竞品 —— 点「＋ 添加竞品」，填竞品的 sitemap.xml ，选巡检频率。 首次巡检是 静默建基线 ：只记录当前全部页面， 不会 给每个页面灌一条\"新增\" —— 初始清单里没有\"变化\"这个信号。 2. 让它跑 —— 每个竞品按各自频率自动重抓（或在卡片设置里点「立即巡检」马上查一次）。 从第二次巡检起，只有真正的 新增 / 删减 / 疑似修改 才会进变更日志。 3. 盯关键内容 —— 想看定价、文案、客户案例的 逐行内容 diff ，在「竞品列表」里 对该竞品打开 详细监控 开关。开启后，每次详细巡检会抓取它 全部页面 的正文做对比， 记录到底改了什么。 AI 分析（MCP） 应用自带一个 只读 MCP server ，把竞品的变化和内容 diff 以工具形式开放给 AI Agent （Claude Code / Codex / Claude Desktop / ChatGPT 等）。接上之后用 自然语言 问就行 —— Agent 自己调下面的工具拉数据、读 diff、","default_branch":null,"files":null,"tree":[],"storefront":"/r/tod-zhang","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/tod-zhang/fuck-competitors/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}