benya ab65a8b768
All checks were successful
CI / test (push) Successful in 21s
Implement real SMTP delivery and transactional email auth flow
Email delivery:

- Replaced logging-only email sender with aiosmtplib SMTP implementation.

- Added provider mode switch via EMAIL_PROVIDER (log/smtp).

- Added TLS/SSL and timeout controls for SMTP transport.

Auth registration flow:

- Made register/resend/reset email flows transactional with rollback on delivery failure.

- Return 503 when verification/reset email cannot be delivered.

Configuration:

- Extended settings and env templates for EMAIL_PROVIDER, SMTP_USE_SSL, SMTP_TIMEOUT_SECONDS.

- Updated docker-compose environment mapping for new SMTP variables.
2026-03-07 22:24:22 +03:00
2026-03-07 21:31:38 +03:00
2026-03-07 21:31:38 +03:00
2026-03-07 21:31:38 +03:00
2026-03-07 21:31:38 +03:00

Benya Messenger

Backend foundation for a Telegram-like real-time messaging platform.

Run

  1. Create and activate Python 3.12 virtualenv.
  2. Install dependencies: pip install -r requirements.txt
  3. Configure environment from .env.example.
  4. Start API: uvicorn app.main:app --reload --port 8000

Celery Worker

Run worker for async notification jobs:

celery -A app.celery_app:celery_app worker --loglevel=info

Quality Gates

  • Compile check: python -m compileall app main.py
  • Tests: pytest -q

Web Client

  1. cd web
  2. copy .env.example to .env
  3. npm install
  4. npm run dev

Docker Quick Start

Run full stack (web + api + worker + postgres + redis + minio + mailpit):

  1. cp .env.docker.example .env
  2. edit .env (SECRET_KEY, passwords, domain)
  3. docker compose up -d --build
  4. Open:

Production Mode

Use production override to close internal ports (postgres/redis/minio/mailpit/backend):

docker compose -f docker-compose.yml -f docker-compose.prod.yml up -d --build

Description
No description provided
Readme 8.7 MiB
Languages
Kotlin 51.1%
TypeScript 25.1%
Python 22.9%
CSS 0.7%