Initial commit: base slice (auth, roles, users, admin) scaffold

Backend: .NET 10 Clean Architecture + LiteCqrs.Net + EF Core/PostgreSQL +
Identity/JWT. Frontend: React 19 + Vite + TanStack Query/Router + Tailwind v4
with a retro CRT theme. Docker/compose deployment mirroring PnvPanel's
conventions, scoped down to the current base feature set.
This commit is contained in:
Leonid Pershin
2026-07-24 05:40:34 +03:00
commit 8a3eebc48f
156 changed files with 9335 additions and 0 deletions
+53
View File
@@ -0,0 +1,53 @@
services:
db:
image: postgres:17-alpine
environment:
POSTGRES_DB: ${POSTGRES_DB:-telewave}
POSTGRES_USER: ${POSTGRES_USER:-telewave}
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-telewave}
volumes:
- pgdata:/var/lib/postgresql/data
healthcheck:
test: ['CMD-SHELL', 'pg_isready -U ${POSTGRES_USER:-telewave} -d ${POSTGRES_DB:-telewave}']
interval: 5s
timeout: 5s
retries: 10
restart: unless-stopped
logging:
driver: json-file
options:
max-size: '10m'
max-file: '3'
app:
build:
context: .
dockerfile: Dockerfile
depends_on:
db:
condition: service_healthy
# Секреты (Jwt__SigningKey, AdminSeed__Password, ...) — из .env, см. .env.example.
# ConnectionStrings__Default ниже переопределяет .env: адрес БД внутри сети compose всегда 'db'.
env_file:
- .env
environment:
ASPNETCORE_ENVIRONMENT: Production
ASPNETCORE_HTTP_PORTS: '8085'
ConnectionStrings__Default: 'Host=db;Port=5432;Database=${POSTGRES_DB:-telewave};Username=${POSTGRES_USER:-telewave};Password=${POSTGRES_PASSWORD:-telewave}'
healthcheck:
test: ['CMD', 'curl', '-f', 'http://localhost:8085/health']
interval: 15s
timeout: 5s
start_period: 20s
retries: 5
ports:
- '8085:8085'
restart: unless-stopped
logging:
driver: json-file
options:
max-size: '10m'
max-file: '3'
volumes:
pgdata: