1
0
mirror of https://github.com/funkypenguin/geek-cookbook/ synced 2025-12-12 17:26:19 +00:00
Files
geek-cookbook/docs/recipes/kavita.md
David Young 31be95b704 Fix (some) broken links
Signed-off-by: David Young <davidy@funkypenguin.co.nz>
2023-02-07 13:13:28 +13:00

3.6 KiB

title, description
title description
Kavita Reader in Docker - Read ebooks / Manga / Comics Here's a recipe to run Kavita under Docker Swarm to read your comics / manga / ebooks

Kavita Reader in Docker Swarm

So you've just watched a bunch of superhero movies, and you're suddenly inspired to deep-dive into the weird world of comic books? You're already rocking AutoPirate with Mylar and NZBGet to grab content, but how to manage and enjoy your growing collection?

Kavita Screenshot{ loading=lazy }

Kavita Reader is a "rocket fueled self-hosted digital library which supports a vast array of file formats". Primarily used for cosuming Manga (but quite capable of managing ebooks too), Kavita's killer feature is an OPDS server for integration with other mobile apps such as Chunky on iPad, and the ability to save your reading position across multiple devices.

There's a public demo available too!

--8<-- "recipe-standard-ingredients.md" *[X] AutoPirate components (specifically Mylar), for searching for, downloading, and managing comic books

Preparation

Setup data locations

First we create a directory to hold the kavita database, logs and other persistent data:

mkdir /var/data/kavita

Setup Docker Swarm

Create a docker swarm config file in docker-compose syntax (v3), something like this:

--8<-- "premix-cta.md"

version: "3.2" # https://docs.docker.com/compose/compose-file/compose-versioning/#version-3

services:
  kavita:
    image: kizaing/kavita:latest
    env_file: /var/data/config/kavita/kavita.env
    volumes:
      - /var/data/kavita:/kavita/config
    deploy:
      labels:
        # traefik
        - traefik.enable=true
        - traefik.docker.network=traefik_public

        # traefikv1
        - traefik.frontend.rule=Host:kavita.example.com
        - traefik.port=8000     

        # traefikv2
        - "traefik.http.routers.kavita.rule=Host(`kavita.example.com`)"
        - "traefik.http.routers.kavita.entrypoints=https"
        - "traefik.http.services.kavita.loadbalancer.server.port=5000" 
        
        # uncomment for traefik-forward-auth (1)
        # - "traefik.http.routers.radarr.middlewares=forward-auth"

        # uncomment for authelia (2)
        # - "traefik.http.routers.radarr.middlewares=authelia"

    networks:
      - traefik_public

networks:
  traefik_public:
    external: true
  1. Uncomment to protect Kavita with an additional layer of authentication, using [Traefik Forward Auth][tfa]
  2. Uncomment to protect Kavita with an additional layer of authentication, using [Authelia][authelia]

Serving

Avengers Assemble!

Launch the Kavita stack by running docker stack deploy kavita -c <path -to-docker-compose.yml>

Log into your new instance at https://YOUR-FQDN. Since it's a fresh installation, Kavita will prompt you to setup a username and password, after which you'll be able to setup your library, and tweak all teh butt0ns!

--8<-- "recipe-footer.md"