Обновил readme
This commit is contained in:
@@ -1,10 +1,10 @@
|
||||
# Jellybit
|
||||
|
||||
Jellybit — связующий сервис между qBittorrent и Jellyfin. Принимает
|
||||
торрент (magnet, `.torrent` или ссылку) вместе с текстовым контекстом,
|
||||
ставит загрузку в qBittorrent, дожидается её завершения, распознаёт
|
||||
содержимое (фильм или сериал, сезоны и серии) и раскладывает готовые
|
||||
файлы по конвенциям библиотеки Jellyfin.
|
||||
magnet-ссылку вместе с текстовым контекстом, ставит загрузку в
|
||||
qBittorrent, дожидается её завершения, распознаёт содержимое (фильм или
|
||||
сериал, сезоны и серии) и раскладывает готовые файлы по конвенциям
|
||||
библиотеки Jellyfin.
|
||||
|
||||
Полный замысел и причины — в [BRIEF.md](BRIEF.md).
|
||||
|
||||
@@ -18,8 +18,8 @@ Arr-стек (prowlarr/radarr/sonarr) плохо ложится на русск
|
||||
|
||||
## Как работает
|
||||
|
||||
1. Точка входа принимает torrent/magnet + контекст (HTTP API, веб-UI
|
||||
или Telegram-бот).
|
||||
1. Точка входа принимает magnet + контекст (HTTP API, веб-UI,
|
||||
Telegram-бот или CLI).
|
||||
2. Загрузка ставится в qBittorrent в выделенную категорию.
|
||||
3. Сервис отслеживает завершение загрузки.
|
||||
4. По именам файлов, контексту и (опц.) базам метаданных определяется
|
||||
@@ -30,13 +30,20 @@ Arr-стек (prowlarr/radarr/sonarr) плохо ложится на русск
|
||||
При высокой уверенности раскладка выполняется автоматически, иначе —
|
||||
уходит на подтверждение человеку.
|
||||
|
||||
Доступ к внешним сервисам (LLM, базы метаданных, Telegram) при
|
||||
необходимости идёт через HTTP-прокси — задаётся полем `proxy` в
|
||||
соответствующих секциях конфигурации.
|
||||
|
||||
## Статус
|
||||
|
||||
Ранняя разработка. Готовы каркас (Ф0) и приём + трекинг (Ф1): добавление
|
||||
magnet в qBittorrent, идемпотентность по infohash, поллинг завершения и
|
||||
машина состояний (`downloading → completed`, плюс stuck/failed); наружу —
|
||||
REST API, веб-UI и `jellybit add`. Источники кроме magnet (.torrent/url) и
|
||||
распознавание (Ф2) — дальше. См. [дорожную карту](docs/drafts/roadmap.md).
|
||||
Рабочий прототип с полным сквозным путём: приём magnet → загрузка в
|
||||
qBittorrent → распознавание (LLM + опционально базы метаданных
|
||||
TMDB/TVDB/TVMaze) → раскладка в библиотеку хардлинками, автоматически при
|
||||
уверенном результате либо через подтверждение человеком. Транспорты приёма:
|
||||
REST API, веб-UI, Telegram-бот и CLI (`jellybit add`).
|
||||
|
||||
Из источников пока поддержан magnet; `.torrent` и обычные ссылки — в планах.
|
||||
См. [дорожную карту](docs/drafts/roadmap.md).
|
||||
|
||||
## Документация
|
||||
|
||||
@@ -79,22 +86,13 @@ jellybit recognize <infohash> --dry-run [--context "..."] --config ./config.toml
|
||||
|
||||
## Доставка
|
||||
|
||||
Сборка здесь → готовый бинарь копируется на медиа-сервер umbar
|
||||
(`/home/av/projects/private/umbar`). Деплой-обвязка живёт в umbar.
|
||||
|
||||
Артефакты этого репозитория: статический бинарь (`task build`) и `Dockerfile`
|
||||
(упаковка в `distroless/static`). Образ собирается **на сервере** из
|
||||
доставленного бинаря — Go-тулчейн на сервере не нужен. В distroless нет
|
||||
shell/curl, поэтому HEALTHCHECK зовёт сам бинарь: `jellybit healthcheck`
|
||||
(GET `/healthz` по порту из конфига, exit 0/1).
|
||||
|
||||
Деплой одной командой из umbar (собирает бинарь локально, доставляет, строит
|
||||
образ на сервере, рендерит конфиг с секретами из vault, поднимает compose):
|
||||
|
||||
```sh
|
||||
inv pl -- jellybit # umbar/playbook-jellybit.yml
|
||||
```
|
||||
Рассчитан на домашний медиа-сервер. Артефакты репозитория — статический
|
||||
бинарь (`task build`) и `Dockerfile` (упаковка в `distroless/static`). Образ
|
||||
собирается **на сервере** из доставленного бинаря, поэтому Go-тулчейн на
|
||||
сервере не нужен. В distroless нет shell/curl, поэтому HEALTHCHECK зовёт сам
|
||||
бинарь: `jellybit healthcheck` (GET `/healthz` по порту из конфига, exit 0/1).
|
||||
|
||||
Контейнер: `user 1000:1000`, порт `8080` на хост, mount `/srv/media` (единая
|
||||
песочница для хардлинков) + data-том с `config.toml`/SQLite, к qBittorrent —
|
||||
через `host.docker.internal`.
|
||||
песочница для хардлинков) + data-том с `config.toml`/SQLite; к qBittorrent —
|
||||
по сети Docker. Конкретная деплой-обвязка (плейбук, секреты) держится в
|
||||
отдельном приватном репозитории и в комплект не входит.
|
||||
|
||||
Reference in New Issue
Block a user