2.2 KiB
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