65 lines
3.6 KiB
Markdown
65 lines
3.6 KiB
Markdown
# 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** — сервис онлайн-каналов: пользователи смотрят сетку каналов, видео отдаётся из
|
|
хранилища на сервере, админ управляет каналами и пользователями.
|
|
|
|
> Текущее состояние — **база**: вход/регистрация, роли, пользователи, минимальная админка,
|
|
> приветственная главная страница. Каталог каналов и раздача видео — следующий этап, пока не
|
|
> реализованы. Приложение (фронт + бек) поставляется **единым 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) (стек, архитектурные
|
|
правила, доменные инварианты, соглашения по коду).
|
|
|
|
## Лицензия
|
|
|
|
Не определена.
|