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.local
to yourhosts
file: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