core/README.md
2024-01-25 22:41:27 +03:00

60 lines
967 B
Markdown

# discoursio-core
- sqlalchemy
- redis
- ariadne
- starlette
- uvicorn
# Local development
Install deps first
on osx
```
brew install redis nginx postgres
brew services start redis
```
on debian/ubuntu
```
apt install redis nginx
```
Then run nginx, redis and API server
```shell
mkdir .venv
python3.12 -m venv .venv
poetry env use .venv/bin/python3.12
poetry update
poetry granian --no-ws --host 0.0.0.0 --port 8000 --interface asgi main:app
```
## Services
### Auth
Setup `WEBHOOK_SECRET` env var, webhook payload on `/new-author` is expected when User is created. In front-end put the header 'Authorization' with token from signIn query or registerUser mutation.
### Viewed
Set GOOGLE_ANALYTICS_TOKEN var to collect stats
### Seacrh
ElasticSearch
### Notifications
Connected using Redis PubSub channels
### Inbox
To get unread counter raw redis query to Inbox's data is used
### Following Manager
Internal service with async access to storage