Как организовать разработку на NodeJs/NestJs/Vue/Ubuntu?

У меня есть VPS с Ubuntu, на котором установлен Nginx, NodeJs и NestJs для фронтенда (Vue) и бэкенда.
Я пока только изучаю этот стек, делаю простое приложение. Всё работает, но меня не устраивает сам процесс разработки.
Как это выглядит у меня сейчас. Рабочая машина - Windows. Запускаю терминал по SSH (Putty), чтобы перегружать Nginx, а также процессы NodeJs, отвечающие за фронт и бэк. Тоже удовольствия мало:
ps aux | grep node
ищу фронт и бэк и прибиваю по PID:
sudo kill -9 pid
и рестарт
бэк: npm run start
фронт: npm run serve

Не очень удобно. Это раз.
Сам код фронта и бэка я правлю через Visual Studio Code через плагин SSH-FS напрямую на живом сервере. Я понимаю, что это неправильно.
Поэтому прошу посоветовать, подсказать, как правильно организовать процесс разработки, чтобы было по фен-шую. Какими инструментами пользоваться?
Как я себе это представляю. Нужно поднять Gitlab или Bitbucket для хранения кода для бэка и фронта.
На локальной машине поднять проект, синхронизировать его с системой контроля версий, запушить изменения.
А как дальше автоматизированно затянуть эти изменения на сервер? Останавливать процессы вручную, потом git pull, старт обоих сервисов для фронта и бэка... Как всё это правильно делать?
Тесты пока пропускаем, хотя уже готов к побиению камнями.
  • Вопрос задан
  • 1091 просмотр
Решения вопроса 2
Robur
@Robur
Знаю больше чем это необходимо
Вы случайно на php до этого не писали? :)

Разработку делайте локально - сервер на ноде и девсервер для vue запускайте на своей машине, базу если есть можно подключать удаленную.
Можно напрямую, можно через докер если у вас какие-то проблемы будут из-за винды.

Как потом делать правильный деплой на стейджинг/прод - отдельная большая тема, для начала настройте себе нормальное окружение разработки и локальны процесс.
Ответ написан
@fedot1325
Поднимаете nginx / базу / бэк / фронт в разных контейнерах локально через docker-compose. Бэк можно запускать через nodemon, чтобы не перезапускать процесс после изменения файлов. На gitlab можно настроить CI, чтобы после пуша в ветку автоматически собирался образ с вашими файлами. Позже на проде просто обновляете образы бэка/фронта (на проде тоже понадобится докер).
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
@kr_ilya
Я всё держу на локалке, запускаю 2 консоли для бэкенда и фронтэнда на разный портах, а на сервер заливаю уже готовый билд.

На сервере так же запускаю 2 процесса ноды (фронт, бек) и собственно всё.
Ответ написан
@dev-sasha
В дополнение к другим ответам, посоветовал бы следующее:

1. Перейти на Linux (например Ubuntu), или Mac.
2. IDE от JetBrains - WebStrorm вместо VS. (Удобно из коробки работать с базами. Многое уже есть из коробки и не надо морочится с плагинами, хотя плагинов тоже существует множество).
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы