Zenith Horizon

部署本地有声书服务

2026/04/16
loading

采用 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天试用,付费激活后建立定时备份激活数据

  1. 创建备份脚本如 ~/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"
  1. 赋予执行权限

bash

chmod +x /root/backup_leelaa.sh
  1. 添加定时任务(crontab)

使用 root 用户执行(因为需要读取 /root 下的文件):

bash

crontab -e

添加以下行(每日 16:00 执行):

text

0 16 * * * /root/backup_leelaa.sh

保存退出即可。

Author: Max

Permalink: /archives/leelaa-reader

Published: 2026-04-16 13:45:27

Updated: 2026-04-16 13:34:36

License: 本文采用知识共享署名-非商业性使用 4.0 国际许可协议进行许可

CATALOG