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

Gem «from-scratch»
Больше всего на свете программисты любят решать задачи. Меньше всего на свете программисты любят решать задачи, которые до них решали уже тысячу раз. Я сам лично не один десяток раз вручную поднимал среду на очередной VPS для очередного проекта. В компаниях побогаче для этого есть DevOps'ы. Ну а когда их нет, то рано или поздно программист начинает осваивать автоматизацию сам. И либо пишет простенький bash-скрипт, либо разбирается с Chef.
Собственно, магия вот в чём: команда генерирует типовой конфиг для Chef под указанный хост и имя проекта и запускает Chef Solo (режим, не требующий запуска сервера конфигурации). Только делает это всё так, чтобы вам не нужно было ничего понимать в Chef. Вот, что предусмотрено в данной конфигурации:
И не задавать никаких лишних вопросов.
Всё, что вам останется — это настроить Capistrano:
Надоело.
$ 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"