benya b3c121b8bc
Some checks failed
Android CI / android (push) Failing after 5m42s
Android Release / release (push) Has started running
CI / test (push) Has been cancelled
feat: add private chat info card
Show a compact Telegram-like counterpart card inside private chats.

Reuse existing chat data for avatar, username, and status instead of adding new profile fetches.

Display contact and blocked badges when the relationship state is already known.
2026-04-05 19:57:52 +03:00
2026-04-05 19:57:52 +03:00
2026-04-05 15:36:19 +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, S3_PUBLIC_ENDPOINT_URL)
  3. docker compose up -d --build
  4. check backend readiness:
    • http://localhost:8000/health/live
    • http://localhost:8000/health/ready
  5. Open:

RUN_MIGRATIONS_ON_STARTUP=true (default in compose) runs alembic upgrade head before backend start.

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

For media uploads from browser, S3_PUBLIC_ENDPOINT_URL must be reachable by users (for example https://storage.example.com or http://SERVER_IP:9000).

Description
No description provided
Readme 10 MiB
Languages
Kotlin 55%
TypeScript 22.9%
Python 21.3%
CSS 0.6%