# Segurança do servidor ## Token de controle Com um token configurado, o servidor (porta 8100) exige `Authorization: Bearer ` em todo POST e nas leituras de dados (`/eventos`, `/estado`, `/fila`, `/app/*`, `/rtc/*`, `/camera/*`, `/conversa/*`, `/treinamento/*`, `/braco/*`, `/servos/*`, `/ia/status`, `/api/*`). EventSource e o app Android podem mandar `?t=` na URL. Continuam públicos apenas: páginas estáticas, `/app/health`, `/faces`, `/gestos`, `GET /config` (aparência), `/ia/modelo` e `/app.apk`. Configure **um** dos dois (mínimo 8 caracteres): ``` # /etc/carinha.env, carregado pelo carinha-pc.service (EnvironmentFile=) CARINHA_TOKEN=troque-por-um-segredo-longo ``` ou `seguranca.json` na pasta do servidor (fora do git): ```json {"token": "troque-por-um-segredo-longo"} ``` Sem token configurado o servidor fica aberto na rede local, como antes. ## Como ativar (ordem importa) 1. Publique servidor e painel 0.8 (`deploy.ps1`) e instale o APK `0.8-token` no S10. 2. No S10: toque longo › **Token do servidor** › digite o token. O app passa a mandar o token na página do rosto (`?t=`), nos pedidos Java e no llama-server local (`--api-key`). 3. Na placa: `echo 'CARINHA_TOKEN=...' | sudo tee /etc/carinha.env && sudo chmod 600 /etc/carinha.env` e `sudo systemctl restart carinha-pc`. O serviço lê o arquivo (`EnvironmentFile=`). 4. Abra o painel: ele pede o token uma vez e guarda só naquele navegador. O cérebro da placa usa o mesmo token para falar com o llama-server do S10 (ou `CARINHA_IA_CHAVE`, se forem diferentes). ## App Android - Com token salvo, trocar o servidor por Intent (`adb shell am start ... -e servidor URL`) exige `-e token `; outro app não consegue redirecionar o rosto. - Câmera e microfone só são liberados para a página do servidor configurado ou para a cópia local. ## E-Stop `POST /parar-tudo` desliga as 16 saídas do PCA9685, cancela a interpolação do braço, para reações e manda `calma` ao rosto. Braço e servos ficam **travados** (HTTP 409) até `POST /rearmar`. ## Trava de hardware Braço (`/braco/*`) e diagnóstico (`/servos/*`) usam o mesmo PCA9685 com limites diferentes. Quem estiver com motores ativos é o dono; o outro recebe 409 até os motores desligarem (parar, ou ~2 s sem comando).