- Redis / Celery / Celery Beat
- кэширование популярных тегов и лучших участников
- асинхронные уведомления в Centrifugo
- отправка email-уведомлений через Celery
- полнотекстовый поиск и подсказки
- Docker Compose инфраструктура
This commit is contained in:
redtea committed 2026-05-28 09:48:16 +03:00
1 parent becfbeb070
commit 4bc5fcef7a
154 files changed
+33164 -198

No files matched your search

+52 -28
View File
@@ -1,42 +1,66 @@
## Добро пожаловать в мой репозиторий :)
# 2026-VK-EDU-Web-12-Istratov-D
Позже здесь будет проект-дз...
## Запуск в Docker
### О себе
1. Скопируйте `.env.docker` в `.env` или создайте свой файл на основе `.env.example`.
2. Запустите сервисы:
Я интересуюсь **backend-разработкой**, **серверными инструментами** и **микроконтроллерами**.
Пишу на Java, Python и C++, начинал с написания плагинов для Minecraft и разных полезных утилит.
🔧 Студент VK Education, курса "Web-разработка".
## Запуск проекта
Перед запуском нужно составить корректный .env файл! Можно использовать .env.example!
### На текущей машине
```shell
python manage.py runserver 8000
pip install --no-cache-dir -r requirements.txt
```
### Docker
ВАЖНО! Использовать .env.docker вместо .env.example в качестве образца!
```shell
```bash
docker compose up --build
```
Запустится именно на 127.0.0.1:8000
3. Откройте приложение: `http://127.0.0.1:8080`
4. Centrifugo доступен на `http://127.0.0.1:8001`
5. Maildev доступен на `http://127.0.0.1:1080`
## Переменные окружения
## Миграции и заполнение дб
В `.env` должны быть:
Заполнить ДБ 10000 рандомных данных
- `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 инфраструктура
```