Refactor .gitignore to streamline ignored files and enhance clarity. Update CLAUDE.md to improve unit test instructions and add coverage reporting details. Revise README.md for better project overview and deployment instructions. Refactor ChannelEndpoints and StreamingEndpoints to utilize SegmentFiles for file resolution, improving code maintainability. Remove unused JunctionHandlers and update DependencyInjection for cleaner service registration. Enhance media processing services for better job handling and error management. Update frontend API types for consistency and clarity.
This commit is contained in:
@@ -1,65 +1,66 @@
|
||||
# TeleWave
|
||||
|
||||
[](https://gitea.hsrv.site/mrleo1nid/TeleWave/actions?workflow=build.yml)
|
||||
[](https://gitea.hsrv.site/mrleo1nid/TeleWave/actions?workflow=test.yml)
|
||||
[](https://gitea.hsrv.site/mrleo1nid/TeleWave/actions?workflow=test.yml)
|
||||
|
||||
**TeleWave** — сервис онлайн-каналов: пользователи смотрят сетку каналов, видео отдаётся из
|
||||
хранилища на сервере, админ управляет каналами и пользователями.
|
||||
|
||||
> Текущее состояние — **рабочий вертикальный срез**: вход/регистрация, роли, пользователи, админка;
|
||||
> библиотека шоу/серий, загрузка и обработка медиа (ffmpeg → HLS), метаданные (TMDb/OMDb), каталог
|
||||
> каналов, планировщик эфира (реклама, ТВ-заставки, weekly-override'ы) и live-раздача HLS с публичным
|
||||
> просмотром сетки. Приложение (фронт + бек) поставляется **единым Docker-образом**; PostgreSQL —
|
||||
> **внешний**, не поднимается через compose.
|
||||
|
||||
## Стек
|
||||
|
||||
| Слой | Технологии |
|
||||
| -------- | ---------------------------------------------------------------------------------------- |
|
||||
| Backend | C# / .NET 10, ASP.NET Core Web API, Clean Architecture, CQRS ([LiteCqrs.Net](https://github.com/mrleo1nid/LiteCqrs.Net)), EF Core |
|
||||
| БД | PostgreSQL (Npgsql) |
|
||||
| Auth | ASP.NET Core Identity + JWT (access + refresh, ротация) |
|
||||
| Frontend | React 19 + Vite + TypeScript, TanStack Query/Router, shadcn/ui + Tailwind v4 (ретро-CRT тема) |
|
||||
| Упаковка | Единый Docker-образ (API + статика SPA); PostgreSQL — внешний сервер |
|
||||
|
||||
## Развёртывание
|
||||
|
||||
Postgres не входит в compose — база и пользователь создаются заранее на внешнем сервере БД:
|
||||
|
||||
```sql
|
||||
-- на сервере БД (psql -h <хост БД> -U postgres)
|
||||
CREATE USER telewave WITH PASSWORD 'change-me-strong-db-password';
|
||||
CREATE DATABASE telewave OWNER telewave;
|
||||
```
|
||||
|
||||
Затем на хосте с приложением:
|
||||
|
||||
```bash
|
||||
cp .env.example .env
|
||||
# заполнить ConnectionStrings__Default (хост/база/юзер/пароль БД), Jwt__SigningKey, AdminSeed__*
|
||||
docker compose up -d --build
|
||||
# → http://localhost:8085 (админ — логин/пароль из .env, AdminSeed__Username/Password)
|
||||
```
|
||||
|
||||
## Локальная разработка
|
||||
|
||||
```bash
|
||||
# backend, из backend/
|
||||
dotnet build && dotnet test tests/TeleWave.Domain.Tests tests/TeleWave.Application.Tests
|
||||
dotnet run --project src/TeleWave.Api
|
||||
|
||||
# frontend, из frontend/
|
||||
pnpm install
|
||||
pnpm dev # проксирует /api на localhost:8080
|
||||
```
|
||||
|
||||
## Документация
|
||||
|
||||
Пример переменных окружения (сид админа, БД, JWT) — [`.env.example`](.env.example).
|
||||
Инструкции для AI-ассистента (Claude Code) — в [`CLAUDE.md`](CLAUDE.md) (стек, архитектурные
|
||||
правила, доменные инварианты, соглашения по коду).
|
||||
|
||||
## Лицензия
|
||||
|
||||
Не определена.
|
||||
# TeleWave
|
||||
|
||||
[](https://gitea.hsrv.site/mrleo1nid/TeleWave/actions?workflow=build.yml)
|
||||
[](https://gitea.hsrv.site/mrleo1nid/TeleWave/actions?workflow=test.yml)
|
||||
[](https://gitea.hsrv.site/mrleo1nid/TeleWave/actions?workflow=test.yml)
|
||||
[](https://sonarcloud.io/summary/new_code?id=mrleo1nid_telewave)
|
||||
|
||||
**TeleWave** — сервис онлайн-каналов: пользователи смотрят сетку каналов, видео отдаётся из
|
||||
хранилища на сервере, админ управляет каналами и пользователями.
|
||||
|
||||
> Текущее состояние — **рабочий вертикальный срез**: вход/регистрация, роли, пользователи, админка;
|
||||
> библиотека шоу/серий, загрузка и обработка медиа (ffmpeg → HLS), метаданные (TMDb/OMDb), каталог
|
||||
> каналов, планировщик эфира (реклама, ТВ-заставки, weekly-override'ы) и live-раздача HLS с публичным
|
||||
> просмотром сетки. Приложение (фронт + бек) поставляется **единым Docker-образом**; PostgreSQL —
|
||||
> **внешний**, не поднимается через compose.
|
||||
|
||||
## Стек
|
||||
|
||||
| Слой | Технологии |
|
||||
| -------- | ---------------------------------------------------------------------------------------- |
|
||||
| Backend | C# / .NET 10, ASP.NET Core Web API, Clean Architecture, CQRS ([LiteCqrs.Net](https://github.com/mrleo1nid/LiteCqrs.Net)), EF Core |
|
||||
| БД | PostgreSQL (Npgsql) |
|
||||
| Auth | ASP.NET Core Identity + JWT (access + refresh, ротация) |
|
||||
| Frontend | React 19 + Vite + TypeScript, TanStack Query/Router, shadcn/ui + Tailwind v4 (ретро-CRT тема) |
|
||||
| Упаковка | Единый Docker-образ (API + статика SPA); PostgreSQL — внешний сервер |
|
||||
|
||||
## Развёртывание
|
||||
|
||||
Postgres не входит в compose — база и пользователь создаются заранее на внешнем сервере БД:
|
||||
|
||||
```sql
|
||||
-- на сервере БД (psql -h <хост БД> -U postgres)
|
||||
CREATE USER telewave WITH PASSWORD 'change-me-strong-db-password';
|
||||
CREATE DATABASE telewave OWNER telewave;
|
||||
```
|
||||
|
||||
Затем на хосте с приложением:
|
||||
|
||||
```bash
|
||||
cp .env.example .env
|
||||
# заполнить ConnectionStrings__Default (хост/база/юзер/пароль БД), Jwt__SigningKey, AdminSeed__*
|
||||
docker compose up -d --build
|
||||
# → http://localhost:8085 (админ — логин/пароль из .env, AdminSeed__Username/Password)
|
||||
```
|
||||
|
||||
## Локальная разработка
|
||||
|
||||
```bash
|
||||
# backend, из backend/
|
||||
dotnet build && dotnet test tests/TeleWave.Domain.Tests tests/TeleWave.Application.Tests
|
||||
dotnet run --project src/TeleWave.Api
|
||||
|
||||
# frontend, из frontend/
|
||||
pnpm install
|
||||
pnpm dev # проксирует /api на localhost:8080
|
||||
```
|
||||
|
||||
## Документация
|
||||
|
||||
Пример переменных окружения (сид админа, БД, JWT) — [`.env.example`](.env.example).
|
||||
Инструкции для AI-ассистента (Claude Code) — в [`CLAUDE.md`](CLAUDE.md) (стек, архитектурные
|
||||
правила, доменные инварианты, соглашения по коду).
|
||||
|
||||
## Лицензия
|
||||
|
||||
Не определена.
|
||||
|
||||
Reference in New Issue
Block a user