Приложение для управления задачами (to-do). Backend на Django REST Framework, frontend на React, контейнеризация через Docker.
- Python 3.12
- Django 3.2
- Django REST Framework 3.12
- React
- Node.js 18
- PostgreSQL 13
- Nginx 1.22
- Gunicorn 23
- Docker
- GitHub Actions (CI/CD)
| Nginx :80 | → | Backend :8000 | → | PostgreSQL :5432 |
|---|
Nginx также раздаёт /staticfiles/ (frontend build + backend static).
- Docker >= 20.10
- Docker Compose >= 2.0
git clone git@github.com:hawkxdev/taski-docker.git
cd taski-dockerСоздайте файл .env в корне проекта:
POSTGRES_USER=django_user
POSTGRES_PASSWORD=your_password
POSTGRES_DB=django
DB_HOST=db
DB_PORT=5432Для локальной разработки:
docker compose up --build -dДля production:
docker compose -f docker-compose.production.yml up -ddocker compose exec backend python manage.py migrate
docker compose exec backend python manage.py collectstatic --no-inputdocker compose exec backend python manage.py createsuperuser- Приложение: http://localhost:8000
- Админ-панель: http://localhost:8000/admin/
- API: http://localhost:8000/api/
taski-docker/
├── backend/ # Django-приложение (API + админка)
│ ├── api/ # REST API
│ ├── backend/ # Настройки Django
│ └── Dockerfile
├── frontend/ # React-приложение
│ ├── src/
│ └── Dockerfile
├── gateway/ # Nginx-конфигурация
│ ├── nginx.conf
│ └── Dockerfile
├── docker-compose.yml # Локальная разработка
├── docker-compose.production.yml # Production
└── .github/workflows/main.yml # CI/CD
При пуше в ветку main GitHub Actions автоматически:
- Запускает тесты backend (flake8 + Django tests)
- Запускает тесты frontend (npm test)
- Собирает и пушит Docker-образы на Docker Hub
- Деплоит на production-сервер
- Отправляет уведомление в Telegram
Проект создан в рамках учебного курса Яндекс Практикум.