好的,以下是用 Docker 部署 Audiobookshelf 的步骤和示例配置:
1. 准备工作
安装 Docker 和 Docker Compose: 确保你的服务器或电脑上已经安装了 Docker 和 Docker Compose。
创建目录结构: 创建一个用于存放 Docker Compose 文件和数据的目录,例如 audiobookshelf
。
mkdir audiobookshelf
cd audiobookshelf
2. 创建 Docker Compose 文件 (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. 访问 Audiobookshelf
等待一段时间,让容器启动完成。然后在浏览器中输入 http://你的服务器IP
(或者 http://localhost
如果你在本地运行) 访问 Audiobookshelf。 如果你修改了端口映射,请使用相应的端口号,例如 http://你的服务器IP:8080
。
5. 配置 Audiobookshelf
第一次访问 Audiobookshelf 时,你需要创建一个管理员用户,并配置媒体库的路径。将 /library
指向你存储音频文件的目录。
注意事项:
- 权限问题: 如果遇到权限问题,请确保 Docker 容器中的用户具有访问音频文件目录的权限。 可以尝试设置
AUDIOBOOKSHELFD_UID
和 AUDIOBOOKSHELFD_GID
环境变量。
- 端口冲突: 如果 80 端口被占用,请修改
docker-compose.yml
文件中的端口映射。
- 镜像版本: 建议使用特定版本的 Audiobookshelf 镜像,避免自动更新导致的问题。 例如,
image: advplyr/audiobookshelf:2.2.0
- 数据备份: 定期备份
config
、library
和 metadata
目录,以防止数据丢失。
- 高级配置: Audiobookshelf 提供了许多高级配置选项,例如反向代理、SSL 等。 可以参考官方文档进行配置。
希望这些步骤能帮助你成功部署 Audiobookshelf。 如果遇到问题,请提供详细的错误信息,我会尽力帮助你解决。