
简介
什么是 PanCheck ?
PanCheck是一个网盘链接有效性检测系统,专为用户提供批量检测多种主流网盘平台分享链接的有效性。它能够快速确认链接是否仍然可用,从而帮助用户管理和维护网盘资源。
主要特点
- 🔍 多平台支持:支持检测
9种主流网盘平台的链接 - ⚡ 高性能检测:支持并发检测,可配置检测频率和超时时间
- 📊 数据统计:提供详细的检测统计和数据分析
- 🔄 定时任务:支持创建定时检测任务,自动检测链接有效性
- 💾 数据持久化:使用
MySQL存储检测记录,Redis 缓存失效链接 - 🎨 现代化界面:基于
React+TypeScript的现代化管理后台 - 🐳 容器化部署:提供
Docker Compose一键部署方案
支持 9 种网盘
- 夸克网盘
- UC网盘
- 百度网盘
- 天翼云盘
- 123网盘
- 115网盘
- 阿里云盘
- 迅雷云盘
- 中国移动云盘

总之,PanCheck 是一个高效、方便的工具,能够帮助用户轻松管理和检查网盘分享链接的有效性,适用于广泛的场景和用户需求。
安装
在群晖上以 Docker 方式安装。
采用 docker-compose 安装,将下面的内容保存为 docker-compose.yml 文件
services:
pancheck:
image: lampon/pancheck:latest
container_name: pancheck
ports:
- "8774:8080"
environment:
- SERVER_PORT=8080 # 服务端口
- SERVER_MODE=release # 服务模式
- SERVER_CORS_ORIGINS=* # 跨域请求允许的源
- DATABASE_TYPE=mysql # 数据库类型
- DATABASE_HOST=db # 数据库地址
- DATABASE_PORT=3306 # 数据库端口
- DATABASE_USER=root # 数据库用户名
- DATABASE_PASSWORD=your_password # 数据库密码
- DATABASE_DATABASE=pancheck # 数据库名称
- DATABASE_CHARSET=utf8mb4 # 数据库字符集
- CHECKER_DEFAULT_CONCURRENCY=5 # 默认并发数
- CHECKER_TIMEOUT=30 # 超时时间(秒)
- REDIS_ENABLED=true # 是否启用Redis
- REDIS_HOST=redis # Redis地址
- REDIS_PORT=6379 # Redis端口
- REDIS_USERNAME= # Redis用户名
- REDIS_PASSWORD= # Redis密码
- REDIS_INVALID_TTL=168 # 失效链接缓存时间(小时)
- ADMIN_PASSWORD=admin123 # 后台管理密码
volumes:
- ./data:/app/data
restart: unless-stopped
depends_on:
- db
- redis
healthcheck:
test: ["CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://localhost:8080/api/v1/health"]
interval: 30s
timeout: 10s
retries: 3
start_period: 40s
db:
image: mysql:8.0
container_name: pancheck-db
environment:
- MYSQL_ROOT_PASSWORD=your_password
- MYSQL_DATABASE=pancheck
- MYSQL_CHARACTER_SET_SERVER=utf8mb4
- MYSQL_COLLATION_SERVER=utf8mb4_unicode_ci
volumes:
- ./mysql:/var/lib/mysql
restart: unless-stopped
healthcheck:
test: ["CMD", "mysqladmin", "ping", "-h", "localhost", "-u", "root", "-p$$MYSQL_ROOT_PASSWORD"]
interval: 10s
timeout: 5s
retries: 5
redis:
image: redis:latest
container_name: pancheck-redis
# ports:
# - "6379:6379"
volumes:
- ./redis:/data
restart: unless-stopped
command: redis-server --appendonly yes
healthcheck:
test: ["CMD", "redis-cli", "ping"]
interval: 10s
timeout: 3s
retries: 3
关于环境变量的简单说明
| 容器 | 环境变量 | 默认值 | 说明 |
|---|---|---|---|
| PanCheck 主服务 | SERVER_PORT | 8080 | 服务使用的端口。 |
| SERVER_MODE | release | 服务运行模式,如 release 或 debug 。 | |
| SERVER_CORS_ORIGINS | * | 允许的跨域请求源,* 表示允许所有源。 | |
| DATABASE_TYPE | mysql | 使用的数据库类型。 | |
| DATABASE_HOST | db | 数据库地址,Docker 中使用服务名。 | |
| DATABASE_PORT | 3306 | 数据库端口。 | |
| DATABASE_USER | root | 连接数据库的用户名。 | |
| DATABASE_PASSWORD | your_password | 数据库的用户密码,建议更改为安全的密码。 | |
| DATABASE_DATABASE | pancheck | 数据库名称。 | |
| DATABASE_CHARSET | utf8mb4 | 数据库字符集。 | |
| CHECKER_DEFAULT_CONCURRENCY | 5 | 默认并发检测数。 | |
| CHECKER_TIMEOUT | 30 | 链接检测的超时时间(秒)。 | |
| REDIS_ENABLED | true | 是否启用 Redis 缓存。 | |
| REDIS_HOST | redis | Redis 服务器地址。 | |
| REDIS_PORT | 6379 | Redis 端口。 | |
| REDIS_USERNAME | Redis 用户名(可选)。 | ||
| REDIS_PASSWORD | Redis 密码(可选)。 | ||
| REDIS_INVALID_TTL | 168 | 失效链接在 Redis 缓存中的存活时间(小时)。 | |
| ADMIN_PASSWORD | admin123 | 后台管理界面的密码,建议修改为更安全的密码。 | |
| MySQL 数据库 | MYSQL_ROOT_PASSWORD | your_password | MySQL root 用户的密码。 |
| MYSQL_DATABASE | pancheck | 默认创建的数据库名称。 | |
| MYSQL_CHARACTER_SET_SERVER | utf8mb4 | 数据库字符集。 | |
| MYSQL_COLLATION_SERVER | utf8mb4_unicode_ci | 数据库排序规则。 | |
| Redis | (无) | Redis 配置不需要额外环境变量,使用默认设置。 |
然后通过 SSH 登录到您的群晖,执行下面的命令:
# 新建文件夹 pancheck 和 子目录
mkdir -p /volume1/docker/pancheck/{data,mysql,redis}
# 进入 pancheck 目录
cd /volume1/docker/pancheck
# 将 docker-compose.yml 放入当前目录
# 一键启动
docker-compose up -d

运行
初始化的时间有点长

在浏览器中输入 http://群晖IP:8774 就能看到主界面

丟入一个链接,很快就能检测出结果

整合到 OmniBox
在 OmniBox 的管理后台,设置 网盘检测

启用 网盘检测后,前端进行搜索的时候会启用 PancCheck 应用进行无效链接过滤

而未启用 网盘检测 时,可以搜到更多结果
从数量上看,多了
4个,说明有4个链接是无效的

后台服务
在浏览器中输入 http://群晖IP:8774/admin/login 就能看到登录界面
密码为环境变量
ADMIN_PASSWORD中设定的值

登录成功后的主界面,失效链接数符合我们在前端看到的结果

PanCheck 还提供 API 接口检测网盘链接,有兴趣可以看官方的详细说明
参考文档
Lampon/PanCheck
地址:https://github.com/Lampon/PanCheck
743

被折叠的 条评论
为什么被折叠?



