---
title: "Kavita con Docker Compose y hosting en un clic"
description: "Kavita, servidor de lectura de código abierto para manga, cómics, EPUB y PDF, con lectores rápidos en el navegador. Autoaloja tu biblioteca en un clic."
---

[← Todas las plantillas](https://pethost.dev/es/templates/) · [Multimedia](https://pethost.dev/es/templates/media/)

# Despliega Kavita en un clic

Un servidor de lectura para manga, cómics y libros, con lectores en el navegador para cualquier dispositivo

Una alternativa autoalojada a Kindle y Comixology.

[Desplegar en Pethost](https://console.pethost.dev/?template=kavita)

## ¿Qué es Kavita?

Kavita es un servidor de lectura de código abierto para manga, webtoons, cómics y libros. Lee los archivos donde están (archivos comprimidos CBZ, CBR, ZIP, RAR y 7-Zip y carpetas de imágenes para los cómics, EPUB y PDF para los libros), los agrupa en series con sus portadas y metadatos, y los sirve a lectores en el navegador que funcionan en un teléfono, una tablet y un equipo de escritorio. Los lectores tienen un modo webtoon, un modo continuo que pasa al capítulo siguiente, y resaltados y anotaciones en los libros EPUB.

Mucha gente usa Kavita para leer su colección en cualquier lugar y compartirla con familia y amigos: cada usuario tiene su propio progreso, y los roles limitan lo que ve y hace, también por edad. Las colecciones, las listas de lectura, “Lecturas deseadas” y los filtros inteligentes organizan una biblioteca grande, y los temas cambian su aspecto. Kavita+, una suscripción de pago, agrega metadatos, reseñas y recomendaciones de internet; todo lo demás es gratis.

Esta plantilla ejecuta la imagen oficial de Kavita, versión 0.9.1, con su base de datos y sus ajustes en un volumen y tus libros en otro. El administrador se registra con el nombre de usuario, el correo y la contraseña que indicas, antes de que Kavita responda a nadie.

## Hosting de Kavita en Pethost

1. Inicias sesión en Pethost con una passkey, GitHub o Google. ¿Aún no tienes máquina? Eliges un plan, y el enlace espera hasta que esté lista.
2. Nuevo proyecto se abre en Kavita. Rellenas lo que pide y haces clic en Crear proyecto: **Nombre de usuario**, **Correo electrónico**, **Contraseña de administrador**.
3. En un par de minutos Kavita está en marcha en su propia dirección con HTTPS. Sus secretos se generan al azar, y sus datos entran en el backup de cada noche.
4. Es un proyecto como cualquier otro: tú o tu agente lo pueden cambiar, volver a una versión anterior o restaurar.

## Preguntas sobre Kavita

**¿Kavita es gratis?**

Sí. Kavita es de código abierto bajo la GPL-3.0 y gratis de ejecutar, con todos los lectores y todas las funciones para usuarios. Kavita+ es una suscripción de pago opcional para metadatos, reseñas, recomendaciones y scrobbling a AniList y otros servicios.

**¿Qué formatos lee Kavita?**

Cómics y manga en archivos comprimidos CBZ, CBR, ZIP, RAR, RAR5 y 7-Zip o en carpetas de imágenes, y libros en EPUB y PDF. Kavita lee los archivos tal como están, sin convertirlos.

**¿Cómo agrego libros a Kavita?**

Pon los archivos en la carpeta de la biblioteca, cada serie o libro en su propia carpeta, y luego agrega esa carpeta como biblioteca en Ajustes → Bibliotecas. Kavita la escanea en ese momento, y de nuevo cuando cambian los archivos.

**Kavita frente a Komga: ¿cuál debería elegir?**

Los dos sirven cómics, manga y libros, incluidos EPUB y PDF, a lectores en el navegador y a apps OPDS. Los lectores propios de Kavita agregan un modo webtoon, lectura continua que pasa al capítulo siguiente, y resaltados y anotaciones en los libros EPUB; Kavita+ vende metadatos de internet, mientras que Komga no tiene ninguna opción de pago.

**¿Puedo compartir mi biblioteca de Kavita con otras personas?**

Sí. El administrador invita a usuarios en Ajustes → Usuarios y elige las bibliotecas que ve cada uno y sus roles, como el de descarga, o los límites de edad. Cada usuario conserva su propio progreso de lectura.

**¿Cuánta memoria y disco necesita Kavita?**

Kavita es ligero: unos 250 MB de memoria mientras lees, más mientras escanea una biblioteca; tus libros ocupan lo que ocupan sus archivos. En Pethost le basta el plan Starter, y queda sitio para otras apps a su lado.

## El archivo Docker Compose de Kavita

La plantilla es este compose.yaml y las variables que se escriben en el .env del proyecto al crearlo. Pethost ejecuta el archivo tal como está escrito.

**Contenedores:** kavita (jvmilazz0/kavita:0.9.1).

**Volúmenes, en el backup de cada noche:** config, books.

```
services:
  kavita:
    image: jvmilazz0/kavita:0.9.1
    restart: unless-stopped
    environment:
      ADMIN_USERNAME: ${ADMIN_USERNAME}
      ADMIN_EMAIL: ${ADMIN_EMAIL}
      ADMIN_PASSWORD: ${ADMIN_PASSWORD}
      TZ: Etc/UTC
    # A new Kavita lets whoever opens it first register as its admin. So until the admin exists,
    # Kavita runs on 127.0.0.1:5001, which nobody reaches, where the admin is registered from the
    # fields; only then does it start as the image starts it, answering on 5000. Kavita reads the
    # port and address of its appsettings.json only when it does not know it is in a container.
    # A refusal stops the start with Kavita's reason in the log.
    entrypoint:
      - /bin/bash
      - -c
      - |
        set -e
        cd /kavita
        if [ ! -f config/admin-registered ]; then
          if [ ! -f config/appsettings.json ]; then
            cp /tmp/config/appsettings.json config/appsettings.json
          fi
          sed -i -e 's/"Port": *[0-9]*/"Port": 5001/' -e 's/"IpAddresses": *"[^"]*"/"IpAddresses": "127.0.0.1"/' config/appsettings.json
          env -u DOTNET_RUNNING_IN_CONTAINER ./Kavita &
          kavita=$$!
          until curl -sf -o /dev/null http://127.0.0.1:5001/api/health; do
            kill -0 $$kavita
            sleep 1
          done
          json() {
            local s=$${1//\\/\\\\}
            s=$${s//\"/\\\"}
            printf '"%s"' "$$s"
          }
          body="{\"username\":$$(json "$$ADMIN_USERNAME"),\"email\":$$(json "$$ADMIN_EMAIL"),\"password\":$$(json "$$ADMIN_PASSWORD")}"
          status=$$(curl -s -o /tmp/register -w '%{http_code}' -H 'Content-Type: application/json' -d "$$body" http://127.0.0.1:5001/api/Account/register)
          kill $$kavita
          wait $$kavita || true
          sed -i -e 's/"Port": *[0-9]*/"Port": 5000/' -e 's/"IpAddresses": *"[^"]*"/"IpAddresses": ""/' config/appsettings.json
          # 400 "denied": an admin exists already, registered by an earlier start.
          if [ "$$status" != 200 ] && ! grep -qi denied /tmp/register; then
            echo "Kavita refused the admin ($$status): $$(cat /tmp/register)"
            exit 1
          fi
          touch config/admin-registered
        fi
        exec /entrypoint.sh
    volumes:
      - config:/kavita/config
      # Writable, so that books can be uploaded or copied in over SFTP.
      - books:/books
volumes:
  config:
  books:
```

[compose.yaml](https://pethost.dev/templates/kavita/compose.yaml)[Verla en GitHub](https://github.com/pethost-dev/templates/tree/main/kavita)

## [Más en Multimedia](https://pethost.dev/es/templates/media/)

- [**Owncast**Video en tiempo real y chat en tu propia página](https://pethost.dev/es/templates/owncast/)
- [**Navidrome**Un servidor de música que transmite tu propia colección](https://pethost.dev/es/templates/navidrome/)
- [**RomM**Una biblioteca y un reproductor en el navegador para tus juegos retro](https://pethost.dev/es/templates/romm/)
- [**Komga**Un servidor y lector web para tus cómics, manga y libros electrónicos](https://pethost.dev/es/templates/komga/)
- [**Lychee**Una galería para subir, ordenar y compartir tus fotos](https://pethost.dev/es/templates/lychee/)
- [**Audiobookshelf**Tu propio servidor de audiolibros y podcasts: escucha en el navegador o en las apps, con el progreso guardado entre dispositivos](https://pethost.dev/es/templates/audiobookshelf/)

Pethost · Stephan Gomer · NIP 1133096755

Pethost

- [Plantillas](https://pethost.dev/es/templates/)
- [Sobre nosotros](https://pethost.dev/about/)
- [Docs](https://pethost.dev/docs/)
- [Blog](https://pethost.dev/es/blog/)
- [API](https://pethost.dev/docs/api/)
- [CLI](https://pethost.dev/docs/cli/)
- [Plugin](https://github.com/pethost-dev/plugin)
- [Términos](https://pethost.dev/terms/)
- [Privacidad](https://pethost.dev/privacy/)
- [Reembolsos](https://pethost.dev/refunds/)
- [support@pethost.dev](mailto:support@pethost.dev)

Bases de datos

- [Postgres](https://pethost.dev/es/postgres/)

Comparativas

- [Coolify vs Dokploy vs CapRover vs Dokku](https://pethost.dev/es/blog/coolify-vs-dokploy-vs-caprover-vs-dokku/)
- [Coolify Cloud vs Dokploy Cloud](https://pethost.dev/es/blog/coolify-cloud-vs-dokploy-cloud/)
- [Precios de Railway vs Render vs Fly.io](https://pethost.dev/es/blog/railway-vs-render-vs-fly-io-pricing/)
- [Hosting gestionado para Docker Compose](https://pethost.dev/es/blog/managed-docker-compose-hosting/)

Alternativas

- [Alternativas a Railway](https://pethost.dev/es/blog/railway-alternatives/)
- [Alternativas a Heroku](https://pethost.dev/es/blog/heroku-alternatives/)
- [Alternativas a Dokploy](https://pethost.dev/es/blog/dokploy-alternatives/)
- [Alternativas a Coolify](https://pethost.dev/es/blog/coolify-alternatives/)
- [Alternativas a Render](https://pethost.dev/es/blog/render-alternatives/)
- [Alternativas a Sliplane](https://pethost.dev/es/blog/sliplane-alternatives/)
