Деплой Jekyll и Middleman на VPS, часть третья

Фрей написал, 18.01.2016

Перед вами третья и последняя статья из серии, посвященной деплою Jekyll и Middleman на VPS. В ней мы поговорим о деплое Middleman на уже настроенный нами VPS. В отличие от джекилла, здесь мы будем использовать несколько иной принцип.

Во-первых, для деплоя нам понадобится дополнительный гем - middleman-deploy. Добавьте следующую строку в Gemfile вашего Middleman-проекта:

gem 'middleman-deploy', github: 'middleman-contrib/middleman-deploy', branch: 'master'

Запуск bundle install установит добавленный нами гем, а мы тем временем отредактируем файл config.rb, поместив в него следующие строки:

activate :deploy do |deploy|
  deploy.deploy_method   = :sftp
  deploy.host            = 'ip вашего сервера'
  deploy.port            = 22
  deploy.path            = '/var/www/second.com/html'
  # Optional Settings
  deploy.user     = 'root' # no default
  # deploy.password = 'secret' # no default
end

Отлично, можно сохранить файл и закрыть его.

Теперь войдем на сервер и аналогично предыдущему проекту, создадим директорию для хранения репозитория проекта и инициализируем в ней этот самый проект.

В принципе, это не обязательно, git-репозиторий можно хранить где угодно, но в моем случае все яйца будут лежать в одной корзине (главное помните, что это не безопасно, потому что все сервера рано или поздно крашатся и теряют данные). Итак, если вы решились, то выполните следующие инструкции:

cd ~/
mkdir -p repos/second.com.git
cd repos/second.com.git
git init --bare

Теперь необходимо вернуться на локальную машину и в директории нашего проекта на Middleman выполнить команду:

git remote add vps [email protected]:repos/second.com.git

Не забудьте заменить единицы в ip-адресе на адрес вашего сервера.

Отлично, остались сущие мелочи. Возвращаемся в директорию проекта на нашей локальной машине, запускаем команду

middleman build

которая скомпилирует наш проект, а затем команду

middleman deploy

которая соединится с нашим сервером по sftp и загрузит на него скомпилированные файлы. Готово!

Чтобы упростить задачу, можно добавить в файл config.rb следующую строку:

activate :deploy do |deploy|
  # ...
  deploy.build_before = true # default: false
end

Теперь при выполнении команды middleman deploy билд будет происходить автоматически, что экономит нам одну команду.

На самом деле гем middleman-deploy способен деплоить несколькими разными способами, включая ftp, sftp (как в нашем случае), git и rsync. Однако, мне не удалось настроить деплой через git, что печально, но не критично: деплой через sftp в общем-то ничем не хуже.

Это была последняя статья из серии “Как деплоить статические сайты Jekyll и Middleman на VPS” и теперь вы знаете все, что для этого нужно. Помните, что способов деплоя и разворачивания проектов на сервере всегда несколько и не бойтесь экспериментировать (главное, делайте бэкапы). Теперь вы можете держать все ваши проекты, построенные на конструкторах статических сайтов, на одном сервере и экономить на этом немного денег.