--- namespace: work tags: [system, tool, infrastructure, taiga] created: '2026-05-18' updated: '2026-05-18' last_synced: '2026-05-18' confidence: 1.0 sources: - personal/projects/library-app.md --- # Library App Персональный веб-интерфейс для библиотеки книг на TrueNAS (Taiga). Развёрнут 2026-05-16. ## Что это Замена inpxer — полноценный сайт для просмотра коллекции Flibusta (687k книг) + личных книг, с отметками статуса чтения, связями между книгами и графом. ## Доступ - **URL:** `https://library.mallexxx.duckdns.org` - **Контейнер:** `library-app` на TrueNAS (Taiga) - **Расположение:** `/mnt/RED_2TB/docker/library/` ## Стек - Backend: Python + FastAPI - Frontend: Vue 3 + Tailwind CSS (CDN, без build) - Граф: vis.js - Контейнер: python:3.12-slim ## Данные | Хранилище | Назначение | Лимит | |-----------|------------|-------| | `books.db` (SQLite) | Flibusta коллекция, пересоздаётся при старте из INPX (~23 сек) | 687k книг, 227 MB | | `library.db` (SQLite) | Персистентный: статусы чтения, связи | Никогда не удалять | **library.db таблицы:** - `read_log(book_id, status, date_updated, rating, notes)` — статусы `read | reading | want` - `relations(book_id, related_id, type, weight, fetched_at)` — кэш связей ## Связи между книгами Строятся при первом открытии книги, кэшируются в `relations`: 1. `same_author` — все книги автора (мгновенно из books.db) 2. `same_series` — книги той же серии (мгновенно) 3. `same_genre` — топ-20 жанра по дате (мгновенно) 4. `openlibrary` — readers also read через OpenLibrary API (async, ~300ms, обновляется раз в 30 дней) ## Ссылки на скачивание - Flibusta: `https://books.mallexxx.duckdns.org/download/{id}` (inpxer) - Личные книги: `https://docs.mallexxx.duckdns.org/books/{path}` (FileBrowser) ## Известные питфолы - **inpxer Badger DB lock:** при последовательных/параллельных запросах к inpxer сервер зависает. Решение: скачивать книги с паузой ≥3 сек между запросами. - **books.db пересоздаётся при каждом перезапуске** (~23 сек) — нормальное поведение. - **library.db на хосте** — `docker rm` не удаляет. Важно: не монтировать как tmpfs. ## Статус ✅ Задеплоен 2026-05-16. 687,722 книг. ## Связанные страницы - [[personal-os-architecture]] — Taiga как хост, TrueNAS infrastructure - [[personal-os-schema]] — паттерны хранения данных в personal-os