# Get started

## Установка

### Docker

Установка YaBL на linux, необходим предустановленный docker и docker-compose

```sh
mkdir YaBL && cd YaBL
wget https://git.mi6e4ka.dev/YaBL/app/raw/branch/main/docker-compose.yaml
docker compose up -d
```

Пример docker compose файла:

```yaml
services:
  app:
    image: git.mi6e4ka.dev/yabl/app:latest
    container_name: yabl
    restart: unless-stopped
    ports:
      - "8080:8080"
    environment:
      - DATA_DIR=/app/data
      - LIBRARY_DIR=/app/lib
      - UPLOADS_DIR=/app/uploads
      # - BIND_ADDR=:8080 # адрес, который прослушивает yabl
    volumes:
      - ./lib:/app/lib # папка для хранения внешней библиотеки
      - ./uploads:/app/uploads # папка для загруженных файлов
      - ./data:/app/data # папка для хранения файла БД и ключей JWT
```

### OOBE

После запуска контейнера страница первоначальной установки будет доступна по адресу `http://ваш-ip:порт/oobe`. Она предложит создать пользователя - администратора библиотеки
::: info
Пройти первоначальную настройку возможно только один раз
:::

## Импорт книг

YaBL предоставляет возможность загружать книги через web-интерфейс, однако если необходимо загрузить большое количество книг в docker контейнер интегрирован инструмент `book-reaper`  
Упакуйте свои книги в формате `fb2` в `zip` архивы и поместите в папку, указанную для хранения внешней библиотеки (по умолчанию `./lib`), поддерживается любой уровень вложенности

```
lib
├── 1.zip
├── 2.zip
└── sub
    ├── 3.zip
    └── subdir
        └── 4.zip
```

Затем, запустите `book-reaper` через docker:

```sh
docker compose exec -it app ./book-reaper
```

Дождитесь окончания процесса индексирования, и после этого все книги будут доступны через web-интерфейс!

::: warning
После индексирования файлы книг необходимо сохранить, иначе доступ к обложкам, файлам и чтению книг из web-интерфейса будет недоступен
:::

::: danger
На данный момент не поддерживается инкриментальное индексирование, при повторном запуске book-reaper'а книги дублируются
:::

### Приятного чтения!
