Об этом проекте

Loomkeep — это self-hosted приложение для отслеживания медиа, созданное как замена TV Time, которую вы полностью контролируете. Оно поддерживает отслеживание сериалов, фильмов, аниме, игр, книг и музыки, с опциональными социальными функциями: друзья, отзывы и комментарии. Данные каталогов загружаются в реальном времени из TMDB (фильмы и сериалы), AniList (аниме), IGDB (игры), Open Library (книги) и MusicBrainz (музыка). Проект представляет собой pnpm monorepo, полностью написанный на TypeScript. Бэкенд использует NestJS, Prisma и PostgreSQL с JWT-аутентификацией и ротацией refresh-токенов. Фронтенд — это SvelteKit PWA с устанавливаемым тёмным интерфейсом. Общий пакет содержит DTO и перечисления, используемые обеими сторонами. Ключевое проектное решение заключается в том, что база данных работает как кэш по требованию: поиск обращается к внешним каталогам в реальном времени, а медиа сохраняется только тогда, когда пользователь начинает его отслеживать. Просмотры эпизодов хранятся по одной записи на каждый просмотр, что делает повторные просмотры полноценной функцией. Self-hosting обеспечивается через Docker с предварительно собранными образами из GHCR. В README описаны обширные опциональные дополнения с использованием файлов переопределения docker-compose, включая публичный хостинг с Caddy и Let's Encrypt, проксирование Cloudflare и защиту от ботов Turnstile, наблюдаемость с Grafana, Loki, Promtail и Prometheus, мониторинг задач Healthchecks.io, Portainer для управления Docker, GlitchTip для отслеживания ошибок, Umami для аналитики и Unleash для feature flags. Отправка email через SMTP является опциональной и незаметно отключается, если не настроена.