Files
Messenger/README.md
benya df79a70baf chore(prod): startup migrations, readiness checks and backend healthcheck
- add backend entrypoint that can run alembic upgrade head on startup
- add RUN_MIGRATIONS_ON_STARTUP setting and compose wiring
- add /health/live and /health/ready endpoints with db+redis checks
- add backend container healthcheck against readiness endpoint
- document readiness and startup migration behavior
2026-03-08 02:50:57 +03:00

59 lines
1.5 KiB
Markdown

# 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:
- Web: http://localhost
- API docs: http://localhost:8000/docs
- Mailpit UI: http://localhost:8025
- MinIO console: http://localhost:9001
`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`).