This is an example python flask web app with a Celery tasks, redis broker and Postgres database.
Application can be run with docker-compose, it has flower dashboard support for Celery and Celery scheduled tasks
- Create .env file in the root directory
example .env file:
export MODE = 'Prod'
export TOKEN = 'very secret token'
docker-composue up --build
docker-compose up --build -d
to run in a background
- If running for the first time
dokcer exec -it webapp-celery-wroker bash
python manage.py recreate_db
(run inside celery container)
This will initialize all db schemas. Postgress container is using docker volume so the data will be stored after exiting or restaring the container
- check:
localhost:5001/healthcheck
For development purposes it is possible to run this as a single flask instance and a separate postgress DB (no celery tasks)
-
Create new virtual environment (see requirements.txt) python 3.6.8
-
Create .env file in the root directory
example .env file:
export MODE = 'Develop'
export TOKEN = 'very secret token'
- Start db instance
/scripts/start_local_db.sh
If running for the first time:
python manage.py recreate_db
python main.py
application will run on port 5011
To run pylint and flake-8
pytest --flake8 --pylint --ignore=webapp/tests --ignore=webapp/common/settings.py
To run pytest:
Tests can be run directly in the celery worker container:
docker exec webapp-celery-worker python -m pytest web_app/tests