---
title: "Kavita com Docker Compose e hospedagem em um clique"
description: "Kavita: servidor de leitura open source para mangás, quadrinhos, EPUB e PDF, com leitores rápidos no navegador. Auto-hospede sua biblioteca em um clique."
---

[← Todos os templates](https://pethost.dev/pt/templates/) · [Mídia](https://pethost.dev/pt/templates/media/)

# Faça deploy de Kavita em um clique

Um servidor de leitura para mangás, quadrinhos e livros, com leitores no navegador para qualquer dispositivo

Uma alternativa auto-hospedada para Kindle e Comixology.

[Fazer deploy no Pethost](https://console.pethost.dev/?template=kavita)

## O que é Kavita?

O Kavita é um servidor de leitura de código aberto para mangás, webtoons, quadrinhos e livros. Ele lê os arquivos onde eles estão (arquivos compactados CBZ, CBR, ZIP, RAR e 7-Zip e pastas de imagens para quadrinhos, EPUB e PDF para livros), agrupa-os em séries com as capas e os metadados e os serve a leitores no navegador que funcionam no celular, no tablet e no computador. Os leitores têm um modo webtoon, um modo contínuo que segue para o próximo capítulo, e destaques e anotações nos livros EPUB.

As pessoas rodam o Kavita para ler a própria coleção em qualquer lugar e compartilhá-la com a família e os amigos: cada usuário tem o próprio progresso, e funções limitam o que cada um vê e faz, inclusive por idade. Coleções, listas de leitura, “Quero Ler” e filtros inteligentes organizam uma biblioteca grande, e temas mudam a aparência dele. O Kavita+, uma assinatura paga, adiciona metadados, resenhas e recomendações da internet; todo o resto é gratuito.

Este template roda a imagem oficial do Kavita, versão 0.9.1, com o banco de dados e as configurações dele em um volume e os seus livros em outro. O admin é registrado com o usuário, o e-mail e a senha que você informa, antes de o Kavita responder a qualquer pessoa.

## Hospedagem de Kavita no Pethost

1. Você entra no Pethost com uma passkey, GitHub ou Google. Ainda não tem máquina? Você escolhe um plano, e o link espera até ela ficar pronta.
2. Novo projeto abre em Kavita. Você preenche o que ele pede e clica em Criar projeto: **Usuário**, **E-mail**, **Senha do administrador**.
3. Em um ou dois minutos Kavita está no ar no próprio endereço com HTTPS. Os segredos são gerados ao acaso, e os dados vão para o backup noturno.
4. É um projeto como qualquer outro: você ou seu agente podem alterá-lo, fazer rollback ou restaurá-lo.

## Perguntas sobre Kavita

**O Kavita é gratuito?**

Sim. O Kavita é de código aberto sob a GPL-3.0 e gratuito para rodar, com todos os leitores e todos os recursos para usuários. O Kavita+ é uma assinatura paga opcional para metadados, resenhas, recomendações e scrobbling para o AniList e outros serviços.

**Quais formatos o Kavita lê?**

Quadrinhos e mangás em arquivos compactados CBZ, CBR, ZIP, RAR, RAR5 e 7-Zip ou em pastas de imagens, e livros em EPUB e PDF. O Kavita lê os arquivos como eles estão, sem convertê-los.

**Como adiciono livros ao Kavita?**

Coloque os arquivos na pasta da biblioteca, cada série ou livro numa pasta própria, e depois adicione a pasta como biblioteca em Configurações → Bibliotecas. O Kavita faz a varredura dela nessa hora e de novo quando os arquivos mudam.

**Kavita ou Komga: qual escolher?**

Os dois servem quadrinhos, mangás e livros, EPUB e PDF inclusive, a leitores no navegador e a apps OPDS. Os leitores do próprio Kavita somam um modo webtoon, a leitura contínua até o próximo capítulo, e destaques e anotações nos livros EPUB; o Kavita+ vende metadados da internet, enquanto o Komga não tem plano pago.

**Posso compartilhar minha biblioteca do Kavita com outras pessoas?**

Sim. O admin convida usuários em Configurações → Usuários e escolhe as bibliotecas que cada um vê e as funções dele, como a de baixar, ou um limite de idade. Cada usuário mantém o próprio progresso de leitura.

**De quanta memória e disco Kavita precisa?**

O Kavita é leve: cerca de 250 MB de memória enquanto você lê, mais enquanto ele varre uma biblioteca; os seus livros ocupam o que os arquivos deles ocupam. No Pethost, o plano Starter basta, com espaço para outros apps ao lado.

## Arquivo Docker Compose de Kavita

O template é este compose.yaml e as variáveis gravadas no .env do projeto quando ele é criado. O Pethost roda o arquivo exatamente como está escrito.

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

**Volumes, no backup noturno:** 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)[Ver no GitHub](https://github.com/pethost-dev/templates/tree/main/kavita)

## [Mais em Mídia](https://pethost.dev/pt/templates/media/)

- [**Owncast**Vídeo ao vivo e chat em uma página só sua](https://pethost.dev/pt/templates/owncast/)
- [**Navidrome**Um servidor de música que faz streaming da sua própria coleção](https://pethost.dev/pt/templates/navidrome/)
- [**RomM**Uma biblioteca e um player no navegador para os seus jogos retrô](https://pethost.dev/pt/templates/romm/)
- [**Komga**Um servidor e leitor web para seus quadrinhos, mangás e e-books](https://pethost.dev/pt/templates/komga/)
- [**Lychee**Uma galeria para enviar, organizar e compartilhar suas fotos](https://pethost.dev/pt/templates/lychee/)
- [**Audiobookshelf**Seu próprio servidor de audiolivros e podcasts: ouça no navegador ou nos apps, com o progresso guardado entre dispositivos](https://pethost.dev/pt/templates/audiobookshelf/)

Pethost · Stephan Gomer · NIP 1133096755

Pethost

- [Templates](https://pethost.dev/pt/templates/)
- [Sobre nós](https://pethost.dev/about/)
- [Docs](https://pethost.dev/docs/)
- [Blog](https://pethost.dev/pt/blog/)
- [API](https://pethost.dev/docs/api/)
- [CLI](https://pethost.dev/docs/cli/)
- [Plugin](https://github.com/pethost-dev/plugin)
- [Termos](https://pethost.dev/terms/)
- [Privacidade](https://pethost.dev/privacy/)
- [Reembolsos](https://pethost.dev/refunds/)
- [support@pethost.dev](mailto:support@pethost.dev)

Bancos de dados

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

Comparativos

- [Coolify vs Dokploy vs CapRover vs Dokku](https://pethost.dev/pt/blog/coolify-vs-dokploy-vs-caprover-vs-dokku/)
- [Coolify Cloud vs Dokploy Cloud](https://pethost.dev/pt/blog/coolify-cloud-vs-dokploy-cloud/)
- [Preços Railway vs Render vs Fly.io](https://pethost.dev/pt/blog/railway-vs-render-vs-fly-io-pricing/)
- [Hospedagem gerenciada de Docker Compose](https://pethost.dev/pt/blog/managed-docker-compose-hosting/)

Alternativas

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