Docker 部署指南
本指南适用于所有支持 Docker 的环境,包括 Linux、macOS、Windows、群晖、威联通等。
推荐使用 docker compose 部署。镜像已经内置前端页面、数据库默认路径和服务监听端口,普通用户只需要关心两件事:
ports:把容器服务端口暴露到宿主机,决定浏览器访问哪个端口。volumes:把容器内数据目录挂载到宿主机,决定数据是否能持久保存。- 激活服务默认使用
https://auth.leelaa.cn/api;只有切换到自建兼容服务时才需要设置ACTIVATION_SERVICE_URL。
1. 快速部署
创建 docker-compose.yml:
services:
leelaa-reader:
image: leedaisen/leelaa-reader-server:latest
container_name: leelaa-reader
ports:
- "8686:8686"
volumes:
- ./data:/data
environment:
TZ: Asia/Shanghai
# 可选:首次初始化管理员密码。不填写时会自动生成,并写入 /data/password.txt。
# DEFAULT_ADMIN_PASSWORD: 请设置强密码
restart: unless-stopped启动:
docker compose up -d访问:
http://服务器IP:8686如果是在本机运行,也可以访问:
http://localhost:8686查看首次生成的管理员密码:
docker exec leelaa-reader cat /data/password.txt也可以查看容器日志:
docker logs leelaa-reader2. ports 说明
ports 用来配置宿主机端口到容器端口的映射:
ports:
- "8686:8686"格式是:
宿主机端口:容器端口本镜像容器内服务端口固定使用 8686。通常只需要修改左侧宿主机端口,不需要修改容器内部端口。
例如宿主机 8686 已被占用,可以改成:
ports:
- "18868:8686"此时访问地址变为:
http://服务器IP:18868对 Docker 部署来说,修改访问端口只需要改 ports 左侧的宿主机端口。
3. volumes 说明
volumes 用来配置数据持久化:
volumes:
- ./data:/data格式是:
宿主机目录:容器内目录容器内的 /data 是 Leelaa Reader 的数据目录,包含:
- SQLite 数据库
- 管理员初始密码文件
password.txt - 封面缓存
- 运行时生成的临时文件
必须把 /data 挂载到宿主机目录。否则删除容器后,数据库和配置都会丢失。
可以使用相对路径:
volumes:
- ./data:/data也可以使用绝对路径:
volumes:
- /volume1/docker/leelaa-reader/data:/dataWindows 示例:
volumes:
- D:/docker/leelaa-reader/data:/data如果需要让容器读取宿主机上的有声书目录,可以额外挂载书库目录:
volumes:
- ./data:/data
- /volume1/audiobooks:/books:ro然后在 Leelaa Reader 中添加本地书库时,路径填写容器内路径:
/books:ro 表示只读挂载,推荐用于书库目录,避免容器误改原始文件。
4. 可选环境变量
普通部署只建议配置下面这些变量:
| 变量名 | 是否必填 | 说明 |
|---|---|---|
TZ | 否 | 容器时区,国内用户建议设置为 Asia/Shanghai。 |
DEFAULT_ADMIN_USERNAME | 否 | 首次初始化管理员用户名。数据库已有用户后不再生效;不填默认为 admin。 |
DEFAULT_ADMIN_PASSWORD | 否 | 首次初始化管理员密码。数据库已有用户后不再生效;不填会自动生成并写入 /data/password.txt。 |
示例:
environment:
TZ: Asia/Shanghai
DEFAULT_ADMIN_USERNAME: admin
DEFAULT_ADMIN_PASSWORD: 请设置强密码如果已经完成首次初始化,之后再修改 DEFAULT_ADMIN_USERNAME 或 DEFAULT_ADMIN_PASSWORD 不会重置现有账号。
5. Docker Run
如果不使用 Compose,也可以直接运行:
docker run -d \
--name leelaa-reader \
-p 8686:8686 \
-v ./data:/data \
-e TZ=Asia/Shanghai \
--restart unless-stopped \
leedaisen/leelaa-reader-server:latest如果要指定首次管理员密码:
docker run -d \
--name leelaa-reader \
-p 8686:8686 \
-v ./data:/data \
-e TZ=Asia/Shanghai \
-e DEFAULT_ADMIN_PASSWORD=请设置强密码 \
--restart unless-stopped \
leedaisen/leelaa-reader-server:latest6. 镜像架构
Docker 镜像支持多架构:
linux/amd64:常见 x86_64 服务器、Intel/AMD NAS、普通 PC。linux/arm64:ARM64/aarch64 NAS、ARM 服务器、Apple Silicon 上的 Docker。
一般情况下直接使用 leedaisen/leelaa-reader-server:latest 即可,Docker 会自动拉取匹配架构。
可以先确认当前 Docker 服务端架构:
docker version --format '{{.Server.Arch}}'如果日志中出现 exec format error,通常是镜像架构与设备架构不匹配。可以在 Compose 中显式指定:
services:
leelaa-reader:
image: leedaisen/leelaa-reader-server:latest
platform: linux/amd64
container_name: leelaa-reader
ports:
- "8686:8686"
volumes:
- ./data:/data
environment:
TZ: Asia/Shanghai
restart: unless-stoppedARM64/aarch64 设备使用:
platform: linux/arm647. 常用维护命令
查看容器状态:
docker ps查看日志:
docker logs -f leelaa-reader停止服务:
docker compose down升级镜像:
docker compose pull
docker compose up -d升级前建议先备份宿主机上的 data 目录。
8. 常见问题
部署后访问不了页面、删除容器后数据丢失、首次管理员密码找不到、本地书库路径填写错误等问题,请查看:Docker 部署常见问题。
