## Komga
![](/Self-Hosted/Komga/komga-ui.jpg)
**Komga** - достаточно неплохой сервер для чтения комиксов и манги. Написан на Java, весь движок буквально в одном Jar-файле.
Имеет возможности каталогизации тайтлов, автоматическое сканирование страничек и предоставляет удобство при чтении, в том числе - вывод сразу по две страницы, имитируя книгу. Так же для ценителей есть возможность листать не слева направо, а наоборот. Недавно завезли поддержку EPUB. Есть возможность использовать OPDS API
Из минусов - жрет вагон оперативной памяти (Java хули) и достаточно медленная работа с PDF файлами, поскольку каждая страница конвертируется в jpg, минуя встроенный просмотрщик PDF в браузере. Так же в упор не умеет в CBR (rar-based) файлы, предварительно рекомендуется перепаковать из rar в zip. 
## Запуск Komga в Docker Compose
Да легко, не нужно пердолиться с явой как минимум. Запускаем docker-compose.yaml с таким содержимым:
```yaml
---
version: '3.8'
services:
  komga:
    image: gotson/komga
    container_name: komga
    volumes:
      - "/content/manga-comix/config:/config" # конфиги после первоначального запуска храним тут
      - "/content/manga-comix/data:/data"     # контент храним здесь
      - "/etc/timezone:/etc/timezone:ro"
    ports:
      - 25600:25600                           # порт настраиваем по вкусу
    user: "1000:1000"                         # на контент даем те же права что и здесь. опционально
    # Тут можно указать параметры запуска, например ограничим использование оперативной памяти на 2GB
#    environment:
#      - JAVA_TOOL_OPTIONS=-Xmx2g 
    restart: unless-stopped
```
## Запуск как Systemd сервис
Забираем архив со страницы с релизами https://github.com/gotson/komga/releases
Устанавливаем OpenJDK 17+ версии.  
Кидаем jarник, к примеру, в /opt/komga/komga.jar
```bash
chmod +x /opt/komga/komga.jar
```
Создаем сервис systemd
```bash
sudo nano /etc/systemd/system/komga.service
```
Сохраняем сервис с таким содержимым:
```
# komga.service
[Unit]
Description=Komga Service
Wants=network-online.target
After=network-online.target

[Service]
ExecStart=/usr/bin/java -jar /opt/komga/komga.jar
User=YourUserName

[Install]
WantedBy=multi-user.target
```
Далее рестартим демон systemd и запускаем сервис
```bash
sudo systemctl daemon-reload
sudo systemctl enable komga
sudo systemctl start komga
sudo systemctl status komga
```
Если сервис запустился то можно открывать страничку по localhost:25600
## OPDS API
Мобильные приложения для чтения существуют, но с нюансами. Ниже приведена табличка по которой можно соорентироваться.
### OPDS v1
API Ссылка: `http(s)://your-server(:25600)(/baseUrl)/opds/v1.2/catalog`

| OS                                                                                             | App name                                                                                                  | Status	            | OpenSearch support                            | Page streaming support |
| ------- | ---------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------- | ------------------ | --------------------------------------------- |
| Android        | [Moon Reader+](https://play.google.com/store/apps/details?id=com.flyersoft.moonreader)                                                                                                       | **Работает**                                                                                                                                                                                                           | Нет                                  | Нет                                                                                        |
| Android        | [Librera](https://play.google.com/store/apps/details?id=com.foobnix.pdf.reader)                                                                                                              | **Работает**                                                                                                                                                                                                           | Нет                                  | Нет                                                                                        |
| Android        | [PocketBook](https://play.google.com/store/apps/details?id=com.obreey.reader)                                                                                                                | Не поддерживается CBZ/CBR                                                                                                                                                                                          | Нет                                  | Нет                                                                                        |
| Android        | [FBReader](https://play.google.com/store/apps/details?id=org.geometerplus.zlibrary.ui.android)                                                                                               | Поддерживается только PDF. PDF. Для поддержки PDF нужна премиум-версия программы. Не запоминаются пароли                                                                                                          | Нет                                  | Нет                                                                                        |
| iOS            | [Panels](https://panels.app/)                                                                                                                                                                | **Работает**                                                                                                                                                                                                           | **Yes** (v3.0.0+)                        | **OPDS PSE 1.0** (v2.8.0+) **OPDS PSE 1.1** (v2.9.7+)                                              |
| iPadOS         | [Chunky Comic Reader](https://apps.apple.com/us/app/chunky-comic-reader/id663567628)                                                                                                         | Не работает с версии Komga 1.4.0+                                                                                                                                                                                  | Нет                                  | **OPDS PSE 1.0**                                                                              |
| iOS            | [KyBook](http://kybook-reader.com/)                                                                                                                                                          | Работает                                                                                                                                                                                                           | **Да**                                   | Нет                                                                                        |
### OPDS v2
API Ссылка: `http(s)://your-server(:25600)(/baseUrl)/opds/v2/catalog`

| OS                               | App name	                                         | Status             | Sync read progress | Streaming |
| ------------- | -------------------------------- | ------------------------------------------------- | ------------------ | --------- |
| Android / iOS              | Cantook by Aldiko ([Android](https://play.google.com/store/apps/details?id=com.aldiko.android), [iOS](https://apps.apple.com/us/app/cantook-by-aldiko/id1476410111))                                 | Каверы не отображаются (В дальнейшем реализуется)                                                  | Yes                                  | No                 |
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9