# Koodo Reader Helm Chart

Helm chart для развёртывания [Koodo Reader](https://github.com/koodo-reader/koodo-reader) - современного читателя электронных книг с возможностями синхронизации и резервного копирования.

## Описание

Koodo Reader - это кроссплатформенная программа для чтения электронных книг, которая поддерживает множество форматов включая EPUB, PDF, MOBI, AZW3, и другие. Приложение предоставляет удобный веб-интерфейс для чтения и управления библиотекой книг.

## Установка

Чарт автоматически развёртывается через ArgoCD ApplicationSet при добавлении values файла в `values/` директорию.

### Ручная установка (для тестирования)

```bash
helm install koodo-reader ./koodo-reader -f values/home.yaml
```

## Конфигурация

### Основные параметры

| Параметр | Описание | Значение по умолчанию |
|----------|----------|----------------------|
| `replicaCount` | Количество реплик | `1` |
| `image.repository` | Docker образ | `ghcr.io/koodo-reader/koodo-reader` |
| `image.tag` | Версия образа | `1.7.1` |
| `image.pullPolicy` | Политика загрузки образа | `IfNotPresent` |

### Service

| Параметр | Описание | Значение по умолчанию |
|----------|----------|----------------------|
| `service.enabled` | Включить Service | `true` |
| `service.type` | Тип Service | `ClusterIP` |
| `service.port` | Порт Service | `80` |

### Ingress

| Параметр | Описание | Значение по умолчанию |
|----------|----------|----------------------|
| `ingress.enabled` | Включить Ingress | `false` |
| `ingress.className` | Ingress class | `nginx` |
| `ingress.hosts` | Список хостов | `[]` |
| `ingress.tls` | TLS конфигурация | `[]` |

### Persistence

| Параметр | Описание | Значение по умолчанию |
|----------|----------|----------------------|
| `persistence.enabled` | Включить постоянное хранилище | `false` |
| `persistence.size` | Размер PVC | `1Gi` |
| `persistence.storageClass` | Storage class | `""` |
| `persistence.accessModes` | Режимы доступа | `[ReadWriteOnce]` |

### Resources

| Параметр | Описание | Значение по умолчанию |
|----------|----------|----------------------|
| `resources.limits.cpu` | CPU лимит | не установлен |
| `resources.limits.memory` | Memory лимит | не установлен |
| `resources.requests.cpu` | CPU запрос | не установлен |
| `resources.requests.memory` | Memory запрос | не установлен |

### Autoscaling

| Параметр | Описание | Значение по умолчанию |
|----------|----------|----------------------|
| `autoscaling.enabled` | Включить HPA | `false` |
| `autoscaling.minReplicas` | Минимум реплик | `1` |
| `autoscaling.maxReplicas` | Максимум реплик | `3` |
| `autoscaling.targetCPUUtilizationPercentage` | Целевая загрузка CPU | `80` |

## Примеры использования

### Минимальная конфигурация

```yaml
ingress:
  enabled: true
  hosts:
    - host: koodo-reader.example.com
      paths:
        - path: /
          pathType: Prefix
```

### Конфигурация с хранилищем

```yaml
persistence:
  enabled: true
  size: 10Gi
  storageClass: "fast-ssd"

resources:
  limits:
    cpu: 500m
    memory: 512Mi
  requests:
    cpu: 100m
    memory: 128Mi
```

### Конфигурация с TLS

```yaml
ingress:
  enabled: true
  className: nginx
  annotations:
    cert-manager.io/cluster-issuer: letsencrypt-prod
  hosts:
    - host: books.example.com
      paths:
        - path: /
          pathType: Prefix
  tls:
    - secretName: koodo-reader-tls
      hosts:
        - books.example.com
```

## Развёртывание через ArgoCD

Этот чарт разработан для автоматического развёртывания через ArgoCD ApplicationSet. При создании файла `values/home.yaml` автоматически создастся Application с именем `home-koodo-reader` в namespace `home-koodo-reader`.

### Конфигурация для вашего окружения

В файле `values/home.yaml` уже настроено:
- Домен: `koodo.invuneon.ru`
- TLS сертификат через cert-manager с issuer `letsencrypt-charts-issuer`
- Persistent storage на 5Gi
- Resource limits (CPU: 200m, Memory: 256Mi)

## Доступ к приложению

После развёртывания приложение будет доступно по адресу: **https://koodo.invuneon.ru**

Для локального доступа можно использовать port-forward:

```bash
kubectl port-forward -n home-koodo-reader svc/koodo-reader 8080:80
```

Затем открыть в браузере: http://localhost:8080

## Поддерживаемые форматы

- EPUB (2, 3)
- PDF
- MOBI
- AZW3
- FB2
- CBZ, CBR (комиксы)
- MD (Markdown)
- TXT

## Возможности

- Чтение книг различных форматов
- Управление библиотекой
- Заметки и закладки
- Синхронизация между устройствами
- Резервное копирование библиотеки
- Настройка внешнего вида
- Словарь и перевод
- Голосовое чтение (TTS)

## Дополнительная информация

- [GitHub репозиторий](https://github.com/koodo-reader/koodo-reader)
- [Официальная документация](https://koodo.960960.xyz/)
