/django-site-docker

Небольшой новостной сайт на Django

Primary LanguageJavaScript

News Django Site

Build Status codecov Python 3.10

img.png

This project implements a small Django news site.

  • Data Storage - PostgreSQL
  • E-mail notifications - Celery
  • REST API - Django REST Framework
  • Dependencies manager - Poetry
  • Web Server - NGINX & Gunicorn
  • Caching - Redis
  • Deployment - Docker Hub & Github Actions
  • Tests - pytest & mixer
  • Code style - flake8
  • Monitoring: flower, Grafana & Prometheus
  • Logging: Sentry

Files:

  • Makefile - file with all commands
  • dump.sql - PostgreSQL dump in SQL format
  • Dockerfile.yml - Dockerfile
  • docker-compose.yml - file for deployment Docker containers
  • .docker/.env - env variables
  • src/.flake8 - flake8 linter config file
  • src/.coveragerc - coverage config file
  • src/pytest.ini - pytest config file

Local run:

Install dependencies:

make deps

Run Celery:

make celery

flower:

make flower

Run server:

make server

Linter checks:

make linter

Tests:

make tests
  • cli coverage report: pytest --cov-report term-missing -rs --cov=.
  • cli and html coverage report: pytest --cov-report html --cov=.
  • define exclude files for coverage in src/.coveragerc

Local run with Docker:

  1. Clone repository
  2. Define DB name in .env if need custom name (variable POSTGRES_DB)
  3. Deploy with command make up
  4. Check address