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.