Деплой Rails приложения

В качестве сервера — vps на Debian 7 x86 (openvz/1 core Xeon/256MB RAM/5GB SSD). Используемый стек: Rails5,Passenger + Nginx, Postgress.

1. Базовая настройка

apt-get update
apt-get install nano mc curl git sudo

На сервере не установлена локаль по-умолчанию. Для этого выполним

dpkg-reconfigure locales

Выберем нужную локаль для сервера и перезалогинимся на сервер.

2. Устанавливаем ruby с помощью rvm

Установку rvm, ruby нужно выполнять не от рута. Создадим нового пользователя

useradd master
passwd master
mkdir /home/master
chmod -R 777 /home/master #Вот так делать не надо

Разрешим sudo. Для этого добавим в /etc/sudoers строчку

master  ALL=(ALL:ALL) ALL

Устанавливаем RVM

gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3
\curl -sSL https://get.rvm.io | bash -s stable

Перезалониваемся на сервере.
Что-бы не писать каждый раз /bin/bash —login выполним(от рута)

chsh master -s /bin/bash

Устанавливаем нужную версию ruby

rvm install 2.3.1
rvm use 2.3.1 --default

Устанавливаем rails

gem install rails

3. Passenger + Nginx

Устанавливаем согласно документации

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 561F9B9CAC40B2F7
sudo apt-get install -y apt-transport-https ca-certificates

sudo sh -c 'echo deb https://oss-binaries.phusionpassenger.com/apt/passenger wheezy main > /etc/apt/sources.list.d/passenger.list'
sudo apt-get update

sudo apt-get install -y nginx-extras passenger

Раскомментируем в файле /etc/nginx/nginx.conf строку

# include /etc/nginx/passenger.conf;

Выполняем проверку

sudo /usr/bin/passenger-config validate-install

4. Деплой
Устанавливаем nodejs. В составе стандартного набора пакетов Node.js отсутствует.
В /etc/apt/sources.list добавляем репозиторий

deb http://ftp.de.debian.org/debian/ jessie main contrib non-free

Чтобы в дальнейшем пакеты ставились из stable дистрибутива, пропишем в файл /etc/apt/apt.conf.d/70default-release настройки для выбора пакетов строку

APT::Default-Release "stable";

Обновляем пакеты

apt-get update

Установка nodejs

sudo apt-get -t jessie install nodejs npm

Клонируем из репозитория проект или создаем новый. В данном примере создам новый проект в каталоге /home/master/www

rails new onepass
cd onepass
rails db:migrate
bundle install

Продолжение скоро…

9 thoughts on “Деплой Rails приложения

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *