Using docker compose
Using docker compose for local development
The easiest way to start the project in a local development environment is to use docker compose. The docker-compose.yml file in the root of the project contains a number of services for running both the application as well as utility services for debugging and observability.
The application services include:
- nginx
- nuxt-app
- postgres
- redis
- backend (gunicorn process)
- celery_worker
- celery_beat
- migrate
The utility services include:
- pgadmin
- redis-commander
- mailhog
- flower
nginx
The nginx service is like the front-door for the application.
nginx routing
All requests to localhost (port 80 of localhost) are sent to the nginx container. The nginx configuration file (nginx/dev/dev.conf) is used to route applications to either the backend container if the request starts with one of the following:
/api//admin//graphql/
All other requests will be sent to the nuxt-app service on port 3000 and are served by the Nuxt.js application.
backend
The backend service is the gunicorn server that runs the wsgi application Django application. It serves requests for the REST and GraphQL APIs, as well as the Django Admin interface.
