Next JS и Nginx

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

Всем привет! Решил сделать небольшую инструкцию как запустить проект Next JS на сервере. Я использовал Ubuntu 22.04 и Nginx.

1. Инсталим nginx

sudo apt-get update
sudo apt-get install nginx

редактируем nginx/sites-available/default

server {
  server_name domen.ru;

  location / {
    include proxy_params;
    
    proxy_pass http://127.0.0.1:3000;
  }

  listen 80;
}

2. Инсталим Node JS

sudo apt install curl
curl https://raw.githubusercontent.com/creationix/nvm/master/install.sh | bash
source ~/.profile
install 18.4.0

3. Инсталим и настраиваем GIT

apt install git

git init
git remote add origin https://наш_гит.ru/репа.git
git config --global credential.helper store
git fetch
git pull origin master

4. Авто старт

Создаем службу /etc/systemd/system/next.service

[Unit]
Description=Next JS
After=network.target
   
[Service]
User=root
ExecStart=/var/www/наш_проект/start.sh
Restart=always
   
[Install]
WantedBy=multi-user.target

В каталоге с проектом создаем файлик start.sh

#!/bin/bash
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"  # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"  # This loads nvm bash_completion

cd /var/www/наш_проект/
/root/.nvm/versions/node/v18.4.0/bin/npm run start

5. Автодеплой

Создаем deploy.sh, его можно запускать через webhook того же gitea.

#!/bin/sh
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"  # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"  # This loads nvm bash_completion

cd /var/www/наш_проект/

set -e

echo "Deploying application ..."
sudo systemctl stop next

echo "Get from git"
git pull origin master

echo "Building "
/root/.nvm/versions/node/v18.4.0/bin/npm install
/root/.nvm/versions/node/v18.4.0/bin/npm run build

sudo systemctl start next
echo "Application deployed!"

Источник: https://habr.com/ru/articles/768728/


Интересные статьи

Интересные статьи

Next.js - современный фреймворк на базе ReactJS, который значительно набирает обороты среди разработчиков и предоставляет инструменты для разных видов рендеринга страниц. WordPress - популярная headle...
Всем привет, дорогие читатели Хабр. Мы долго думали, чтобы нам сделать такое, что от нас не потребует глубоких знаний бэкенда и базы данных, но все же интересное и обучающее, исключительно ориентирова...
Привет, Хабр! В своей первой статье я бы хотел поделиться опытом в развертывании Spring Boot приложения. Но для начала небольшое отступление, которое должно ответить на вопросы зачем и почему.Недавно ...
С 10-й версии в Next.js есть встроенная обработка интернационализированной маршрутизации.В этой статье мы рассмотрим, как добавить интернационализацию в приложение на Next.js — к концу статьи научитес...
Уважаемые коллеги! Уже было достаточно много сказано о противоправных обысках в офисе Nginx. Для того, чтобы донести эти новости до большего количества людей, предлагаю провести акцию — 30-...