# 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.