Полгода назад я написал пост [Deploy приложения на RoR 4 с помощью Capistrano 3][1]. Прошло время, я получил много положительных отзывов, но были и отрицательные. Из них можно было понять следующее:
* Инструкция слишком сложная для новичка
* Очень много всего приходится делать «руками»
Я подумал и написал **[gem 'capistrano3-ubuntu-server-config'][2]**, который полностью настраивает Ваш «чистый» Ubuntu сервер. Всё, что Вам нужно сделать руками — создать нового пользователя и дать ему права visudo (причем давать ему права на passwordless sudo ему **не надо**). Он может:
* Настроить SSH (Добавить настройки 'PermitRootLogin no', 'UseDNS no', 'AllowUsers username')
* Создать и настроить swap (размер запрашивается)
* Сделать
* Установить из исходников и настроить как чистый **Nginx**, так и с модулем Pagespeed
* Установить **PostgreSQL** из репозитория, затем создать суперпользователя БД (имя пользователя и пароль запрашиваются)
* Установить из исходников и настроить **Redis**
* Установить **RVM** с последней версией **Ruby** и gem'ами Rails, Bundler
* Скопировать Ваш приватный ssh ключ (например для доступа к приватному git репозиторию) с локальной машины на сервер и добавить его в ~/.ssh/config
* Установить **imagemagick** из репозитория (Необходим для Paperclip, постоянно его забываю ставить)
* Установить любые дополнительные пакеты из репозитория (Запрашивает какие именно)
Можно запустить конфигурационный wizard, который узнает, что именно из вышеперечисленного необходимо сделать и заранее спросит все настройки, чтобы можно было потом пойти попить кофе, а можно запустить отдельные таски. Данный gem будет полезен не только Rails разработчикам, а всем, кто использует Capistrano для деплоя. Эта статья раскроет следующие темы:
* Использование gem'a [capistrano3-ubuntu-server-config][3]
* Использование gem'а [capistrano3-git-push][4]
* Моя текущая миниатюрная конфигурация Capistrano
[Узнать как задеплоить Ваше приложение за 5 минут активного времени][5]
[1]:
http://habrahabr.ru/post/213269/
[2]:
https://github.com/goooseman/capistrano3-ubuntu-server-prepare
[3]:
https://github.com/goooseman/capistrano3-ubuntu-server-prepare
[4]:
https://github.com/goooseman/capistrano3-git-push
[5]:
http://habrahabr.ru/post/246011/#habracut