Criação de página de Intranet com Docker

 Por Ciro Mota |  12, Julho 2020 |  Tempo de leitura aproximadamente 4 minutos.
 Edições: Revisão textual. Em 26, Fevereiro 2022.

Olá caros amigos, tudo bem com vocês? Espero muito que sim. Nesse artigo vamos falar sobre as páginas de Intranet.

Seja uma pequena até uma grande empresa, os sites desenvolvidos internamente são a “porta de entrada” para os funcionários ao iniciar e durante o dia de trabalho, para acesso a links de serviços externos e/ou comunicados da empresa. Até ai tudo bem, nada diferente do que já sabemos. Mas como podemos montar uma estrutura simples para essas páginas e entregar algo rápido, eficiente e mais simples de manter?

Até algum tempo atrás nós tínhamos poucas opções para criação de sites, externamente buscávamos uma hospedagem e instalaria o Wordpress ou iríamos recorrer a algo mais simples no Blogger ou no próprio Wordpress[.]com, nesses dois últimos a coisa funcionava de forma engessada. Para provisionar uma estrutura local de Intranet, tínhamos o IIS com uma combinação de MySQL, PHP e com o Wordpress ou um Server Linux rodando as mesmas aplicações, requerendo um ambiente talvez exclusivo só para essa aplicação.

Hoje felizmente a programação evoluiu e chegamos ao advento dos sites estáticos. Ferramentas como o Jekyll e o HUGO (este humilde Blog inclusive roda em HUGO) nos permite provisionar sites simples e super leves tanto para armazenamento, quanto em código e consequentemente acesso e com a mesma qualidade de um Wordpress da vida.

Hoje também temos os Docker Containers, ferramentas que facilitam muito a nossa vida no provisionamento de serviços. Nesse artigo vamos montar de forma simples uma página de Intranet com um Docker container rodando o HUGO. Considero o HUGO muito mais fácil de se manter do que o Jekyll por necessitar apenas dos temas e configurações do próprio site em um arquivo .toml.

Mão na massa:

  1. Primeiro passo é ter o Docker-ce instalado, seja em um Windows Server ou em uma Distro Linux.

  2. Faça o clone (https://github.com/jojomi/docker-hugo)[deste Git] e siga as instruções contidas para rodá-lo. Percebam que todo o conteúdo deste repo é possível ser auditado e também uma engenharia reversa para modifica-lo ao seu modo e à sua necessidade.

Feito isso voilà, nosso site já estará respondendo através do endereço localhost:1313. Escolha um tema de sua preferência para modificar e insira os arquivos no diretório criado no passo 2. Veja meu exemplo do container rodando no Host e acessível através de uma VM, através do endereço IP.

Caso sua rede possua resolução de nomes em FQDN, o site estará acessível pelo nome do Host/Server.

Sabemos que containers são voláteis, contudo neste caso o site tem toda a sua estrutura “montada” no Host/Server e o serviço de renderização no container (não tenho certeza absoluta se no Windows também será assim), ou seja, toda a modificação estrutural e postagens não serão perdidas.

Mas claro que não queremos qualquer pessoa (por favor meu caro leitor, não entenda aqui como uma colocação pejorativa) acessando o servidor para publicar no site, para isso existe duas formas: Ou dar acesso via compartilhamento ao pessoal da assessoria/setor que manterá o site à pasta que criamos no passo 3, ou após o site pronto, o compartilhamento/acesso tão somente através da pasta “content” que conterá as publicações em formato Markdown.

docker stop [container] docker start [container] docker restart [container] serão as únicas tarefas que precisarão ser feitas no container após montado. Caso precise atualizar a imagem, basta reaprovisionar o container removendo o antigo. Aqui cuidado se o tema usado for dependente da versão da plataforma.

OBS: Caso seja feita alguma modificação no arquivo “config.toml”, o container precisará ser reiniciado. Qualquer outra modificação nos arquivos .html ou nas postagens, serão automaticamente publicadas.

Se necessário por exemplo montar uma lista de aniversariantes, podemos lançar mão dos conteúdos em Embed do Google Apps. As implementações são muitas dentro dos sites estáticos. Sites estáticos são simples e poderosos e esse mesmo ambiente relatado aqui pode ser utilizado para um time de desenvolvimento.

É possível a utilização de ferramentas em Front-End para manipulação dos containers, como a Portainer, apesar de particularmente não ver necessidade exceto quando da existência de muitos containers.

Espero que mais esse artigo seja útil.
Até a próxima!