---
title: "Kavita: Docker Compose и хостинг в один клик"
description: "Self-hosted Kavita — open source сервер для чтения манги, комиксов, EPUB и PDF с быстрыми читалками в браузере. Ваша библиотека в один клик."
---

[← Все шаблоны](https://pethost.dev/ru/templates/) · [Медиа](https://pethost.dev/ru/templates/media/)

# Задеплойте Kavita в один клик

Сервер для чтения манги, комиксов и книг с читалками в браузере для любого устройства

Альтернатива Kindle и Comixology на вашей машине.

[Задеплоить на Pethost](https://console.pethost.dev/?template=kavita)

## Что такое Kavita?

Kavita — open source сервер для чтения манги, вебтунов, комиксов и книг. Он читает файлы там, где они лежат: для комиксов — архивы CBZ, CBR, ZIP, RAR и 7-Zip и папки с изображениями, для книг — EPUB и PDF, группирует их в серии с обложками и метаданными и отдает читалкам в браузере, которые работают на телефоне, планшете и компьютере. В читалках есть режим Webtoon, непрерывный режим, который переходит к следующей главе, а также выделения и аннотации в книгах EPUB.

Kavita запускают, чтобы читать свою коллекцию где угодно и делиться ею с семьей и друзьями: у каждого пользователя свой прогресс, а роли ограничивают, что он видит и может делать, в том числе по возрасту. Большую библиотеку упорядочивают «Коллекции», «Списки чтения», «Хочу прочитать» и «Умные фильтры», а темы меняют ее вид. Kavita+, платная подписка, добавляет метаданные, отзывы и рекомендации из интернета; все остальное бесплатно.

Этот шаблон запускает официальный образ Kavita версии 0.9.1: его база данных и настройки хранятся в одном томе, а ваши книги — в другом. Администратор с именем пользователя, почтой и паролем, которые вы указали, регистрируется еще до того, как Kavita начнет кому-либо отвечать.

## Хостинг Kavita на Pethost

1. Вы входите в Pethost — с passkey, через GitHub или Google. Машины еще нет? Вы выбираете тариф, и ссылка ждет, пока машина не будет готова.
2. Окно «Новый проект» открывается на приложении Kavita. Вы заполняете то, что оно просит, и нажимаете «Создать проект»: **Имя пользователя**, **Электронная почта**, **Пароль администратора**.
3. Через минуту-две Kavita работает по своему адресу с HTTPS. Секреты создаются случайно, а данные попадают в ночной бэкап.
4. Это проект как любой другой: вы или ваш агент можете его изменить, откатить или восстановить.

## Вопросы про Kavita

**Kavita бесплатный?**

Да. Kavita распространяется с открытым кодом под лицензией GPL-3.0, и его можно запускать бесплатно, со всеми читалками и всеми возможностями для пользователей. Kavita+ — необязательная платная подписка на метаданные, отзывы, рекомендации и скробблинг в AniList и другие сервисы.

**Какие форматы читает Kavita?**

Комиксы и мангу — в архивах CBZ, CBR, ZIP, RAR, RAR5 и 7-Zip или в папках с изображениями, а книги — в EPUB и PDF. Kavita читает файлы как есть, не конвертируя их.

**Как добавить книги в Kavita?**

Положите файлы в папку библиотеки, каждую серию или книгу в отдельную папку, затем добавьте эту папку как библиотеку в разделе «Настройки» → «Libraries». Kavita сразу ее просканирует, а потом снова — когда файлы изменятся.

**Kavita или Komga: что выбрать?**

Оба отдают комиксы, мангу и книги, включая EPUB и PDF, читалкам в браузере и приложениям с поддержкой OPDS. Собственные читалки Kavita добавляют режим Webtoon, непрерывное чтение с переходом к следующей главе, а также выделения и аннотации в книгах EPUB; Kavita+ продает метаданные из интернета, а у Komga платной версии нет.

**Можно ли поделиться библиотекой Kavita с другими?**

Да. Администратор приглашает пользователей в разделе «Настройки» → «Пользователи» и выбирает, какие библиотеки видит каждый и какие у него роли, например право на скачивание или возрастные ограничения. У каждого пользователя сохраняется свой прогресс чтения.

**Сколько памяти и диска нужно Kavita?**

Kavita: небольшие требования — около 250 MB памяти во время чтения, больше — пока он сканирует библиотеку; ваши книги занимают столько, сколько весят их файлы. На Pethost ему хватит тарифа Starter, и рядом останется место для других приложений.

## Kavita: файл Docker Compose

Шаблон — это этот compose.yaml и переменные, которые пишутся в .env проекта при его создании. Pethost запускает файл так, как он написан.

**Контейнеры:** kavita (jvmilazz0/kavita:0.9.1).

**Тома, в ночном бэкапе:** 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)[Открыть на GitHub](https://github.com/pethost-dev/templates/tree/main/kavita)

## [Еще в категории «Медиа»](https://pethost.dev/ru/templates/media/)

- [**Owncast**Прямые трансляции и чат на собственной странице](https://pethost.dev/ru/templates/owncast/)
- [**Navidrome**Музыкальный сервер, который стримит вашу собственную коллекцию](https://pethost.dev/ru/templates/navidrome/)
- [**RomM**Библиотека и плеер в браузере для ваших ретро-игр](https://pethost.dev/ru/templates/romm/)
- [**Komga**Сервер и веб-читалка для ваших комиксов, манги и электронных книг](https://pethost.dev/ru/templates/komga/)
- [**Lychee**Фотогалерея, чтобы загружать, упорядочивать и показывать ваши фото](https://pethost.dev/ru/templates/lychee/)
- [**Audiobookshelf**Собственный сервер аудиокниг и подкастов: слушайте в браузере или приложениях, прогресс сохраняется на всех устройствах](https://pethost.dev/ru/templates/audiobookshelf/)

Pethost · Stephan Gomer · NIP 1133096755

Pethost

- [Шаблоны](https://pethost.dev/ru/templates/)
- [О нас](https://pethost.dev/about/)
- [Документация](https://pethost.dev/docs/)
- [Блог](https://pethost.dev/ru/blog/)
- [API](https://pethost.dev/docs/api/)
- [CLI](https://pethost.dev/docs/cli/)
- [Плагин](https://github.com/pethost-dev/plugin)
- [Условия](https://pethost.dev/terms/)
- [Конфиденциальность](https://pethost.dev/privacy/)
- [Возвраты](https://pethost.dev/refunds/)
- [support@pethost.dev](mailto:support@pethost.dev)

Базы данных

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

Сравнения

- [Coolify vs Dokploy vs CapRover vs Dokku](https://pethost.dev/ru/blog/coolify-vs-dokploy-vs-caprover-vs-dokku/)
- [Coolify Cloud vs Dokploy Cloud](https://pethost.dev/ru/blog/coolify-cloud-vs-dokploy-cloud/)
- [Цены Railway, Render и Fly.io](https://pethost.dev/ru/blog/railway-vs-render-vs-fly-io-pricing/)
- [Управляемый хостинг Docker Compose](https://pethost.dev/ru/blog/managed-docker-compose-hosting/)

Альтернативы

- [Альтернативы Railway](https://pethost.dev/ru/blog/railway-alternatives/)
- [Альтернативы Heroku](https://pethost.dev/ru/blog/heroku-alternatives/)
- [Альтернативы Dokploy](https://pethost.dev/ru/blog/dokploy-alternatives/)
- [Альтернативы Coolify](https://pethost.dev/ru/blog/coolify-alternatives/)
- [Альтернативы Render](https://pethost.dev/ru/blog/render-alternatives/)
- [Альтернативы Sliplane](https://pethost.dev/ru/blog/sliplane-alternatives/)
