部署 Audiobookshelf 需要先准备 Docker 环境,再通过 Docker Compose 定义服务、挂载数据目录和映射端口,最后启动容器并完成初始化配置。具体步骤如下。
1. 准备工作
确保服务器或电脑上已经安装 Docker 和 Docker Compose。
创建一个用于存放 Docker Compose 文件和数据的目录,例如 audiobookshelf。目录结构可参考:
mkdir audiobookshelf
cd audiobookshelf2. 创建 Docker Compose 文件
在 audiobookshelf 目录中创建 docker-compose.yml,定义 Audiobookshelf 服务及其依赖项。一个基本的 docker-compose.yml 文件如下所示:
version: "3.8"
services:
audiobookshelf:
image: advplyr/audiobookshelf:latest # 使用最新的 Audiobookshelf 镜像
container_name: audiobookshelf
volumes:
- ./config:/config # 持久化配置文件
- ./library:/library # 持久化音频文件
- ./metadata:/metadata # 持久化元数据
ports:
- "80:80" # 将容器的 80 端口映射到主机的 80 端口(可以修改)
- "13378:13378" # 用于转换音频的端口
environment:
- AUDIOBOOKSHELFD_UID=1000 # (可选) 指定用户 ID,解决权限问题 (通常为你的用户ID)
- AUDIOBOOKSHELFD_GID=1000 # (可选) 指定组 ID,解决权限问题 (通常为你的组ID)
restart: unless-stopped # 容器意外停止时自动重启
networks:
- audiobookshelf-network
networks:
audiobookshelf-network:
driver: bridge配置解释
version: "3.8":指定 Docker Compose 文件的版本。services:定义服务。audiobookshelf:定义 Audiobookshelf 服务。image: advplyr/audiobookshelf:latest:指定使用的 Docker 镜像。advplyr/audiobookshelf是官方镜像,:latest表示使用最新版本。建议使用特定版本,避免自动更新导致的问题。container_name: audiobookshelf:给容器指定名称。volumes:将主机上的目录挂载到容器中,实现数据的持久化。./config:/config:将主机上audiobookshelf/config目录挂载到容器的/config目录,用于存储 Audiobookshelf 的配置文件。./library:/library:将主机上audiobookshelf/library目录挂载到容器的/library目录,用于存储音频文件。./metadata:/metadata:将主机上audiobookshelf/metadata目录挂载到容器的/metadata目录,用于存储元数据。
ports:将容器的端口映射到主机的端口,以便从主机访问 Audiobookshelf。"80:80":将容器的 80 端口映射到主机的 80 端口。这意味着你可以通过http://你的服务器IP访问 Audiobookshelf。如果 80 端口被占用,可以将其修改为其他未使用的端口,例如8080:80。"13378:13378":用于转换音频的端口。
environment:设置环境变量。AUDIOBOOKSHELFD_UID=1000和AUDIOBOOKSHELFD_GID=1000:可选。如果遇到权限问题,可以设置这两个环境变量,将其设置为运行 Docker 的用户的 UID 和 GID。可以使用id命令查看你的 UID 和 GID。
restart: unless-stopped:配置容器的重启策略。unless-stopped表示除非手动停止容器,否则容器意外停止时会自动重启。- 服务中的
networks:将容器连接到名为audiobookshelf-network的网络。 - 顶层的
networks:定义网络。其中audiobookshelf-network定义了一个桥接网络,供 Audiobookshelf 容器使用。
3. 启动 Audiobookshelf
在 audiobookshelf 目录下,执行以下命令启动 Audiobookshelf:
docker-compose up -d-d 参数表示在后台运行容器。
4. 访问与初始化配置
等待一段时间,让容器启动完成。然后在浏览器中输入 http://你的服务器IP(如果你在本地运行,则使用 http://localhost)访问 Audiobookshelf。如果你修改了端口映射,请使用相应的端口号,例如 http://你的服务器IP:8080。
第一次访问 Audiobookshelf 时,需要创建一个管理员用户,并配置媒体库的路径。将 /library 指向你存储音频文件的目录。
5. 注意事项
- 权限问题:如果遇到权限问题,请确保 Docker 容器中的用户具有访问音频文件目录的权限。可以尝试设置
AUDIOBOOKSHELFD_UID和AUDIOBOOKSHELFD_GID环境变量。 - 端口冲突:如果 80 端口被占用,请修改
docker-compose.yml文件中的端口映射。 - 镜像版本:建议使用特定版本的 Audiobookshelf 镜像,避免自动更新导致的问题。例如:
image: advplyr/audiobookshelf:2.2.0。 - 数据备份:定期备份
config、library和metadata目录,以防止数据丢失。 - 高级配置:Audiobookshelf 提供了许多高级配置选项,例如反向代理、SSL 等,可以参考官方文档进行配置。
一起交流
分享你的思考,让讨论更进一步。