arquitetura_cms.md
-
Guilherme Eduardo authoredGuilherme Eduardo authored
Arquitetura do projeto site C3SL
Componentes:
- VM
- Strapi
- Hugo
- Nginx (Hugo e Strapi)
- Postgresql
- Systemd
- DNS
- CNAME strapi.c3sl.ufpr.br
- CNAME cms.c3sl.ufpr.br
VM CMS (Máquina virtual)
É um ambiente/servidor, o qual possui as aplicações que queremos executar e disponibilizá-las para acesso externo.
Strapi:
Strapi é o CMS (Serviço de gerenciamento de conteúdo), o qual usamos para comunicar com o site baseado no framework Hugo por meio de uma interface gráfica. O objetivo é usá-lo para facilitar o serviço do time de comunicação ao postarem notícias no site do C3SL. Internamente, o strapi possui uma configuração de lifecycles, o qual é possivel executar ações conforme algum tipo de evento acontece (publicar/deletar uma notícia). Uma dessas ações é transformar o conteúdo da notícia em um arquivo markdown que será salvo dentro do diretório de conteúdos do Hugo (content/). O strapi é servido pela porta 1337 da máquina virtual.
Hugo
É um framework de gerador de sites estáticos. O funcionamento dele é baseado pela existência de algum tema qualquer. Hugo possui um arquivo de configuração com a extensão .yml, onde possui algumas configurações gerais do site, bem como, é possível ter outras informação e apenas "referenciar" nos arquivos html/css. Ele é servido na porta 1313 da máquina virtual.
NGINX
O nginx é um software que utilizamos para hospedar ambos os sites (Strapi e C3SL). Com ele é possível balancear as cargas de acesso e usá-lo como proxy reverso, o que significa que o nginx ficará entre o servidor e o cliente.
Possuímos um arquivo de configuração para cada site (Strapi e C3SL). Nesses arquivos direcionamos as rotas http para https; validamos o site por meio de um certificado digital, que faz uma ponte criptografada, além de informar como o NGINX vai administrar as solicitações de acesso às URL's.
Postgresql
É o banco de dados, o qual iremos utilizar juntamente com o Strapi. Nele serão armazenada as informações, como: noticias, autores, projetos, etc.
DNS
O DNS serve para resolver os nomes de domínio para os endereços IP que o servidor NGINX usa, garantindo que o cliente consiga acessar o site.
CNAME's
Um registro CNAME é um elemento de informação de um DNS (Domain Name System). Os registros CNAME normalmente são usados para mapear um subdomínio como www ou mail ao domínio que hospeda o conteúdo desse subdomínio.
Usamos o CNAME para mapear domínios. No projeto do site do C3SL, utilizaremos os seguintes: Strapi: strapi.c3sl.ufpr.br Site do C3SL: cms.c3sl.ufpr.br
Systemd
O systemd é um gerenciador de tarefas de serviços controlado pelo kernel do sistema operacional. Ele faz com que softwares sejam executados em segundo plano, como serviços (chamados de Daemon). Podemos controlá-los por meio de comandos do systemctl
Por exemplo:
systemctl status <nome_do_serviço>
systemctl start <nome_do_serviço>
systemctl stop <nome_do_serviço>
Para verificar os log's do strapi, podemos utilizar o comando sudo journalctl -xefu strapi