---
title: "Kavita: Docker Compose i hosting jednym kliknięciem"
description: "Kavita to serwer open source do czytania mang, komiksów, EPUB i PDF, z szybkimi czytnikami w przeglądarce. Hostuj swoją bibliotekę u siebie w jeden klik."
---

[← Wszystkie szablony](https://pethost.dev/pl/templates/) · [Multimedia](https://pethost.dev/pl/templates/media/)

# Wdróż Kavita jednym kliknięciem

Serwer do czytania mang, komiksów i książek, z czytnikami w przeglądarce na każde urządzenie

Alternatywa dla Kindle i Comixology, hostowana u siebie.

[Wdróż na Pethost](https://console.pethost.dev/?template=kavita)

## Czym jest Kavita?

Kavita to serwer open source do czytania mang, webtoonów, komiksów i książek. Czyta pliki tam, gdzie leżą: archiwa CBZ, CBR, ZIP, RAR i 7-Zip oraz katalogi z obrazkami w przypadku komiksów, a EPUB i PDF w przypadku książek. Grupuje je w serie z okładkami i metadanymi i udostępnia czytnikom w przeglądarce, które działają na telefonie, tablecie i komputerze. Czytniki mają tryb webtoon, tryb ciągły, który przechodzi do następnego rozdziału, a w książkach EPUB podświetlenia i adnotacje.

Kavitę uruchamia się, żeby czytać swoją kolekcję wszędzie i dzielić się nią z rodziną i znajomymi: każdy użytkownik ma własny postęp, a role ograniczają, co widzi i co może robić, łącznie z ograniczeniem wiekowym. Kolekcje, listy czytelnicze, lista Chcę przeczytać i inteligentne filtry porządkują dużą bibliotekę, a motywy zmieniają jej wygląd. Kavita+, płatna subskrypcja, dodaje metadane, recenzje i rekomendacje z internetu; cała reszta jest darmowa.

Ten szablon uruchamia oficjalny obraz Kavity w wersji 0.9.1, z bazą danych i ustawieniami w jednym wolumenie, a twoimi książkami w drugim. Administrator jest rejestrowany z podanej nazwy użytkownika, adresu e-mail i hasła, zanim Kavita komukolwiek odpowie.

## Hosting Kavita na Pethost

1. Logujesz się do Pethost kluczem dostępu, przez GitHub albo Google. Nie masz jeszcze maszyny? Wybierasz plan, a link czeka, aż będzie gotowa.
2. Okno „Nowy projekt” otwiera się na aplikacji Kavita. Wypełniasz to, o co prosi, i klikasz „Utwórz projekt”: **Nazwa użytkownika**, **E-mail**, **Hasło administratora**.
3. Za minutę czy dwie aplikacja Kavita działa pod własnym adresem z HTTPS. Jej sekrety są tworzone losowo, a dane trafiają do nocnego backupu.
4. To projekt jak każdy inny: ty albo twój agent możecie go zmienić, cofnąć do wcześniejszej wersji albo przywrócić.

## Pytania o Kavita

**Czy Kavita jest darmowa?**

Tak. Kavita jest open source na licencji GPL-3.0 i można ją uruchamiać za darmo, ze wszystkimi czytnikami i wszystkimi funkcjami dla użytkowników. Kavita+ to opcjonalna płatna subskrypcja na metadane, recenzje, rekomendacje i scrobblowanie do AniList i innych usług.

**Jakie formaty czyta Kavita?**

Komiksy i mangi jako archiwa CBZ, CBR, ZIP, RAR, RAR5 i 7-Zip albo katalogi z obrazkami, a książki jako EPUB i PDF. Kavita czyta pliki takie, jakie są, bez konwertowania.

**Jak dodać książki do Kavity?**

Wrzuć pliki do katalogu biblioteki, każdą serię albo książkę do osobnego katalogu, a potem dodaj ten katalog jako bibliotekę na stronie Ustawienia → Biblioteki. Kavita od razu go przeskanuje i zrobi to znowu, gdy pliki się zmienią.

**Kavita czy Komga: co wybrać?**

Obie udostępniają komiksy, mangi i książki, także EPUB i PDF, czytnikom w przeglądarce i aplikacjom OPDS. Własne czytniki Kavity dodają tryb webtoon, ciągłe czytanie aż do następnego rozdziału oraz podświetlenia i adnotacje w książkach EPUB; Kavita+ sprzedaje metadane z internetu, a Komga nie ma płatnego planu.

**Czy mogę udostępnić swoją bibliotekę Kavity innym?**

Tak. Administrator zaprasza użytkowników na stronie Ustawienia → Użytkownicy i wybiera biblioteki, które każdy z nich widzi, oraz ich uprawnienia, takie jak rola Pobierz albo ograniczenie wiekowe. Każdy użytkownik ma własny postęp czytania.

**Ile pamięci i miejsca na dysku potrzebuje Kavita?**

Kavita ma małe wymagania: około 250 MB pamięci podczas czytania, więcej, gdy skanuje bibliotekę; twoje książki zajmują tyle miejsca, ile ważą ich pliki. Na Pethost wystarczy mu plan Starter, z miejscem na inne aplikacje obok.

## Kavita: plik Docker Compose

Szablon to ten compose.yaml i zmienne zapisywane do .env projektu przy jego tworzeniu. Pethost uruchamia plik dokładnie tak, jak jest napisany.

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

**Wolumeny, w nocnym backupie:** 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)[Zobacz na GitHubie](https://github.com/pethost-dev/templates/tree/main/kavita)

## [Więcej w kategorii Multimedia](https://pethost.dev/pl/templates/media/)

- [**Owncast**Wideo na żywo i czat na twojej własnej stronie](https://pethost.dev/pl/templates/owncast/)
- [**Navidrome**Serwer muzyczny, który streamuje twoją własną kolekcję](https://pethost.dev/pl/templates/navidrome/)
- [**RomM**Biblioteka i odtwarzacz w przeglądarce dla twoich gier retro](https://pethost.dev/pl/templates/romm/)
- [**Komga**Serwer i czytnik w przeglądarce dla twoich komiksów, mang i e-booków](https://pethost.dev/pl/templates/komga/)
- [**Lychee**Galeria do wgrywania, porządkowania i udostępniania zdjęć](https://pethost.dev/pl/templates/lychee/)
- [**Audiobookshelf**Własny serwer audiobooków i podcastów: słuchaj w przeglądarce lub w aplikacjach, z postępem zapamiętanym na wszystkich urządzeniach](https://pethost.dev/pl/templates/audiobookshelf/)

Pethost · Stephan Gomer · NIP 1133096755

Pethost

- [Szablony](https://pethost.dev/pl/templates/)
- [O nas](https://pethost.dev/about/)
- [Dokumentacja](https://pethost.dev/docs/)
- [Blog](https://pethost.dev/pl/blog/)
- [API](https://pethost.dev/docs/api/)
- [CLI](https://pethost.dev/docs/cli/)
- [Plugin](https://github.com/pethost-dev/plugin)
- [Regulamin](https://pethost.dev/terms/)
- [Prywatność](https://pethost.dev/privacy/)
- [Zwroty](https://pethost.dev/refunds/)
- [support@pethost.dev](mailto:support@pethost.dev)

Bazy danych

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

Porównania

- [Coolify vs Dokploy vs CapRover vs Dokku](https://pethost.dev/pl/blog/coolify-vs-dokploy-vs-caprover-vs-dokku/)
- [Coolify Cloud vs Dokploy Cloud](https://pethost.dev/pl/blog/coolify-cloud-vs-dokploy-cloud/)
- [Cennik Railway vs Render vs Fly.io](https://pethost.dev/pl/blog/railway-vs-render-vs-fly-io-pricing/)
- [Zarządzany hosting Docker Compose](https://pethost.dev/pl/blog/managed-docker-compose-hosting/)

Alternatywy

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