- Redis / Celery / Celery Beat - кэширование популярных тегов и лучших участников - асинхронные уведомления в Centrifugo - отправка email-уведомлений через Celery - полнотекстовый поиск и подсказки - Docker Compose инфраструктура
66 lines
2.1 KiB
Markdown
66 lines
2.1 KiB
Markdown
# 2026-VK-EDU-Web-12-Istratov-D
|
||
|
||
## Запуск в Docker
|
||
|
||
1. Скопируйте `.env.docker` в `.env` или создайте свой файл на основе `.env.example`.
|
||
2. Запустите сервисы:
|
||
|
||
```bash
|
||
docker compose up --build
|
||
```
|
||
|
||
3. Откройте приложение: `http://127.0.0.1:8080`
|
||
4. Centrifugo доступен на `http://127.0.0.1:8001`
|
||
5. Maildev доступен на `http://127.0.0.1:1080`
|
||
|
||
## Переменные окружения
|
||
|
||
В `.env` должны быть:
|
||
|
||
- `SECRET_KEY`
|
||
- `DEBUG`
|
||
- `POSTGRES_DB`, `POSTGRES_USER`, `POSTGRES_PASSWORD`
|
||
- `DB_ENGINE`, `DB_NAME`, `DB_USER`, `DB_PASSWORD`, `DB_HOST`, `DB_PORT`
|
||
- `REDIS_HOST`, `REDIS_PORT`, `REDIS_CACHE_DB`, `REDIS_BROKER_DB`, `REDIS_BEAT_DB`
|
||
- `CENTRIFUGO_URL`, `CENTRIFUGO_API_KEY`
|
||
- `EMAIL_BACKEND`, `EMAIL_HOST`, `EMAIL_PORT`, `DEFAULT_FROM_EMAIL`
|
||
|
||
## Миграции
|
||
|
||
После изменений моделей выполните:
|
||
|
||
```bash
|
||
python manage.py makemigrations
|
||
python manage.py migrate
|
||
```
|
||
|
||
## Дополнительные конфигурации
|
||
|
||
- `gunicorn_conf.py` — конфигурация Gunicorn с двумя воркерами.
|
||
- `simple_wsgi.py` — простой WSGI-приложение для запуска без Django на `localhost:8081`.
|
||
- `nginx.conf` — пример конфигурации Nginx для отдачи `/uploads/`, статических файлов и проксирования на Gunicorn.
|
||
|
||
## Заполнить базу данных
|
||
|
||
```bash
|
||
python manage.py fill_db 10000
|
||
```
|
||
|
||
Когда запущено в докере:
|
||
|
||
```bash
|
||
docker compose exec python-app python manage.py fill_db 10000
|
||
```
|
||
|
||
Это удалит предыдущие данные из дб!
|
||
|
||
## Реализовано
|
||
|
||
- Redis / Celery / Celery Beat
|
||
- кэширование популярных тегов и лучших участников
|
||
- асинхронные уведомления в Centrifugo
|
||
- отправка email-уведомлений через Celery
|
||
- полнотекстовый поиск и подсказки
|
||
- Docker Compose инфраструктура
|
||
|
||
``` |