Kavita 是一个用于 EPUB、PDF、漫画和漫画的自托管数字图书馆,具有内置阅读器(单页、双页和网络漫画模式)、OPDS 和丰富的元数据。
基础环境#
- Docker
- Docker Compose
- Traefik【可选】
部署步骤#
- 创建
compose.yml文件
mkdir /usr/local/src/kavita
touch /usr/local/src/kavita/compose.yml
- compose.yml文件内容
services:
kavita:
image: linuxserver/kavita:0.8.7
container_name: kavita
restart: unless-stopped
environment:
# 时区
- TZ=Asia/Shanghai
ports:
- "5000:5000"
volumes:
- /usr/local/src/kavita/config:/config
- /storage/containers/kavita/books:/books
networks:
# dhcp 自动分配
- service
# static 手动规划
# service:
# ipv4_address: 172.18.0.91
# 资源限制优化:
deploy:
resources:
limits:
memory: 512m
cpus: "0.50"
networks:
service:
external: true
- 启动容器
docker compose up -d
代理配置【可选】#
labels:
# Traefik 服务发现和路由配置
# 启用 Traefik 对此服务进行发现
- "traefik.enable=true"
# 指定 Traefik 应该监听哪个网络来发现此服务
- "traefik.docker.network=service"
# Router (路由器) 配置
# 定义路由规则:匹配域名 kavita.artoio.com
- "traefik.http.routers.kavita.rule=Host(`kavita.artoio.com`)"
# 指定此路由只监听 'websecure' 入口点(通常是 443 端口)
- "traefik.http.routers.kavita.entrypoints=websecure"
# 为此路由启用 TLS (HTTPS)
- "traefik.http.routers.kavita.tls=true"
# 使用名为 'letsencrypt' 的证书解析器(需要在 Traefik 配置中定义)
- "traefik.http.routers.kavita.tls.certresolver=letsencrypt"
# Service (服务) 配置
# 指定此路由要转发到哪个 Traefik 服务(与下面的服务名一致)
- "traefik.http.routers.kavita.service=kavita"
# kavita 容器内部监听的端口
- "traefik.http.services.kavita.loadbalancer.server.port=5000"
# WAF
- "traefik.http.routers.kavita.middlewares=chaitin@file"
数据持久【强制】#
数据持久将 Kavita 数据持久化到 /storage/containers/kavita/books:/books 目录。
volumes:
- /usr/local/src/kavita/config:/config
- /storage/containers/kavita/books:/books



