The client is a single-page app built with React, Redux, ES6+, and webpack.
The backend is managed with Docker Compose. Containers:
| name | description | technology |
|---|---|---|
| nginx | front-end proxy, static file server | Nginx |
| web | API server | Django REST framework |
| realtime | notification server | Node.js, Primus |
| queue | message broker | RabbitMQ |
| worker | queue worker | Celery |
| db | database | PostgreSQL |
-
Create a Docker machine
docker-machine create messenger.local --driver virtualbox eval $(docker-machine env messenger.local)
-
(Optional) Add
messenger.localto yourhostsfile:echo "$(docker-machine ip messenger.local) messenger.local" | sudo tee -a /etc/hosts
-
Set up Docker Composer
export COMPOSE_PROJECT_NAME=messenger COMPOSE_FILE=docker-compose/development.yml -
Build and start containers
make deploy

