> ## Documentation Index
> Fetch the complete documentation index at: https://docs-visuolab.levantelab.com.br/llms.txt
> Use this file to discover all available pages before exploring further.

# Instalação e configuração técnica

> Arquitetura, infraestrutura, rede, mídia, backups e configuração de idiomas para instalações institucionais do VisuoLab.

Este guia orienta equipes técnicas no planejamento de uma instalação institucional do **VisuoLab**, com base no resumo técnico do VisuoLab.

<Note>
  O documento apresenta uma visão técnica de alto nível. Os requisitos abaixo são uma referência inicial; o dimensionamento e as configurações precisam ser validados para cada instituição.
</Note>

## Arquitetura e serviços

O VisuoLab usa uma infraestrutura conteinerizada. Os serviços são organizados em contêineres próprios e coordenados com **Docker Compose**.

| Camada | Tecnologia | Função |
| - | - | - |
| Backend | Laravel / PHP | Serviços da aplicação e regras de negócio. |
| Frontend | Nuxt.js / Vue.js e Vuetify | Interface de uso da plataforma. |
| Banco de dados | MySQL ou MariaDB | Persistência dos dados. |
| Cache e filas | Redis | Cache e suporte às filas de processamento. |
| Processamento assíncrono | Horizon | Gestão dos jobs e workers da aplicação. |
| Processamento de mídia | FFmpeg | Processamento de vídeo e áudio. |
| Servidor web | NGINX | Atendimento às requisições web. |
| Edição colaborativa | Etherpad | Edição compartilhada de texto. |
| Videoconferência | Jitsi Meet | Comunicação por vídeo integrada. |
| Implantação | Docker e Docker Compose | Organização e execução dos serviços. |

A instituição pode hospedar o ambiente em infraestrutura própria ou em nuvem, conforme suas políticas e necessidades.

## Perfil inicial de infraestrutura

Para uma implantação com todos os serviços em uma única máquina virtual, o resumo técnico propõe:

| Recurso | Referência inicial |
| - | - |
| CPU | 4 vCPUs |
| Memória | 16 GB RAM |
| Armazenamento | 250 GB SSD |
| Sistema operacional | Ubuntu Server 22.04 LTS ou posterior |
| Conectividade | Conexão estável, com IP público ou proxy reverso institucional |

Esse perfil é um ponto de partida para testes, pilotos e uso baixo a moderado. Não representa uma garantia de capacidade para um número específico de usuários ou sessões de vídeo.

### Dimensione conforme o uso

Antes da implantação, estime:

* Quantidade de usuários e uso simultâneo esperado.
* Volume, tamanho e frequência de envio de vídeos.
* Demanda de processamento de mídia e tempo aceitável de espera.
* Uso de videoconferência e edição colaborativa.
* Crescimento do acervo e política de retenção.
* Capacidade e estratégia de backups.

Em instalações maiores, avalie a separação de serviços em servidores distintos e o uso de armazenamento externo ou de objetos para vídeos. A compatibilidade dessas opções deve ser confirmada na versão implantada.

## Prepare a implantação

### Passo 0 — Entre em contato com a Levante Lab

Antes de preparar a instalação, entre em contato com a equipe técnica da **Levante Lab** pelo e-mail [contato@levantelab.com.br](mailto:contato@levantelab.com.br). Informe a instituição e seu contato técnico local para iniciar o alinhamento da implantação.

<Steps>
  <Step title="Conecte a equipe da Levante Lab à equipe local">
    Apresente a equipe técnica local à equipe técnica da **Levante Lab** e defina os canais de comunicação para a implantação. Em conjunto, identifiquem o administrador da plataforma e os contatos para suporte e distribuam responsabilidades por hospedagem, domínio, certificados, banco, mídia, backups e atualizações.
  </Step>

  <Step title="Confirme a versão e os arquivos de implantação">
    Obtenha o repositório, a versão aprovada, os arquivos Docker/Compose e as instruções correspondentes. Confirme as versões de PHP, Node.js, banco e demais dependências exigidas por essa versão.
  </Step>

  <Step title="Prepare servidor e armazenamento">
    Provisione os recursos dimensionados, prepare os volumes persistentes e planeje a expansão do armazenamento. Dados do banco e arquivos enviados devem permanecer disponíveis após a recriação dos contêineres.
  </Step>

  <Step title="Prepare domínio e rede">
    Defina o endereço institucional, o proxy reverso quando aplicável e a configuração HTTPS. Verifique também os requisitos de conectividade das integrações Etherpad e Jitsi Meet.
  </Step>

  <Step title="Configure e inicie os serviços">
    Use os arquivos e procedimentos fornecidos com a versão da aplicação. Configure as credenciais e parâmetros de ambiente, o banco, o frontend, as filas, o processamento de mídia e as integrações.
  </Step>

  <Step title="Configure o acesso institucional">
    Prepare o acesso administrativo, as permissões e os idiomas habilitados. Defina os contatos e procedimentos de suporte aos usuários.
  </Step>

  <Step title="Valide antes da abertura aos usuários">
    Execute os testes de funcionamento descritos abaixo e registre a versão, a configuração e os responsáveis pela instalação.
  </Step>
</Steps>

<Warning>
  O resumo técnico não fornece nomes de serviços Compose, variáveis de ambiente, comandos de migração, build, inicialização ou atualização. Esses comandos devem ser obtidos e conferidos no repositório da versão instalada.
</Warning>

## Rede e acesso externo

O documento descreve acesso externo por **HTTPS na porta 443** e comunicação interna por uma rede Docker.

| Item | O que conferir |
| - | - |
| Domínio | Endereço institucional e encaminhamento para o ambiente. |
| HTTPS | Certificado, renovação e configuração do proxy ou NGINX. |
| Rede interna | Conectividade entre os contêineres e isolamento dos serviços internos. |
| Etherpad | Endereço, integração e acesso ao editor colaborativo. |
| Jitsi Meet | Domínios, proxy e requisitos próprios da implantação de videoconferência. |

A porta 443 é a referência de acesso web do documento. Ela não constitui uma lista completa das portas necessárias para Jitsi Meet ou de regras de firewall; essas exigências precisam ser verificadas no ambiente adotado.

## Armazenamento e processamento de vídeo

O principal fator de crescimento da infraestrutura é o acervo multimídia. Os arquivos enviados e os resultados do processamento podem ampliar significativamente o uso de disco.

* Monitore espaço disponível e crescimento dos volumes.
* Defina alertas antes de atingir a capacidade máxima.
* Planeje expansão do armazenamento.
* Acompanhe os jobs de mídia e falhas de processamento.
* Inclua o banco e os arquivos necessários à recuperação na estratégia de backup.

**Redis/Horizon** sustenta o processamento assíncrono e **FFmpeg** realiza o processamento de mídia. Ambos devem ser validados com um envio de vídeo de teste.

## Segurança e continuidade

O resumo técnico descreve os seguintes controles. A equipe responsável deve confirmar como cada um está implementado na instalação:

| Controle descrito | Validação institucional |
| - | - |
| TLS 1.3 | Conferir os protocolos habilitados no ponto de terminação HTTPS. |
| Criptografia de armazenamento AES-256 | Identificar quais volumes, serviços de armazenamento e backups estão protegidos, além da gestão das chaves. |
| Permissões por perfil | Testar o acesso de usuários, participantes, supervisores e administradores. |
| SSH por chaves e autenticação multifator | Definir os acessos administrativos e o mecanismo de MFA aplicável. |
| Auditoria e monitoramento | Conferir registros, alertas, responsáveis e acesso aos logs. |
| Atualizações e verificações de segurança | Definir rotina de manutenção para aplicação, imagens e servidor. |
| Backups regulares e criptografados | Confirmar periodicidade, localização separada e recuperação dos dados. |

Esses controles não devem ser considerados automaticamente ativos apenas por instalar a aplicação.

### Backups

O documento prevê backups criptografados em centros de dados separados. Antes da entrada em operação, defina a frequência, o período de retenção, os responsáveis e o procedimento de restauração.

Como validação operacional, realize uma restauração de teste e confira a recuperação conjunta do banco e dos arquivos de mídia.

## Dados, retenção e responsabilidades

O VisuoLab pode processar dados de conta, vídeos, áudios, anotações, comentários, conteúdo colaborativo, endereços IP, informações de navegador e registros de uso.

O resumo técnico apresenta estas referências de retenção:

| Categoria | Referência do documento |
| - | - |
| Dados de usuários | Podem ser excluídos ou anonimizados 12 meses após a última atividade. |
| Backups | Sobrescritos após 90 dias. |
| Conjuntos científicos | Podem ser arquivados de forma anonimizada para pesquisa. |

A instituição deve confirmar os prazos e os mecanismos de execução aplicáveis. O documento não demonstra que a exclusão ou anonimização seja automatizada pela aplicação.

Também descreve governança entre parceiros e práticas voltadas à proteção de dados. Os acordos, responsabilidades e requisitos aplicáveis devem ser definidos para a implantação institucional.

## Configure os idiomas

O idioma da interface é configurado em conjunto no painel administrativo e no frontend. A definição do idioma padrão também exige intervenção técnica no banco.

### Adicione um idioma

<Steps>
  <Step title="Prepare o arquivo de tradução">
    Na pasta **lang**, crie o arquivo JSON correspondente ao código do idioma, como **en.json**, **pt.json** ou **de.json**. Preencha os pares de chave e tradução usados pela interface.
  </Step>

  <Step title="Registre no frontend">
    No arquivo **nuxt.config.js**, localize a configuração de **i18n** e registre o idioma no array **locales**, incluindo código, nome e referência ao arquivo.
  </Step>

  <Step title="Cadastre no painel">
    Com um perfil de nível **master**, acesse **Platform → Platform Form → Languages** e registre o novo idioma. O documento informa que esse cadastro não exige inserção direta no banco.
  </Step>

  <Step title="Defina o padrão, quando necessário">
    Após preparar as traduções e o frontend, a equipe de desenvolvimento deve ajustar **is\_default** para **true** no registro do idioma escolhido na tabela de idiomas. Confira a consistência do idioma padrão antes de concluir.
  </Step>

  <Step title="Valide a interface e os conteúdos">
    Confira menus, mensagens, notificações e formulários multilíngues. Aplique o procedimento de build e publicação previsto no repositório para disponibilizar as alterações do frontend.
  </Step>
</Steps>

### O que é traduzido

A internacionalização contempla rótulos, mensagens, navegação, notificações e feedback do sistema. Formulários compatíveis com conteúdo multilíngue passam a oferecer campos para o novo idioma.

Vídeos, anotações e outros registros **não são traduzidos automaticamente**. As traduções desses conteúdos são responsabilidade dos pesquisadores, educadores e administradores.

<Note>
  O campo indicado para definir o idioma padrão do VisuoLab é **is\_default**. Confirme o nome da tabela e o procedimento de alteração no repositório da versão instalada.
</Note>

## Checklist de validação

Antes de liberar o acesso:

* Abra a interface pelo domínio institucional com HTTPS.
* Teste login e permissões com os perfis previstos.
* Consulte e publique um recurso de teste.
* Envie um vídeo e confira o processamento e a reprodução.
* Confira os jobs e workers de processamento assíncrono.
* Teste criação e acesso a espaços e atividades.
* Teste Etherpad e Jitsi Meet conforme os módulos habilitados.
* Confira os idiomas e o idioma padrão.
* Verifique persistência dos dados e espaço disponível.
* Valide backup e restauração.
* Registre versão implantada, responsáveis e procedimentos de manutenção.

## Informações necessárias para um guia executável

Para complementar esta documentação com comandos reproduzíveis, ainda precisamos dos arquivos Compose, versões das dependências, modelo de configuração de ambiente, procedimentos de banco, build, workers, tarefas agendadas, integrações e atualização da versão usada pela instituição.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.