chore(devops): project skeleton — uv, docker compose, Makefile, CI
CI / ruff · pytest (pull_request) Successful in 1m50s

One Postgres with isolated identity/clinical databases and roles (ADR-003),
FastAPI /health, Streamlit placeholder, typed settings with offline defaults.

Refs #1

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-10-03 14:46:01 +03:00
co-authored by Claude Opus 5.5
parent cf2cc8b5f4
commit 107b8dba51
32 changed files with 2252 additions and 0 deletions
+31
View File
@@ -0,0 +1,31 @@
# Copy to .env. Secrets only here; .env is gitignored.
# --- LLM (152-FZ: GigaChat only). mock = offline demo without network (ADR-004)
LLM_PROVIDER=mock
GIGACHAT_CREDENTIALS=
GIGACHAT_SCOPE=GIGACHAT_API_PERS
GIGACHAT_MODEL=GigaChat
# --- Pseudonymisation key: 32+ random bytes, hex. Generate: python -c "import secrets;print(secrets.token_hex(32))"
PSEUDO_KEY=
# --- Databases (docker compose overrides the URLs to point at the postgres service)
POSTGRES_PASSWORD=postgres
IDENTITY_DB_PASSWORD=identity_app
CLINICAL_DB_PASSWORD=clinical_app
IDENTITY_DB_URL=postgresql+asyncpg://identity_app:identity_app@localhost:5432/identity
CLINICAL_DB_URL=postgresql+asyncpg://clinical_app:clinical_app@localhost:5432/clinical
# --- Telegram: prototype on synthetic data only; prod channel is MAX / Gosuslugi. Empty = bot disabled.
TG_BOT_TOKEN=
DOCTOR_NOTIFY_CHAT_ID=
# --- Demo virtual clock (ADR-005)
DEMO_CLOCK=true
TZ=Europe/Moscow
# --- Gitea (for Claude Code / team workflow, not used by the app)
GITEA_URL=https://gitea.24studbank.ru
GITEA_REPO=MedITron/PTSRaiAgent
GITEA_USER=
GITEA_TOKEN=