- 06/01/2019 : release 1.0 done. All features are implemented.
This project aims to deploy an online application, without the need for simplified cloud services patches.
- main server on AWS EC2
- database on AWS RDS
- set up with Docker and Docker-compose
- deployment of Celery and Redis as services
- use of a cron service for weekly tasks
- use of travis for continuous deployment
- use of sentry for efficient log management
- use of Gunicorn and Nginx for HTTP communication
You can clone this repository to your local drive.
This project uses a submodule that contains the application. Make sure to import the submodule by executing the code below, from the root of the project :
git submodule update --remote --merge
to use it, you'll need:
- docker
- an AWS account
- a Sentry account
- a Travis account
Install docker and docker-compose. Create your own database. Finally, create your .env
in the root (see the part : "setting configuration").
Simply run :
docker-compose up
# .env file
DATABASE_NAME=
DATABASE_USER=
DATABASE_PASSWORD=
DATABASE_HOST=
DATABASE_PORT=
REDIS_PORT=
PERSONAL_PASSWORD=
GOOGLE_KEY=
GOOGLE_PASS=
SENTRY_DNS=
Thanks to Travis, tests are automatically launched with each push to your Github account. You can still run them manually from the "django_app" container, when it is running.
Thanks to docker, the deployment is relatively simple. The deployment is done in the same way as locally. Follow the same process locally to deploy your application.
Mikael Briolet - Initial work - OpenClassroom
MIT license.