1. 项目背景与设备选型
N1盒子作为一款经典的ARM架构迷你主机,凭借其斐讯遗产的硬件配置和极高的性价比,在开发者社区中一直保持着旺盛的生命力。我手头这台N1已经稳定运行了三年多,从最初的电视盒子刷成OpenWrt路由,再到现在的轻量级服务器,这次决定用它来部署IYUUPlus这个种子辅种工具。
选择N1盒子的核心原因有三点:首先是功耗表现,实测待机功耗仅2.5W,24小时运行电费几乎可以忽略不计;其次是性能够用,Amlogic S905D这颗四核Cortex-A53处理器搭配1GB内存,应对轻量级Docker应用绰绰有余;最重要的是社区支持完善,Armbian系统经过多年迭代已经非常稳定。
2. 基础环境准备
2.1 系统镜像选择与刷机
当前主流选择是Armbian 23.02 Jammy版本,基于Debian 11构建。下载时需要注意选择带_bullseye_current_5.15.34内核的镜像,这个版本对N1的WiFi和蓝牙驱动支持最完善。刷机过程与传统方法无异:
- 使用BalenaEtcher将镜像写入U盘
- U盘启动后执行
./install-aml.sh写入eMMC - 关键步骤:首次启动后务必运行
armbian-config,在System选项中安装firmware-misc-nonfree驱动包
注意:不要使用最新版Armbian,其6.x内核存在USB3.0驱动兼容性问题,可能导致外接硬盘频繁掉线。
2.2 必要依赖安装
IYUUPlus需要PHP环境和MySQL数据库支持,推荐使用Docker部署以保持环境隔离。先安装基础工具链:
bash复制apt update && apt upgrade -y
apt install -y docker.io docker-compose git curl
配置Docker镜像加速(国内用户必需):
bash复制mkdir -p /etc/docker
cat > /etc/docker/daemon.json <<EOF
{
"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]
}
EOF
systemctl restart docker
3. IYUUPlus部署实战
3.1 容器编排配置
创建专属目录并编写docker-compose.yml:
bash复制mkdir -p /opt/iyuuplus && cd /opt/iyuuplus
配置文件示例(重点参数说明):
yaml复制version: '3'
services:
mysql:
image: mysql:5.7
container_name: iyuu-mysql
environment:
MYSQL_ROOT_PASSWORD: your_strong_password
MYSQL_DATABASE: iyuu
MYSQL_USER: iyuu
MYSQL_PASSWORD: iyuu_password
volumes:
- ./mysql:/var/lib/mysql
restart: unless-stopped
iyuuplus:
image: iyuucn/iyuuplus:latest
container_name: iyuu-plus
depends_on:
- mysql
environment:
DB_HOST: mysql
DB_NAME: iyuu
DB_USER: iyuu
DB_PASS: iyuu_password
volumes:
- ./config:/IYUU/config
- ./logs:/IYUU/logs
- /path/to/your/torrents:/downloads
ports:
- "8787:8787"
restart: unless-stopped
关键配置说明:
- MySQL使用5.7版本而非8.0,因为IYUUPlus的部分SQL语法需要兼容模式
- 数据卷映射中,/downloads需要指向实际下载目录
- 8787端口是Web管理界面默认端口
3.2 首次运行配置
启动服务后需要进行初始化设置:
bash复制docker-compose up -d
docker logs -f iyuu-plus # 监控启动日志
访问http://N1_IP:8787完成安装向导,特别注意:
- 数据库地址填写
mysql(Docker内部网络) - 站点配置中的"下载器路径"需与compose文件中的volume映射一致
- 推荐开启自动备份功能,将备份目录设置为
/IYUU/config/backup
4. 性能优化与调校
4.1 内存限制调整
由于N1只有1GB物理内存,需要对Docker容器做限制:
yaml复制services:
iyuuplus:
mem_limit: 512m
memswap_limit: 768m
实测发现MySQL容器分配256MB内存足够运行,可以通过docker stats命令监控实际使用情况。
4.2 辅种任务调度
在N1这种低功耗设备上,需要合理设置任务间隔:
- 普通站点辅种间隔建议≥30分钟
- 大站(如馒头)建议设置为2小时
- 启用"深夜模式":23:00-7:00暂停任务
在config/config.php中可以调整以下参数:
php复制$config['sleep_time'] = 1800; // 任务间隔秒数
$config['max_threads'] = 3; // 并发线程数
5. 常见问题排查
5.1 数据库连接失败
典型错误日志:
code复制SQLSTATE[HY000] [2002] Connection refused
解决方案:
- 确认mysql容器已正常运行:
docker ps -a - 检查网络连通性:
docker exec -it iyuu-plus ping mysql - 验证数据库凭据:
docker exec -it iyuu-mysql mysql -uiyuu -p
5.2 下载器路径异常
表现为辅种成功但显示"找不到文件",需要:
- 确认docker-compose中的volume映射路径一致
- 在IYUU后台"下载器设置"中检查路径
- 对于qBittorrent,需关闭"自动管理模式"
5.3 内存不足崩溃
症状:容器频繁重启,日志出现OOM提示
优化方案:
- 减少并发任务数
- 添加swap空间:
bash复制fallocate -l 1G /swapfile
chmod 600 /swapfile
mkswap /swapfile
swapon /swapfile
- 考虑使用SQLite替代MySQL(需修改IYUU源码)
6. 进阶使用技巧
6.1 外接硬盘优化
当使用USB3.0移动硬盘存储种子时:
- 修改/etc/fstab添加
noatime,nodiratime挂载参数 - 为硬盘单独创建docker volume:
bash复制docker volume create --driver local \
--opt type=ext4 \
--opt device=/dev/sda1 \
--opt o=uid=1000,gid=1000 \
torrent-data
6.2 自动化备份
创建每日备份脚本/opt/iyuuplus/backup.sh:
bash复制#!/bin/bash
BACKUP_DIR="/opt/iyuuplus/backups"
mkdir -p $BACKUP_DIR
docker exec iyuu-mysql mysqldump -uiyuu -piyuu_password iyuu > $BACKUP_DIR/iyuu_$(date +%Y%m%d).sql
tar czf $BACKUP_DIR/config_$(date +%Y%m%d).tar.gz -C /opt/iyuuplus/config .
find $BACKUP_DIR -type f -mtime +7 -delete
添加到crontab:
bash复制0 3 * * * /bin/bash /opt/iyuuplus/backup.sh
6.3 远程访问安全
建议通过Nginx反代增加HTTPS支持:
nginx复制server {
listen 443 ssl;
server_name iyuu.yourdomain.com;
ssl_certificate /path/to/cert.pem;
ssl_certificate_key /path/to/key.pem;
location / {
proxy_pass http://127.0.0.1:8787;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
配合Fail2Ban防止暴力破解:
ini复制[iyuu-auth]
enabled = true
filter = iyuu-auth
port = 8787
maxretry = 3
findtime = 3600
bantime = 86400