https://github.com/kenanbek/django-celery-skeleton
Django and Celery skeleton project
https://github.com/kenanbek/django-celery-skeleton
celery django docker docker-compose dockerfile postgres postgresql python rabbitmq redis
Last synced: about 1 year ago
JSON representation
Django and Celery skeleton project
- Host: GitHub
- URL: https://github.com/kenanbek/django-celery-skeleton
- Owner: KenanBek
- License: apache-2.0
- Created: 2018-03-30T20:39:24.000Z (about 8 years ago)
- Default Branch: master
- Last Pushed: 2020-08-24T10:39:43.000Z (almost 6 years ago)
- Last Synced: 2025-05-07T06:06:39.202Z (about 1 year ago)
- Topics: celery, django, docker, docker-compose, dockerfile, postgres, postgresql, python, rabbitmq, redis
- Language: Python
- Homepage:
- Size: 34.2 KB
- Stars: 8
- Watchers: 1
- Forks: 2
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Django Celery Skeleton
Django and Celery skeleton project.
## Versions
App | Version
--- | ---
Python | 2.7.12
Django | 1.11.11
Celery | 4.1.0
## What is included
- PostgreSQL as a Django database
- Redis as a result backend
- RabbitMQ as a message broker
- Scalable Docker and Docker Compose configuration (HAProxy)
## Docker Compose containers
- db (Django PostgreSQL database)
- redis (Redis result backend for Celery)
- rabbit (RabbitMQ message broker for Celery)
- web (Django application)
- worker (Celery worker)
- lb (HAProxy load balancer)
# Project structure
django-celery-skeleton/
|---src # django project folder
| |---dcs # django root configuration
| | |---settings.py
| | |---urls.py
| | |---wsgi.py
| | |---celeryconf.py
| |---files
| | |---tempaltes # view templates
| | | |---index.html
| | |---media # images, sized cache and placeholder
| | | |---.gitignore
| | | |---placeholder.png
| | | |---README.md
| | |---static
| | | |---placeholder.png
| | |---README.md
| |---manage.py
|---.gitignore
|---.dockerignore
|---Vagrantfile
|---Dockerfile
|---docker-compose.yml
|---requirements.txt
|---README.md
# Setup & Run
## Copy git repository
git clone https://github.com/KenanBek/django-celery-skeleton.git
cd django-celery-skeleton
## Run inside docker
# build docker containers
docker-compose build
# option 1: run 1 instance of web
docker-compose up
# option 2: run 3 instances of web over load balancer
docker-compose up --scale web=3
# option 3: run in background with -d
docker-compose up -d --scale web=3
You can also run manage.py commands using docker environment, for example tests.
docker-compose run web python ./manage.py test
See docker's logs
docker-compose logs --tail 5
## Run from local machine
# Install requirements
virtualenv env
source env/bin/activate
pip install -r requirements.txt
# Move to 'src' folder
cd src
# Run worker
celery worker -A dcs.celeryconf -Q default -n default@%h
# Start application on another console
python manage.py runserver