# 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. > **Ordem de ativação.** O painel antigo e o `carinha.html`/APK atuais ainda não enviam token. > Ative o token na placa só depois de publicar o painel novo e o rosto/APK com suporte a token > (fases 2–5 do plano de modernização). Até lá o servidor já aplica as demais proteções: > checagem de Origin em todos os POST, comandos validados e E-Stop. ## 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).