All checks were successful
CI / test (push) Successful in 20s
Compose settings: - Reworked docker-compose.yml to use environment-variable driven configuration. - Added shared app env anchors for backend and worker to reduce duplication. - Made ports, credentials, security limits, SMTP, and storage options configurable. Production profile: - Added docker-compose.prod.yml override to close internal service ports. - Keeps external attack surface minimal for Linux server deployments. Docs and ops: - Added .env.docker.example with full variable set for server setup. - Updated README with quick-start and production launch commands.
52 lines
1.1 KiB
Markdown
52 lines
1.1 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)
|
|
3. docker compose up -d --build
|
|
2. 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
|