# Configuração HPB e TURN/STUN para Nextcloud Talk

# Configuração HPB e TURN/STUN para Nextcloud Talk

Este guia orienta a adição do backend de alto desempenho (HPB) do Nextcloud Talk e do servidor TURN/STUN utilizando a imagem oficial do Nextcloud AIO Talk na infraestrutura da K9 Networks.

---

## 1. Configuração de DNS (Hostgator)
Acesse o painel da Hostgator e crie uma nova zona DNS para o subdomínio do cliente seguindo o padrão:
* **Formato:** `<cliente>.talk.k9n.com.br` (ex: `inova.talk.k9n.com.br`)
* **Apontamento:** Configure o registro apontando para o IP público da rede interna/under da infraestrutura.

<DESCREVER QUAL IMAGEM VAI AQUI: Painel da Hostgator mostrando a criação da zona DNS com o subdomínio e IP público>.png

---

## 2. Geração de Segredos
No servidor do Nextcloud, navegue até o diretório do projeto e gere os segredos de autenticação necessários para o container de talk:

```bash
cd /root/nextcloud
openssl rand -hex 32 > ./secrets/talk_turn_secret
openssl rand -hex 32 > ./secrets/talk_signaling_secret
openssl rand -hex 32 > ./secrets/talk_internal_secret
chmod 600 ./secrets/talk_*
```

<DESCREVER QUAL IMAGEM VAI AQUI: Terminal Linux executando os comandos openssl e listando a pasta secrets com as permissões restritas>.png

---

## 3. Atualização do Docker Compose

Adicione o serviço `talk` e declare os novos volumes de segredos no arquivo `docker-compose.yml`:

** adiciona TALK_DOMAIN= ao .env**

```yaml
services:
  app:
  ...
  extra_hosts:
    ...
    - "$TALK_DOMAIN:$PROXY_IP"
  cron:
  ...
  extra_hosts:
    ...
    - "$TALK_DOMAIN:$PROXY_IP"
# ... (serviços anteriores) ...
  talk:
    image: ghcr.io/nextcloud-releases/aio-talk:latest
    container_name: $COMPOSE_PROJECT_NAME-talk
    restart: unless-stopped
    environment:
      - NC_DOMAIN=$NEXTCLOUD_DOMAIN
      - TALK_HOST=$TALK_DOMAIN
      - TALK_PORT=3478
      - TURN_SECRET_FILE=/run/secrets/talk_turn_secret
      - SIGNALING_SECRET_FILE=/run/secrets/talk_signaling_secret
      - INTERNAL_SECRET_FILE=/run/secrets/talk_internal_secret
    secrets:
      - talk_turn_secret
      - talk_signaling_secret
      - talk_internal_secret
    ports:
      - "3478:3478/tcp"
      - "3478:3478/udp"
    expose:
      - "8081"
    extra_hosts:
      - "$OOU_DOMAIN:$PROXY_IP"
      - "$NEXTCLOUD_DOMAIN:$PROXY_IP"
      - "$TALK_DOMAIN:$PROXY_IP"
    networks:
      - proxy-nw
      - internal-nw

secrets:
  # ... (segredos anteriores) ...
  talk_turn_secret:
    file: ./secrets/talk_turn_secret
  talk_signaling_secret:
    file: ./secrets/talk_signaling_secret
  talk_internal_secret:
    file: ./secrets/talk_internal_secret
```

---

## 4. Configuração do Reverse Proxy (Nginx)

Crie uma nova entrada no Nginx Proxy Manager (ou proxy reverso padrão da K9) apontando o domínio `<cliente>.talk.k9n.com.br` para o IP interno do container na porta `8081`, ativando o certificado SSL.

<DESCREVER QUAL IMAGEM VAI AQUI: Tela de configuração do proxy reverso no Nginx mostrando o apontamento de domínio, IP e porta 8081>.png

---

## 5. Inicialização dos Serviços

Reinicie o ambiente Docker para subir o container de Talk:

```bash
docker compose down
docker compose up -d
```

Valide se o serviço de sinalização está respondendo corretamente:

```bash
curl https://<cliente>.talk.k9n.com.br/api/v1/welcome
```

---

## 6. Pós-Instalação (Painel Administrativo)

1. Acesse o Nextcloud como administrador e vá em **Configurações de Administração > Talk**.
2. **High-Performance Backend:**
* **URL:** `https://<cliente>.talk.k9n.com.br`
* **Secret:** Utilize o conteúdo salvo em `./secrets/talk_signaling_secret`.
* Confirme que o status exibe um ícone verde.


3. **Servidor TURN:**
* **Estratégia:** `turn: only`
* **URL:** `<cliente>.talk.k9n.com.br:3478` (sem protocolo)
* **Secret:** Utilize o conteúdo salvo em `./secrets/talk_turn_secret`.
* **Protocolos:** UDP e TCP.



<DESCREVER QUAL IMAGEM VAI AQUI: Tela de administração do Nextcloud Talk com as configurações de HPB e TURN validadas com sucesso>.png