目录

「Spoken」护眼从听小说开始

自托管有声书播客的运维记录。

推流 / Streaming

Audiobookshelf

部署

docker compose 配置参考如下

services:
  audiobookshelf:
    image: advplyr/audiobookshelf:2.36.0
    container_name: audiobookshelf
    restart: unless-stopped
    networks:
      - traefik_proxy
    environment:
      - AUDIOBOOKSHELF_UID=1000
      - AUDIOBOOKSHELF_GID=1000
      - TZ=Asia/Shanghai
    volumes:
      - /path/to/your/audiobookshelf/config:/config
      - /path/to/your/audiobookshelf/metadata:/metadata
      - "/path/to/your/audiobook:/audiobooks:ro"
      - "/path/to/your/podcasts:/podcasts:ro"
    labels:
      - "traefik.enable=true"
      - "traefik.docker.network=traefik_proxy"
      - "traefik.http.routers.audiobookshelf.rule=Host(`spoken.aio.yirami.xyz`)"
      - "traefik.http.routers.audiobookshelf.entrypoints=websecure"
      - "traefik.http.routers.audiobookshelf.tls=true"
      - "traefik.http.routers.audiobookshelf.tls.certresolver=le"
      - "traefik.http.routers.audiobookshelf.middlewares=authelia-auth"
      - "traefik.http.services.audiobookshelf.loadbalancer.server.port=80"
    deploy:
      resources:
        limits:
          cpus: '1.0'
          memory: 256M
        reservations:
          memory: 128M
    healthcheck:  # 避免过多的日志噪声,官方建议禁用健康检查
      test: ["CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://localhost/healthcheck"]
      interval: 30s
      timeout: 5s
      retries: 3
      start_period: 10s

维护

Trouble Shoot
  1. 导入有声书后音轨中的音频文件有缺失?

    这是因为一下子导入了太多音频文件,需要控制批量导入时文件的数量。建议使用 media-process 仓库的 audiobook.batch_import_audiobook 模块

    uv run -m audiobook.batch_import_audiobook --src /path/to/source --dst /path/to/dest -b 2 -t 30
  2. 导入有声书后音轨文件齐全,但章节中只有部分音频?

    需要从音轨生成章节,步骤:编辑章节->将音轨设置为章节

  3. 导入的有声书在收听时,无法精确跳转?

    这是音频格式不够现代(如 mp3 等),无法精确定位,建议使用 media-process 仓库的 audiobook.process_audiobook 模块统一转为 m4a

    uv run process-audiobook /path/to/audiobook/dir