Website development
Ruby
Ruby on Rails
29 October 2015

Самая-самая последняя статья о настройке сервера для Rails

Были времена на Хабре, когда каждый уважающий (и не очень) себя рельсовик зачем-то выкладывал свои рецепты настройки боевого сервера и деплоя приложения на Ruby on Rails. Таких статей было 60% от всех статей в хабе Rails, и отголоски того времени до сих пор всплывают: так, например, за август я нашёл две статьи про деплой рельс.

Надоело.

$ gem install from-scratch
$ scratchify your_app_name your.host.com


Что это за магия, читайте под катом.





Gem «from-scratch»

Больше всего на свете программисты любят решать задачи. Меньше всего на свете программисты любят решать задачи, которые до них решали уже тысячу раз. Я сам лично не один десяток раз вручную поднимал среду на очередной VPS для очередного проекта. В компаниях побогаче для этого есть DevOps'ы. Ну а когда их нет, то рано или поздно программист начинает осваивать автоматизацию сам. И либо пишет простенький bash-скрипт, либо разбирается с Chef.

Собственно, магия вот в чём: команда генерирует типовой конфиг для Chef под указанный хост и имя проекта и запускает Chef Solo (режим, не требующий запуска сервера конфигурации). Только делает это всё так, чтобы вам не нужно было ничего понимать в Chef. Вот, что предусмотрено в данной конфигурации:

  • Установить все нужные пакеты
  • Создать «бесправного» пользователя
  • Установить в него RVM вместе с последним MRI
  • Установить PostgreSQL, запустить pgtune
  • Создать схему в PG, создать под неё пользователя
  • Сгенерировать database.yml и secrets.yml
  • Установить nginx
  • Загрузить типовой конфиг для nginx с upstream под любой rack-based сервер приложения через unix-сокет


И не задавать никаких лишних вопросов.

Всё, что вам останется — это настроить Capistrano:

# config/deploy/production.rb
server 'your.host.com', user: 'deploy', roles: %w(app db web)
set :deploy_to, "/home/deploy/your_app_name"

+4
10k 70
Comments 20
Top of the day