Как делать правильный деплой?
накрутить можно много и как угодно.
1. CI сервер их куча разных на любой вкус и цвет
для repo1 по хуку на какую-нибудь ветку например  master или prodaction  делаем обновление кода на сервере
с бд все зависит от организации работы с ней 
если есть механизм миграций, то проблемы вообще нет
 repo 2  заворачиваем в пакет для любого удобного менеджера пакетов  npm  bower  и т.д
c обновлением по лицензии, я бы не стал ее делать на рабочем сервере сразу, но это вам решать
2 для удаленной кофигурации так же есть ansible  puppet  можно их прикрутить
3 докер - собираете контейнер с приложением, а на сервере тупо обновляете
короче вариантов много, пробуйте. как правильно никто не скажет. скажут лишь о том что в тренде.
Если у вас есть небольшие знания питона или желание посмотреть основы, то я бы посоветовал Fabric. Сам с ним деплоил django. Но так же выполнял всякую настройку сервера под nginx/uwsgi/python. Но докер, конечно, выглядит лучше.