A DigitalOcean oferece uma oneclick droplet com o Ghost ja instalado e configurado para ir direto para produção, mas a droplet vem com o Ubuntu 14.04, prefiro usar o CentOs para produção.
O post Configurando o Centos 7 depois de instalado mostra como fazer as primeiras configuraçõs no nosso servidor lab.
O ghost é feito em nodejs, para rodarmos ele iremos instalar os seguintes pacotes:
yum install nodejs npm unzip git -y
Nos utilizaremos o nginx como proxy reverso para receber as conexões, ele rodara na porta 80 e passara as requisições para o nodejs.
yum install nginx -y
Nos iremos baixar e extrair o arquivo zip do ghost na pasta /var/www:
curl -L https://ghost.org/zip/ghost-latest.zip -o /var/www/ghost.zip
Agora para extrair
cd /var/www
unzip -uo ghost.zip -d ghost
Para instalarmos o ghost nos iremos para a pasta que foi criada após a extração:
cd /var/www/ghost
Para instalar rode o comando:
npm install -production
Configurando o acesso web
Agora temos que configurar a parte de acesso web do ghost para isso iremos copiar um arquivo que vem como exemplo e editar a copia:
cp config.example.js config.js
vi config.js
Nos iremos configurar a parte de produção, exemplo:
production: {
url: 'http://dnsdoblog',
mail: {},
database: {
client: 'sqlite3',
connection: {
filename: path.join(__dirname, '/content/data/ghost.db')
},
debug: false
},
server: {
// Host to be passed to node's `net.Server#listen()`
host: '127.0.0.1',
// Port to be passed to node's `net.Server#listen()`, for iisnode set this to `process.env.PORT`
port: '2368'
}
},
Apos mudar a configuração do url é necessario validar se o campo host esta com o endereço 127.0.0.1. Agora nos iremos configurar o ghost para rodar em modo “forever”, para isso iremos usar o pm2:
Para instalar:
npm install pm2 -g
Para rodar no modo forever:
echo "export NODE_ENV=production" >> ~/.profile
NODE_ENV=production pm2 start index.js --name "Ghost"
pm2 dump
pm2 startup centos
Iremos comentar 2 linha no arquivo /etc/init.d/pm2-init.sh
super $PM2 dump
super $PM2 delete all
Para
#super $PM2 dump
#super $PM2 delete all
Para parar o processo do ghost
pm2 stop Ghost
Para reiniciar o processo do ghost
pm2 restart Ghost
Configurando o Nginx
Agora iremos configurar o nginx para funcionar como um proxy reverso:
git clone https://gist.github.com/b282f795c8308b52871d.git /etc/nginx/conf.d/
Com esse arquivo como base podemos editalo para que ele funcione no seu dns:
vi /etc/nginx/conf.d/ghost.conf
No campo server_name coloque o DNS do seu blog
Agora temos que inicar o nginx:
systemctl start nginx.service
E configurar para que ele inicie com o SO:
systemctl enable nginx.service