Какие есть способы отправки гит-репо на рабочий сервер?
Есть проект на локальном ПК на Python. С него пушу коммиты на github. Ручками захожу на сервер, тяну изменения с гитхаба и перезапускаю сервисы, при необходимости что-то доустанавливаю (или запускаю баш скрипт, который это все сам поочередно делает).
Хочу это дело как-то автоматизировать, чтобы после одного пуша с локального ПК все само срабатывало на сервере. Читал про хуки на гитхабе, но не пойму как принять сообщение на сервере так, чтобы запустился скрипт обработки всего этого дела. Помогите, пожалуйста, осмыслить это все не только в абстракции, но и конкретике (сервер: ubuntu, nginx, flask).
P. S.
Какие вообще «здоровые» практики всего этого дела?