ab65a8b768f4bbb4e14a441d48a73d0274d96375
All checks were successful
CI / test (push) Successful in 21s
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.
Benya Messenger
Backend foundation for a Telegram-like real-time messaging platform.
Run
- Create and activate Python 3.12 virtualenv.
- Install dependencies: pip install -r requirements.txt
- Configure environment from
.env.example. - 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
- cd web
- copy
.env.exampleto.env - npm install
- npm run dev
Docker Quick Start
Run full stack (web + api + worker + postgres + redis + minio + mailpit):
- cp .env.docker.example .env
- edit
.env(SECRET_KEY, passwords, domain) - docker compose up -d --build
- Open:
- Web: http://localhost
- API docs: http://localhost:8000/docs
- Mailpit UI: http://localhost:8025
- MinIO console: http://localhost:9001
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
Languages
Kotlin
51.1%
TypeScript
25.1%
Python
22.9%
CSS
0.7%