BT索引器Bitmagnet部署
自托管BT索引器Bitmagnet部署教程:全网资源自由检索,附备份恢复方案
一、Bitmagnet是什么?
Bitmagnet 是一款开源自托管的BT索引器,核心功能包括网络搜索、内容分类、种子索引,支持检索全网活跃的电影、电视剧、电子书、音乐、软件和游戏等BT资源。
它的特点很鲜明:
- 双容器架构(bitmagnet主服务 + postgres数据库),支持Docker Compose一键部署;
- 内置DHT爬虫,自动抓取全网活跃种子;
- 支持TMDB元数据刮削(海报、剧情简介等),可选配;
- 兼容Torznab接口,可对接PT客户端;
- 资源质量“开盲盒”:热门资源分享率高,下载速度能突破10M/s,冷门资源可能速度较慢。
如果你想摆脱第三方BT搜索的限制,搭建自己的私人资源检索库,Bitmagnet是绝佳选择!
二、部署前准备
1. 环境要求
- 已安装 Docker 和 Docker Compose(建议Docker版本≥20.10,Compose版本≥3.8);
- 服务器/设备至少预留 2GB 内存 + 10GB 存储空间(数据库会随索引量增长,建议预留更多空间);
- 网络环境支持DHT网络连接(无需公网IP,但需开放相关端口)。
2. 文件夹创建
在宿主机的Docker存储目录下创建Bitmagnet专用文件夹(用于持久化配置、数据和数据库):
1 | # 示例路径(请根据自己的实际存储路径修改) |
config:存储Bitmagnet配置文件、日志;data:存储应用临时数据和缓存;postgres-init:数据库初始化脚本目录(可选)。
三、Docker Compose部署配置
1. 创建docker-compose.yml文件
进入Bitmagnet目录,创建并编辑docker-compose.yml文件:
1 | cd /volume1/docker/bitmagnet |
2. 完整配置代码(已修复原代码问题)
将以下代码复制到文件中,注意修改标注的自定义项:
1 | version: '3.8' |
3. 关键配置说明(必须修改)
- 路径替换:将所有
/volume1/docker/bitmagnet替换为你第一步创建的实际路径; - TMDB API Key(可选):
- 作用:刮削影视资源的海报、剧情简介等元数据;
- 获取方法:访问TMDB官网注册账号,进入「设置→API→创建API密钥」,按提示申请即可;
- 不填影响:仅无元数据展示,不影响搜索和下载。
- TORZNAB_API_KEY:自定义一个强密码(如
random123!@#),后续PT客户端连接时需要; - 资源限制:根据设备性能调整
deploy.resources中的CPU和内存限制(比如树莓派可设cpus: '1'、memory: 1G)。
四、启动部署
1. 启动容器
在docker-compose.yml所在目录执行:
1 | docker compose up -d |
- 首次启动会拉取镜像并初始化数据库,耗时约1-5分钟(取决于网络速度);
- 查看启动日志(可选):
docker logs -f bitmagnet。
2. 验证部署
- 访问WebUI:浏览器输入
http://服务器IP:3333(如http://192.168.1.100:3333); - 检查服务状态:
- 点击页面右上角的「三角形图标」(服务控制);
- 除了第3个「关闭」选项,其余(HTTP Server、Queue Server、DHT Crawler)需为「开启状态」;
- 若DHT Crawler未开启,执行
docker restart bitmagnet重启主服务即可。
五、数据备份与恢复(解决官方方法报错问题)
Bitmagnet的核心数据存储在PostgreSQL数据库中,推荐定期备份,避免索引数据丢失。
方案一:pg_dump备份(推荐,稳定无报错)
1. 备份步骤
停止Bitmagnet主服务(避免数据写入冲突):
1
docker stop bitmagnet
⚠️ 注意:postgres数据库服务保持运行,无需停止。
创建备份文件(替换路径为你的备份目录):
1
2
3
4docker exec -t bitmagnet-postgres pg_dump \
-U postgres \
-d bitmagnet \
> /volume1/backup/bitmagnet_$(date +%F).sql- 备份文件名自动带上日期(如
bitmagnet_2025-11-25.sql); - 备份耗时取决于数据库大小,等待命令执行完成(无输出即为结束)。
- 备份文件名自动带上日期(如
重启Bitmagnet服务:
1
docker start bitmagnet
2. 恢复步骤
停止Bitmagnet主服务:
1
docker stop bitmagnet
清空旧数据并导入备份(替换备份文件路径):
1
2
3
4
5
6
7
8
9
10# 进入数据库容器,清空现有数据
docker exec -i bitmagnet-postgres psql -U postgres -d bitmagnet << EOF
DROP SCHEMA public CASCADE;
CREATE SCHEMA public;
GRANT ALL ON SCHEMA public TO postgres;
\c
EOF
# 导入备份文件(替换为你的备份文件路径)
cat /volume1/backup/bitmagnet_2025-11-25.sql | docker exec -i bitmagnet-postgres psql -U postgres -d bitmagnet重启服务完成恢复:
1
docker start bitmagnet
方案二:直接复制数据目录(简单粗暴)
适合快速迁移或备份,成功率略低于方案一:
备份:停止所有服务,复制
postgres-data目录(数据库存储目录)到备份位置:1
2docker compose down
cp -r /volume1/docker/bitmagnet/postgres-data /volume1/backup/恢复:停止所有服务,删除原有
postgres-data目录,将备份目录覆盖回去:1
2
3docker compose down
rm -rf /volume1/docker/bitmagnet/postgres-data
cp -r /volume1/backup/postgres-data /volume1/docker/bitmagnet/权限设置:恢复后需确保目录权限正确(否则数据库无法启动):
1
chown -R 999:999 /volume1/docker/bitmagnet/postgres-data
⚠️ 注意:999是postgres容器的默认用户ID,若修改过容器用户需对应调整。
六、常见问题排查
1. DHT Crawler一直关闭?
- 解决方案1:重启Bitmagnet服务:
docker restart bitmagnet; - 解决方案2:给容器赋予高权限,修改
docker-compose.yml中bitmagnet服务的deploy部分,增加privileged: true:然后执行1
2
3bitmagnet:
# 其他配置不变
privileged: true # 增加此行,赋予高权限docker compose up -d重启服务。
2. WebUI无法访问?
- 检查端口是否占用:
netstat -tulpn | grep 3333,若占用则修改docker-compose.yml中的3333:3333为其他端口(如3335:3333); - 检查防火墙:开放3333、3334端口(TCP+UDP);
- 检查容器状态:
docker ps,若bitmagnet容器未运行,查看日志:docker logs bitmagnet。
3. 数据库启动失败?
- 检查目录权限:确保
postgres-data目录的所有者是999:999(执行ls -ld /volume1/docker/bitmagnet/postgres-data查看); - 检查存储空间:确保磁盘有足够空间(至少预留1GB)。
七、总结
Bitmagnet是一款功能强大的自托管BT索引器,部署简单且核心功能免费开源。通过它可以摆脱第三方搜索的广告和限制,打造自己的私人资源库。
使用体验上,热门资源的下载速度确实很惊艳,冷门资源则需要耐心等待。建议定期备份数据库,避免长时间爬取的索引数据丢失。如果需要更精准的元数据展示,不妨申请一个TMDB API Key,体验会更好~
如果遇到其他问题,可参考Bitmagnet官方文档或在评论区交流!

.jpg)
.jpg)
.jpg)