Implante Jekyll com Mina

Postagem original: http://blog.alii.pro/

Este blog está rodando no servidor CentOS 7 da DigitalOcean .
O servidor da web é Nginx.
O sistema de blog que estou usando é o Jekyll .
Para tornar a implantação fácil e rápida, uso o Mina .
A filosofia por trás de Mina é a mesma de Capistrano, mas com menos recursos e configuração.

DigitalOcean tem um bom tutorial para configurar um servidor CentOS: https://www.digitalocean.com/…-centos-6

Nginx tem um repositório oficial para CentOS que você pode usar para sudo yum update: http://wiki.nginx.org/Install

Siga sua ferramenta preferida para gerenciamento de versão Ruby e instale o Ruby no servidor.

Configure seu blog jekyll em sua máquina local e certifique-se de que esteja pronto para o público. Eu uso o GitHub. Você pode usar qualquer provedor de repositório git, mas certifique-se de que ele estará disponível para pull em sua máquina CentOS. Pode ser até no seu servidor CentOS!

Configuração Mina

O arquivo inicial de implantação Mina pode ser criado com o mina initcomando.

Aqui está meu config/deploy.rbarquivo.

# config/deploy.rb
require
'mina/bundler'
require
'mina/rails'
require
'mina/git'
require
'mina/rbenv'

set
:domain, 'cloud.alii.pro'
set
:user, 'ali'
set
:deploy_to, '/home/ali/blog'
set
:repository, 'https://github.com/aliismayilov/blog.git'
set
:branch, 'master'

task
:environment do
invoke
:'rbenv:load'
end

desc
"Deploys the current version to the server."
task
:deploy => :environment do
deploy
do
invoke
:'git:clone'
invoke
:'bundle:install'
queue
"#{bundle_prefix} jekyll build"
end
end

Bem direto. Declare o domínio e o usuário ssh, o diretório de implantação, o repositório de onde extrair (branch master).
Prepare o ambiente rbenv (carrega o arquivo .ruby-version) e o processo de implantação real.

Configuração Nginx

Primeiro você precisa criar e pastas. Eu gosto dessa abordagem porque você pode facilmente criar links simbólicos / desvincular configurações de sites. Adicione a seguinte linha a :/etc/nginx/sites-available//etc/nginx/sites-enabled/

/etc/nginx/nginx.conf

# /etc/nginx/nginx.conf
# ...
include
/etc/nginx/sites-enabled/*;
# ...

Depois que seu blog estiver no servidor, você poderá criar os arquivos do seu site nginx.

# /etc/nginx/sites-available/blog.alii.pro
server
{
listen
80 default_server;
server_name blog
.alii.pro;
root
/home/ali/blog/current/_site;
index index
.html
# how long should static files be cached for
expires
1d;
}

Agora crie um link simbólico para este arquivo:

$ sudo ln -s /etc/nginx/sites-available/blog.alii.pro /etc/nginx/sites-enabled/blog.alii.pro

Conclusão

Essas foram as etapas necessárias para configurar o blog Jekyll no CentOS. Ele pode ser facilmente implantado por meio de comandos git pushe mina deploy.

Eu sou grande fã do GitHub, mas o GitHub Pages está muito atrás do lançamento do Jekyll. Eu uso o plugin de marcação do Jekyll, seu recurso SASS e não quero me limitar a usar qualquer outro recurso de um grande sistema de blog.

Aqui está o console dos logs de implantação da máquina local: http://upl.io/b12cm7 .