Skip to content
Snippets Groups Projects
Select Git revision
  • main default protected
  • 0.1.0
2 results

arquitetura_cms.md

Blame
  • Forked from C3SL / Rdt Docs
    6 commits ahead of the upstream repository.

    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

    Imagem da arquitetura CMS