Pixiv - KiraraShss
1168 字
6 分钟
Idol Tracker - 开源追星神器部署指南
项目简介
Idol Tracker 是我开发的一款开源追星工具。作为一个追星党,我深知每天手动刷微博、签到超话的痛苦,于是决定用技术解决这个问题。
项目地址:https://github.com/1776686596/idol-tracker
核心功能
| 功能 | 说明 |
|---|---|
| 微博动态聚合 | 自动抓取爱豆微博,时间轴展示 |
| 超话自动签到 | 每天 8:00 定时签到,告别断签 |
| 美图画廊 | 瀑布流展示高清图片 |
| 消息推送 | 支持企业微信、邮件通知 |
| 扫码登录 | 微博扫码绑定,安全快捷 |
界面预览
首页介绍
部署后访客看到的首页,展示项目核心功能介绍:

动态聚合
主界面 - 聚合展示所有关注爱豆的最新动态:

动态详情 - 点击查看某条动态的详细内容:

单个爱豆动态 - 查看某一位爱豆的所有动态:

美图画廊
瀑布流展示爱豆高清美图:

超话自动签到
自动完成每日超话签到,告别断签烦恼:

管理后台
管理员登录:

数据概览 - 统计卡片 / 签到趋势图:

用户管理 - 用户列表 / 状态管理:

系统配置 - 爬虫间隔设置 / 推送配置:

技术架构
项目采用 Monorepo 架构,前后端分离:
idol-tracker/├── packages/│ ├── web/ # 用户前台 (Next.js 14)│ ├── admin/ # 管理后台 (Next.js 14)│ ├── server/ # 后端服务 (Express.js)│ └── crawler/ # 爬虫模块技术选型:
- 前端:Next.js 14 + TailwindCSS
- 后端:Express.js + PostgreSQL + Redis
- 认证:JWT
部署教程
环境要求
- Node.js >= 18.0.0
- PostgreSQL >= 14
- Redis
Step 1: 克隆项目
git clone https://github.com/1776686596/idol-tracker.gitcd idol-trackernpm installStep 2: 配置数据库
创建 PostgreSQL 数据库:
CREATE DATABASE idol_tracker;CREATE USER idoltracker WITH PASSWORD 'your-password';GRANT ALL PRIVILEGES ON DATABASE idol_tracker TO idoltracker;初始化表结构:
psql -U idoltracker -d idol_tracker -f packages/server/sql/init.sqlStep 3: 配置环境变量
cp packages/server/.env.example packages/server/.env编辑 .env 文件:
# 服务配置PORT=3001NODE_ENV=development
# 数据库DATABASE_URL=postgresql://idoltracker:your-password@localhost:5432/idol_tracker
# JWT 密钥(生产环境请修改)JWT_SECRET=your-super-secret-jwt-key
# RedisREDIS_URL=redis://localhost:6379
# 微博爬虫(必填)WEIBO_COOKIE=WEIBO_XSRF_TOKEN=
# 企业微信推送(可选)WECHAT_WEBHOOK_KEY=
# 邮件推送(可选)SMTP_HOST=smtp.example.comSMTP_PORT=465SMTP_USER=notify@example.comSMTP_PASS=your-smtp-passwordSMTP_FROM=Idol Tracker <notify@example.com>Step 4: 获取微博 Cookie
这是最关键的一步,爬虫需要微博 Cookie 才能工作:
- 登录 weibo.com
- 按
F12打开开发者工具 - 切换到
Network标签 - 刷新页面,点击任意请求
- 在
Request Headers中找到Cookie,复制整个值 - 同样找到
x-xsrf-token,复制其值
将这两个值填入 .env 文件对应位置。
Step 5: 启动服务
一键启动(推荐):
npm run dev这会同时启动三个服务:
- 用户前台:http://localhost:3000
- 管理后台:http://localhost:3002
- 后端 API:http://localhost:3001
单独启动:
npm run dev:web # 用户前台npm run dev:admin # 管理后台npm run dev:server # 后端服务Step 6: 登录系统
默认管理员账号:
| 账号 | 密码 |
|---|---|
| admin | admin123 |
生产环境请务必修改默认密码!
使用指南
查看爱豆动态

- 登录后进入主界面
- 系统自动聚合所有关注爱豆的最新动态
- 点击任意动态可查看详情
浏览美图画廊

- 进入「美图」页面
- 瀑布流展示所有爱豆的高清图片
- 支持大图预览和无限滚动
超话自动签到

- 绑定微博账号后自动开启
- 每天早上 8:00 自动执行签到
- 签到结果可通过企业微信/邮件推送
配置消息推送

在管理后台「系统设置」中配置:
- 企业微信:填入群机器人 Webhook Key
- 邮件:配置 SMTP 服务器信息
数据库结构
主要数据表:
| 表名 | 用途 |
|---|---|
| users | 用户账号 |
| admins | 管理员账号 |
| idols | 爱豆信息 |
| subscriptions | 用户订阅关系 |
| weibo_posts | 微博动态缓存 |
| user_weibo_bindings | 用户微博绑定 |
| checkin_records | 签到记录 |
| system_config | 系统配置 |
常见问题
Q: 爬虫不工作?
A: 检查微博 Cookie 是否过期,Cookie 有效期约 30 天,过期后需重新获取。
Q: 签到失败?
A: 确保已正确绑定微博账号,且账号已关注对应超话。
Q: 如何部署到生产环境?
A: 建议使用 PM2 管理 Node 进程,配合 Nginx 反向代理。记得修改 JWT_SECRET 和数据库密码。
写在最后
这个项目是我为了解决自己追星需求而开发的,希望能帮到有同样需求的朋友。
如果觉得有用,欢迎 Star 支持:GitHub
有问题或建议欢迎提 Issue!
分享
如果这篇文章对你有帮助,欢迎分享给更多人!
Idol Tracker - 开源追星神器部署指南
https://blog.daisheng.xyz/posts/idol-tracker-guide/