archive-backend/README.md
2026-11-07 17:32:41 +00:00

2.2 KiB

RSS / Archive Backend

Бэкенд для домашнего архива медиафайлов (видео, аудио, фото). Проект представляет собой асинхронное API на FastAPI, которое собирает данные из локальных директорий, агрегирует их в PostgreSQL и отдает на фронтенд.

Технологический стек

  • Язык: Python 3.14+
  • Фреймворк: FastAPI
  • База данных: PostgreSQL 16 (Docker)
  • ORM: SQLAlchemy 2.0 (Async) + psycopg (async)
  • Валидация: Pydantic v2
  • Сервер: Uvicorn

Архитектура проекта

RSS/
├── core/               # Конфигурация и подключение к БД
│   ├── config.py       # Пути к медиа, константы
│   └── db.py           # Движок SQLAlchemy, Base, SessionLocal
├── models/             # SQLAlchemy-модели (таблицы)
│   ├── video_model.py
│   ├── audio_model.py
│   └── photo_model.py
├── schemas/            # Pydantic-схемы (валидация и сериализация)
│   ├── video_schemas.py
│   ├── audio_schemas.py
│   └── photo_schemas.py
├── routers/            # Эндпоинты API
│   ├── video.py
│   ├── audio.py
│   ├── photo.py
│   └── ...
├── utils/              # Скрипты синхронизации (парсеры)
│   ├── update_videos.py
│   ├── update_audio.py
│   └── update_thumbs.py
├── media/              # Медиафайлы (монтируется в контейнер/отдается статикой)
│   ├── yt/             # Видео
│   ├── audio/          # Аудио
│   ├── _thumbs/        # Превью для видео
│   ├── _covers/        # Обложки для аудио
│   └── photos/         # Фото
├── main.py             # Точка входа, подключение роутеров и статики
└── requirements.txt