46 lines
2.2 KiB
Markdown
46 lines
2.2 KiB
Markdown
# RSS / Archive Backend
|
|
|
|
Бэкенд для домашнего архива медиафайлов (видео, аудио, фото).
|
|
Проект представляет собой асинхронное API на FastAPI, которое собирает данные из локальных директорий, агрегирует их в PostgreSQL и отдает на фронтенд.
|
|
|
|
## 🛠 Технологический стек
|
|
|
|
- **Язык:** Python 3.14+
|
|
- **Фреймворк:** FastAPI
|
|
- **База данных:** PostgreSQL 16 (Docker)
|
|
- **ORM:** SQLAlchemy 2.0 (Async) + psycopg (async)
|
|
- **Валидация:** Pydantic v2
|
|
- **Сервер:** Uvicorn
|
|
|
|
## 📂 Архитектура проекта
|
|
|
|
```text
|
|
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 |