Next JS и Nginx
- суббота, 21 октября 2023 г. в 00:00:17
Всем привет! Решил сделать небольшую инструкцию как запустить проект Next JS на сервере. Я использовал Ubuntu 22.04 и 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;
}
sudo apt install curl
curl https://raw.githubusercontent.com/creationix/nvm/master/install.sh | bash
source ~/.profile
install 18.4.0
apt install git
git init
git remote add origin https://наш_гит.ru/репа.git
git config --global credential.helper store
git fetch
git pull origin master
Создаем службу /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
Создаем 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!"