Перед вами третья и последняя статья из серии, посвященной деплою Jekyll и Middleman на VPS. В ней мы поговорим о деплое Middleman на уже настроенный нами VPS. В отличие от джекилла, здесь мы будем использовать несколько иной принцип.
- Часть первая - настройка сервера
- Часть вторая - деплой Jekyll
- Часть третья - деплой Middleman (эта статья)
Во-первых, для деплоя нам понадобится дополнительный гем - 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” и теперь вы знаете все, что для этого нужно. Помните, что способов деплоя и разворачивания проектов на сервере всегда несколько и не бойтесь экспериментировать (главное, делайте бэкапы). Теперь вы можете держать все ваши проекты, построенные на конструкторах статических сайтов, на одном сервере и экономить на этом немного денег.