The Kavita team offers an official Docker image that is automatically updated based on changes to GitHub.
Running your Kavita server in docker is super easy! You can run the :latest
stable version with bind mounts using this command:
Important: This command is just a template. Change /your/manga/directory
and /kavita/data/directory
Also change the volume bind path in the host
Note: In the volume bind parameter -v
, the text after ":
" is the virtual directory that will be created inside the docker container. (mind the :
in between)
Note: We now also offer an image on the GitHub Container Registry at the tag ghcr.io/kareadita/kavita
it is identical to the image on DockerHub. Only available for nightly images at this time
Note: The value for TZ can be found via timedatectl show
or find yours in a list of timezones (locally: timedatectl list-timezones
).
docker run --name kavita -p 5000:5000 \
-v /your/manga/directory:/manga \
-v /kavita/data/directory:/kavita/config \
--restart unless-stopped \
-e TZ=Your/Timezone \
-d kizaing/kavita:latest
Using docker compose lets you save your container config setup.
Also makes it easier to update your container if you don't use a container manager (portainer,watchtower) Create a docker-compose.yml file with the following:
Important: This command is just a template. Change the values to fit your needs
Note: Kavita is under heavy development and is being updated all the time, so the tag for current builds is :nightly
. The :latest
tag will be the latest stable release.
Note The way volumes work is: <path in your host>
:
<path inside the container>
(mind the :
in between)
Note: The value for TZ can be found via timedatectl show
or find yours in a list of timezones (locally: timedatectl list-timezones
).
version: '3.9'
services:
kavita:
image: kizaing/kavita:latest # Change latest to nightly for latest develop builds (can't go back to stable)
container_name: kavita
volumes:
- ./manga:/manga # Manga is just an example you can have the name you want. See the following
- ./comics:/comics # Use as many as you want
- ./books:/books #
- ./data:/kavita/config # Change './data if you want to have the config files in a different place.
# /kavita/config must not be changed
environment:
- TZ=Your/Timezone
ports:
- "5000:5000" # Change the public port (the first 5000) if you have conflicts with other services
restart: unless-stopped
Execute docker-compose up -d
in your terminal after moving to the folder where the file is at
You don't need to call it manga, you can name it anything that works for you. Kavita supports more than just Manga.
Important When creating a library, do not select the first manga
, comics
or epub
you see. Navigate to /
then you can select manga
, comics
or epub
. Doing otherwise will result in your library being empty
IMPORTANT: If you are updating from a really old version you need to upgrade every 2 versions at a time. Doing otherwise you risk to having to restart with a fresh db
To do so use as image tag kizaing/kavita:<version_tag_here> or ghcr.io/kareadita/kavita:<version_tag_hgere> if using the GitHub registry
Check available tags in the dockerhub tags page
Look for stable tags would just bex.y.z
You can run the following commands:
docker pull kizaing/kavita:latest
Then run the command you used to first create docker.
docker run ...
If you used a docker-compose file, in your terminal head to where the file is allocated and run the command again
docker-compose up -d
# New docker versions have compose integrated as a subcommand.
docker compose up -d
Browse to http://localhost:5000 to start using Kavita from any device inside your network. (change localhost to the host IP where your docker instance is at)
Please continue in first time setup wiki page