# Como navegar pelos documentos de Strapi e site Hugo na VM ## Acesso na VM CMS: Primeiramente, é necessário acessar o usuário *hugo* para visualização das pastas que contém o conteúdo geral do site. comando: `su - hugo` ### Pastas disponíveis para o acesso: - **Pasta cms-c3sl:** Nessa pasta, tem o diretório `/cms-c3sl/themes/c3sl`, dentro dele temos os diretórios principais para a configuração do site. Na pasta `assets` contém os arquivos do frontend do site, sendo eles: css, javascript e scss. Outra pasta importante é de `layout`, nela estão armazenadas os arquivos html de todo o site, onde é possível fazer as alterações de texto. Em `exampleSite` está contido o arquivo principal de configuração do site, o `config.yml`, nele é possível fazer a definição geral do site. Agora em `exampleSite/content/` estão os arquivos de markdown do site, como os arquivos de notícia, projetos e de quem somos. E por fim, no diretório `exampleSite/content/` é reservado os arquivos gerados após ser feito o build do site, tudo o que aparece no site visualizado. - **Pasta strapi:** A pasta armazena um arquivo importante que é o `.env` que possui variaveis de ambiente, como configurações de banco de dados, servidor, chaves de segurança e outras informações sensíveis, isso facilita o gerenciamento de diferentes ambientes (local e produção). Nessa pasta é importante navegar até o diretório `config`, onde nela está armazenada o arquivo `server.js`, que no geral é responsável pela configuração do servidor, como se conectar com a rede e os principais aspectos de segurança. Além disso, o programa `src/index.js` é usado para captar a dinâmica de postagens no strapi, ou seja, ele atua na manipulação de lifecycle hooks, que possui a função de dectar alterações nos arquivos do strapi, como a edição, despublicação, publicação e o delete. Esse programa faz a escrita em .md do que foi publicado na pasta `exampleSite/content/` comentada no tópico anterior sobre o site do c3sl ## Execução operacional do site: ### Systemd: Para operar o site em produção é fundamental utilizar o serviço de systemd, sendo assim, para realizarmos uma configuração do systemd a fim que seja possível executar o nosso software como serviço (Deamon), será necessário acessar o caminho para o diretório `/etc/systemd/system/` e criar um arquivo com a extensão `.service`. 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`. Dentro do arquivo podemos realizar algumas configurações, como: Em qual diretório serão executados os comandos; Quais tipos de comandos serão realizados (Inicialização do strapi, por exemplo = `pnpm run start`), entre outros. Veja abaixo WorkingDirectory=/home/hugo/strapi ExecStart=/home/hugo/.nvm/versions/node/v21.6.1/bin/pnpm run start Note que, para executaro comando de inicialização do nosso serviço, é necessário informar o PATH do executável (Ex: pnpm). Podemos verificar o PATH pelo comando `which`. Para o gerenciamento do site hugo, é necessário a configuração de WorkingDirectory=/home/hugo/cms-c3sl/themes/c3sl/exampleSite ExecStart=/usr/local/bin/hugo --watch --themesDir ../.. No qual, segue a mesma ideia do strapi, a flag `--watch` que detecta as alterações feitas nos principais diretorios do site e realiza a recompilação/build do site com as alterações atualizadas.