Как правильно деплоить?
привет.
Пойдем не по порядку.

Первое – БД
Для чего выносят на отдельный сервер? Делается это, как правило, когда первоначальный сервер не тянет из-за большого количества запросов к БД. У вас сейчас такая ситуация? Да – выносить на отдельный сервер. Нет – оставить сервера в покое. 

VPN – тоже оставьте в покое. Если надо выносить БД в отдельный сервер, то тогда иногда имеет смысл закрыть внешку и оставить только VPN.

Docker – докер на проде? У вас точно такой серьезный ресурс, что нужно поднимать в день по несколько VDS и нужен докер? Когда на локале докер еще можно понять – удобство и без мусора. Но на проде? Или есть лишние деньги/ресурсы?
Похоже, что докер тоже стоит оставить только на локале и в покое.

Секретные ключи – это вообще никогда нельзя хранить в репозитории. Иногда можно использовать компромисс – зашифрованные файлы. Но тут нельзя быть в покое и следует всё проверить несколько раз.

минутка занимательной теории:
Как работает деплой? (пример из жизни в очень общих чертах для понимания принципиальной схемы)

Разработчик отправляет пуш в гит. После этого гит кидает оповещение в CI&CD-сервис. 
CI&CD-сервис запускает свой процесс, согласно описанному в запушеной ветке протоколу (конфиг сервиса).

Обычно, порядок действий в CI&CD-сервисе такой:
– поднимается контейнер с ОС
– в контейнере разворачивается репо
– подтягиваются все зависимости, настраивается окружение, поднимается база с сидами.
– накатываеются миграции
– прогоняются тесты

Далее запускается скрипт деплоя:
– репо заливается на сервер, например, с помощью rsync или другого инструмента (в этом месте мы используем зашифрованные приватные ключи для доступа к конечному серверу)
– на сервере запускается рутина обновления (например, накатить миграции, обновить конфиги, перезагрузить сервисы)

По окончанию приходит уведомление о статусе. Например в слак.

Все счастливы, разработчик отмечает успех (или устраняет результаты безуспешных тестов).

P.S. Если у вас возникают эти вопросы, то, похоже, вы не DevOps'или раньше. 
И это не предмет для обиды или оскорбления, а, наоборот, предмет для размышления над сложностью решений. Сейчас создается впечатление, что вы хотите стрельнуть себе в колено, причем из дробовика.
Вариант деплоя от автора PHP: https://codeascraft.com/2013/07/01/atomic-deploys-...