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
Makefile
- file with all commandsdump.sql
-PostgreSQL
dump inSQL
formatDockerfile.yml
- Dockerfiledocker-compose.yml
- file for deploymentDocker
containers.docker/.env
- env variablessrc/.flake8
-flake8
linter config filesrc/.coveragerc
- coverage config filesrc/pytest.ini
-pytest
config file
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
- Clone repository
- Define DB name in .env if need custom name (variable
POSTGRES_DB
) - Deploy with command
make up
- Check address