{"id":20345793,"url":"https://github.com/izzypt/django_drf_docker_udemy","last_synced_at":"2026-05-22T16:32:20.372Z","repository":{"id":191056376,"uuid":"683839623","full_name":"izzypt/Django_DRF_Docker_UDEMY","owner":"izzypt","description":"Build a functional API with Docker, Celery, Redis, Flower, Nginx, Nginx Proxy manager, Portainer and more...","archived":false,"fork":false,"pushed_at":"2023-09-14T19:17:41.000Z","size":43,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-04T15:48:01.902Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/izzypt.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":"authors_api/__init__.py","dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-08-27T21:28:07.000Z","updated_at":"2023-08-27T22:35:04.000Z","dependencies_parsed_at":"2025-01-14T21:34:39.148Z","dependency_job_id":"ad79efd1-4ac6-42de-a047-dcb314e812ba","html_url":"https://github.com/izzypt/Django_DRF_Docker_UDEMY","commit_stats":null,"previous_names":["izzypt/-django-rest-framework-with-docker"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/izzypt/Django_DRF_Docker_UDEMY","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/izzypt%2FDjango_DRF_Docker_UDEMY","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/izzypt%2FDjango_DRF_Docker_UDEMY/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/izzypt%2FDjango_DRF_Docker_UDEMY/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/izzypt%2FDjango_DRF_Docker_UDEMY/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/izzypt","download_url":"https://codeload.github.com/izzypt/Django_DRF_Docker_UDEMY/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/izzypt%2FDjango_DRF_Docker_UDEMY/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33354035,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-21T12:23:38.849Z","status":"online","status_checked_at":"2026-05-22T02:00:06.671Z","response_time":265,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-14T22:09:48.080Z","updated_at":"2026-05-22T16:32:20.340Z","avatar_url":"https://github.com/izzypt.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Django and DRF with Docker (Udemy Course)\nBuilding a functional API with Docker, Celery, Redis, Flower, Nginx, Nginx Proxy manager, Portainer and more...\n\n# Content\n\nOn this course we will be building a production ready, detailed Django REST API, running on a web server powered by NGINX, on a custom domain name and served securely over HTTPS with SSL Certificates from Letsencrypt.\n\nWe shall achieve our goal by leveraging tools such as Docker, Celery, Redis, Flower, Nginx, Nginx Proxy manager, Portainer, shell scripts and more...\n\nThe concepts we shall cover include:\n\n- Docker and running multiple containers\n\n- Securing a Django REST API with HTTPS using SSL Certificates\n\n- REST APIs with Django and Django Rest Framework\n\n- Class Based Views.\n\n- Shell Scripting.\n\n- Asynchronous tasks with Celery and Redis\n\n- Asynchronous tasks monitoring with Flower\n\n- Introduction to API testing with Pytest using factories and fixtures.\n\n- Token based authentication\n\n- Working with email in development with Mailhog and in production with Mailgun\n\n- Python Test coverage\n\n- Serving static and media files with NGINX and whitenoise\n\n- Makefiles and how they make working with Docker easier.\n\n\n# Project Setup\n\nSome of the things I did while setting up the project :\n\n- Created requirements folder with a file with the required packages for each environment ( dev vs production = base.txt and local.txt vs production.txt )\n- Added a .gitignore\n- Created setup.cfg, configuring ```flake8``` and ```isort```\n- Changed the ```settings.py``` file into a folder with a file for each environment ( dev vs production = base.txt and local.txt vs production.txt )\n- Changed the ```wsgi.py``` file to point to the new settings location\n  ```py\n    file: wsgi.py\n\n    os.environ.setdefault(\"DJANGO_SETTINGS_MODULE\", \"authors_api.settings.local\")\n  ```\n- Created the ```core_apps``` folder and store my django apps there. THe ones created with ```python manage.py startapp```\n\n# Logging In Django\n\nLogging is important for debugging and trouble shoorint our application.\n\nI will use the python ```logging``` module in this course.\n\n```Loggers``` are the fundamental building blocks of this framework. THey are tipically associated with a specific component or module.\n\nThe key components of loggers are :\n\n- Log Levels\n- Handlers\n- Filters\n- Formatters\n\n### Setting Up logging\n\nOn our settings/local , I have added :\n```py\nLOGGING = {\n    \"version\" : 1,\n    \"disable_existing_loggers\": False,\n    \"formatters\" : {\n        \"verbose\" : {\n            \"format\" : \"%(levelname)s %(name)-12s %(asctime)s %(module)s\"\n            \"%(process)d %(thread)d %(message)s\"\n        }\n    },\n    \"handlers\" : {\n        \"console\" : {\n            \"level\": \"DEBUG\",\n            \"class\": \"logging.StreamHandler\",\n            \"formatter\" : \"verbose\",\n        }\n    },\n    \"root\": {\n        \"level\": \"INFO\",\n        \"handlers\" : [\"console\"]\n    },\n}\n```\n### Creating DockerFile and shellscripts\n\n- Django\n  - Dockerfile\n  - entrypoint.sh ```Shell script to run inside docker```\n  - start.sh ```Schell script to run inside docker```\n- PostGres\n  - Dockerfile\n  - \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fizzypt%2Fdjango_drf_docker_udemy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fizzypt%2Fdjango_drf_docker_udemy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fizzypt%2Fdjango_drf_docker_udemy/lists"}