Dokku: Instalar um site HTML estático

Neste artigo vamos mostrar como instalar um site HTML estático no Dokku Dokku v0.4.5 a correr no DigitalOcean.

Se são novos ao Dokku leiam o artigo anterior sobre como instalar o Dokku.

Quando fazem um push de um repositório para o Dokku este vai tentar detectar um buildpack apropriado e corrê-lo. Um buildpack é uma colecção de scripts que vão executar enquanto a aplicação está a ser construída.

Por exemplo, um buildpack pode adicionar suporte para PHP, enquanto outro adiciona suporte para Ruby. O Dokku é compatível com os buildpacks do Heroku.

Para servir um site HTML estático precisamos de um servidor web. Poderíamos usar um buildpack para PHP para fazer isto mas não quero o overhead adicional.

Vamos usar o buildpack de NGINX do florianheinemann.

Especificar o buildpack

Em vez de deixar o Dokku detectar automaticamente o buildpack podemos especificá-lo manualmente.

Criem um ficheiro .env na raíz do vosso repositório com o seguinte conteúdo:

export BUILDPACK_URL=https://github.com/florianheinemann/buildpack-nginx.git

Cada buildpack precisa de passar uma fase de detecção que determina se o mesmo deve ser aplicado.

Neste caso o buildpack procura por um ficheiro .static na raíz por isso criem este ficheiro (vazio) para que passe a detecção.

Configuração NGINX

Podem colocar os ficheiros para serem servidos na raíz do vosso repositório ou movê-los para a pasta www.

Para reescrever a configuração por omissão do NGINX adicionem um ficheiro nginx.conf.erb com as vossas directivas na raíz do vosso repositório.

Fazer push do repositório

Façam commit e push das mudanças para o vosso repositório.

Adicionem a localização remota do Dokku se ainda não o fizeram:

git remote add dokku dokku@host:app_name

Agora façam push para essa localização e vejam como corre a instalação:

git push dokku master

Definir os domínios

Não vou cobrir em detalhe como configurar os registos de DNS. Apenas precisam de criar registos A que apontam para o endereço IP do vosso droplet.

No Dokku podem configurar os domínios da vossa aplicação usando o plugin domains (já vem instalado).

No vosso servidor, para ver os domínios actuais:

dokku domains app_name

Para adicionar novos domínios:

dokku domains:add app_name domain.tld

Escrevam dokku para verem comandos adicionais.

Mudar a definição de virtualhost naming

A opção virtualhost naming tem de estar activa para as definições dos domínios funcionarem.

Vejam o valor actual da variável NO_VHOST:

dokku config:get app_name NO_VHOST

Se não existir ou se estiver a 0 então não precisam de fazer nada. Se estiver igual a 1 têm de actualizá-la:

dokku config:set app_name NO_VHOST=0

Mudar o número da porta

Também podem ter de mudar o número da porta.

Vejam que porta está a ser usada actualmente:

dokku config:get app_name DOKKU_NGINX_PORT

Definam a porta 80 por exemplo:

dokku config:set app_name DOKKU_NGINX_PORT=80

Deve estar tudo. No próximo artigo vamos ver como instalar uma aplicação PHP.

Artigos relacionados