采用 docker 方式部署 leelaa Reader 有声书服务。
docker-compose 部署
创建 docker-compose.yml :
services:
leelaa-reader:
image: leedaisen/leelaa-reader-server:latest
container_name: leelaa-reader
ports:
- "8686:8686"
volumes:
- ./data:/data # 根据情况映射容器数据的本地目录
environment:
- PORT=8686
- HTTPS_PORT=8686
- DATABASE_URL=sqlite:/data/leelaa.db
- DEFAULT_ADMIN_USERNAME=admin
# 可选:不传则首启自动生成随机密码并写入 /data/password.txt
- DEFAULT_ADMIN_PASSWORD=请设置强密码
- TZ=Asia/Shanghai
restart: unless-stopped部署容器:
docker compose up -d浏览器打开 <IP>:8686 即可打开 Leelaa Reader 。
下面就可以添加书库。
定期备份激活数据
部署后有14天试用,付费激活后建立定时备份激活数据
创建备份脚本如
~/backup_leelaa.sh`
#!/bin/bash
# 源目录与匹配模式
SOURCE_BASE="/root/docker/leelaa/data" # 定位 leelaa 的数据 data 位置
PATTERN="leelaa*"
# 目标目录(注意中文和空格,用双引号包裹)
TARGET_DIR="/mnt/quark/我的备份/leelaa_data" # 这是我的备份目的位于挂载的夸克网盘
# 日志文件(可选)
LOG_FILE="/var/log/backup_leelaa.log"
# 1. 检查目标挂载点是否存在
if ! mountpoint -q "/mnt/quark"; then
echo "$(date) 错误:/mnt/quark 未挂载" >> "$LOG_FILE"
exit 1
fi
# 2. 创建目标目录
mkdir -p "$TARGET_DIR"
# 3. 切换到源目录,便于通配符展开
cd "$SOURCE_BASE" || {
echo "$(date) 错误:无法进入源目录 $SOURCE_BASE" >> "$LOG_FILE"
exit 1
}
# 4. 遍历匹配 leelaa* 的所有文件/目录,逐个同步
for item in $PATTERN; do
if [ -e "$item" ]; then
# -a: 归档模式(保留权限、时间戳等)
# -v: 详细输出(可选)
# 注意:目标路径末尾不加斜杠,表示将 item 放到 TARGET_DIR 下
rsync -av "$item" "$TARGET_DIR/" >> "$LOG_FILE" 2>&1
fi
done
echo "$(date) 备份完成" >> "$LOG_FILE"赋予执行权限
bash
chmod +x /root/backup_leelaa.sh添加定时任务(crontab)
使用 root 用户执行(因为需要读取 /root 下的文件):
bash
crontab -e添加以下行(每日 16:00 执行):
text
0 16 * * * /root/backup_leelaa.sh保存退出即可。