Задать вопрос
@Renhor

Как развернуть Nuxt приложение?

Разрабатывал приложение себе спокойно, пока не пришло время развертки. Есть хостинг с VDS-сервером, домен, мало опыта по работе с консолью и много времени.

Что хочется получить в итоге:
1) Работающий сайт на хостинге.
2) Возможность пушить изменения из git на продакшн. *
3) Желателен автоматический запуск сайта после перезагрузки сервера.

Что есть:
1) Хостинг
2) Сгенерированный сайт через nuxt run build

Пока не совсем понимаю, как придти от того, что есть к тому, что нужно. По пути еще надо защитить разные ключи (пароли к бд и кодовые фразы).

Не судите строго, первый раз такое делаю :(

* Вот тут тоже вопрос, как это реализовать правильно? Сейчас у меня в git просто dev версия. А для пуша в продакшн нужна build версия из папки .nuxt?
  • Вопрос задан
  • 1250 просмотров
Подписаться 2 Простой Комментировать
Решения вопроса 1
@kirill-93
Создаете директорию, например /var/www/my-site. Настраиваете в ней гит, клонируете туда репозиторий. Делаете git pull, npm run build. После этого ваш сайт доступен на 3000 порту по умолчанию, но недоступен "извне".
Теперь ставите nginx. Настраиваете конфиг для вашего домена, например mysite.com, в качестве root указываете /var/www/my-site/statiс, а запросы проксируете на 3000 порт. Примерно так:
location / {
                proxy_set_header   X-Forwarded-For $remote_addr;
                proxy_set_header   Host $http_host;
                proxy_pass         http://127.0.0.1:3000;
        }

Все готово. Теперь при любых изменениях делаете пуш, а на сервере git pull и npm run build.
Это самый простой и банальный вариант. Дальше настраиваете всякие веб-хуки для автоматической сборки, тестирования и тп, если нужно. Или прямо так и работаете.

UPD: Пушить изменения нужно без папки dist, node_modules и тп. Ну оно вроде по умолчанию лежит в .gitignore. То есть пушите только исходники, затем на сервере запускаете npm ci (если необходимо) и на сервере генерируете папку dist.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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