rpi-media: стартовая страница Homepage, Radarr/Sonarr → Jellyfin connect

- homepage/: сервисы с описанием и живыми виджетами; ключи — в homepage.env на малине
- Jellyfin-виджет через customapi (встроенный не совместим с Jellyfin 12)
- provision.py: шаги homepage и connect

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
gilfanovr
2026-10-11 16:12:39 +03:00
co-authored by Claude Opus 5.5
parent f70d5c848f
commit 94bc983401
9 changed files with 220 additions and 4 deletions
+1
View File
@@ -0,0 +1 @@
[]
+1
View File
@@ -0,0 +1 @@
{}
+99
View File
@@ -0,0 +1,99 @@
# Ключи — из /opt/media/homepage.env (HOMEPAGE_VAR_*), в репо их нет.
# Ссылки (href) — для браузера, адрес малины; виджеты ходят изнутри docker-сети по именам
# контейнеров, кроме Jellyfin (он в host-сети).
- Как это работает:
- 1. Найти:
icon: mdi-magnify
description: "Открой Seerr, найди фильм или сериал (можно по-русски) и нажми Request"
- 2. Скачать:
icon: mdi-download
description: "Radarr/Sonarr сами ищут раздачу на трекерах, qBittorrent качает. Минуты–час"
- 3. Смотреть:
icon: mdi-television-play
description: "Готовое появляется в Jellyfin; субтитры ru/en Bazarr докачает сам"
- Если застряло:
icon: mdi-help-circle-outline
description: "Radarr/Sonarr → Activity → Queue; красная карточка = раздачи нет → Interactive Search"
- Смотреть:
- Jellyfin:
icon: jellyfin.svg
href: http://192.168.10.25:8096
description: "Медиатека. На LG — приложение Jellyfin, на iPhone/iPad — Infuse или Swiftfin, сервер 192.168.10.25:8096"
# ⚠️ встроенный виджет jellyfin (Homepage 2.5) ходит на /emby/…?api_key= — в Jellyfin 12 этого
# пути нет (404), а ключ в query отключён (EnableLegacyAuthorization=false). Поэтому customapi.
widget:
type: customapi
url: http://192.168.10.25:8096/Items/Counts
headers:
Authorization: 'MediaBrowser Token="{{HOMEPAGE_VAR_JELLYFIN_KEY}}"'
mappings:
- field: MovieCount
label: Фильмы
format: number
- field: SeriesCount
label: Сериалы
format: number
- field: EpisodeCount
label: Серии
format: number
- Seerr:
icon: jellyseerr.svg
href: http://192.168.10.25:5055
description: "Каталог «хочу посмотреть»: Request → скачается само. Статусы: Processing → Available"
widget:
type: jellyseerr
url: http://seerr:5055
key: "{{HOMEPAGE_VAR_SEERR_KEY}}"
- Добавить фильм или сериал:
- Radarr — фильмы:
icon: radarr.svg
href: http://192.168.10.25:7878
description: "Очередь: Activity → Queue. Выбрать раздачу вручную: карточка → Interactive Search"
widget:
type: radarr
url: http://radarr:7878
key: "{{HOMEPAGE_VAR_RADARR_KEY}}"
- Sonarr — сериалы:
icon: sonarr.svg
href: http://192.168.10.25:8989
description: "Новые серии отслеживаемых сериалов качает сам. Очередь: Activity → Queue"
widget:
type: sonarr
url: http://sonarr:8989
key: "{{HOMEPAGE_VAR_SONARR_KEY}}"
- Bazarr — субтитры:
icon: bazarr.svg
href: http://192.168.10.25:6767
description: "Субтитры ru/en для всего в библиотеке; чего не хватает — Wanted"
widget:
type: bazarr
url: http://bazarr:6767
key: "{{HOMEPAGE_VAR_BAZARR_KEY}}"
- Загрузки и служебное:
- qBittorrent:
icon: qbittorrent.svg
href: http://192.168.10.25:8080
description: "Сами загрузки: скорость, сиды. Торренты вручную сюда — мимо Jellyfin и контроля места"
widget:
type: qbittorrent
url: http://qbittorrent:8080
username: "{{HOMEPAGE_VAR_QBIT_USER}}"
password: "{{HOMEPAGE_VAR_QBIT_PASS}}"
enableLeechProgress: true
- Prowlarr — трекеры:
icon: prowlarr.svg
href: http://192.168.10.25:9696
description: "RuTracker, NoNaMe Club, TPB, YTS… Ручной поиск по всем трекерам сразу"
widget:
type: prowlarr
url: http://prowlarr:9696
key: "{{HOMEPAGE_VAR_PROWLARR_KEY}}"
- FlareSolverr:
icon: flaresolverr.svg
href: http://192.168.10.25:8191
description: "Проходит проверку Cloudflare для RuTracker (на Pi — минуты). Трогать не нужно"
siteMonitor: http://flaresolverr:8191
+23
View File
@@ -0,0 +1,23 @@
# Homepage — стартовая страница медиацентра, http://192.168.10.25:3000
title: Домашний медиацентр
language: ru
theme: dark
color: slate
headerStyle: clean
hideVersion: true
statusStyle: dot
quicklaunch:
searchDescriptions: true
layout:
Как это работает:
style: row
columns: 4
Смотреть:
style: row
columns: 2
Добавить фильм или сериал:
style: row
columns: 3
Загрузки и служебное:
style: row
columns: 4
+18
View File
@@ -0,0 +1,18 @@
- greeting:
text_size: xl
text: "Логин везде: rus · пароль общий"
- resources:
label: Малина
cpu: true
memory: true
cputemp: true
uptime: true
- resources:
label: Диск медиа (4 ТБ)
disk: /mnt/backup
- datetime:
text_size: l
locale: ru
format:
dateStyle: long
timeStyle: short