# Como subir um servidor real para testar [#como-subir-um-servidor-real-para-testar] > Pergunta: "como eu subo um servidor real pra testar?" **Pré-requisitos:** Docker instalado, e um checkout de `plat.sofya.event-rooms` como irmão deste repo: ``` qr-code-related/ ├── sofya.sdk/ (este repo) └── plat.sofya.event-rooms/ ``` Se o seu checkout usa outro layout, ajuste `build.context` em `harness/docker-compose.allowed.yml` (e `.blocked.yml`). ## Subir [#subir] ```bash cd harness docker compose -f docker-compose.allowed.yml up --build ``` Isso sobe Redis + duas réplicas do backend (`ws://localhost:8080/ws` e `ws://localhost:8081/ws`), com `ALLOWED_EVENTS=sofya.protocol` — o único nome de evento que este SDK reserva no fio. As duas réplicas compartilham o mesmo Redis: uma sala criada em uma é alcançável pela outra. Derrubar: ```bash docker compose -f docker-compose.allowed.yml down -v ``` ## Verificar que subiu [#verificar-que-subiu] ```bash curl http://localhost:8080/health ``` ## Pré-requisito de deploy: `sofya.protocol` liberado [#pré-requisito-de-deploy-sofyaprotocol-liberado] A lib multiplexa handshake e todos os eventos de app dentro de um único nome de evento no fio, `sofya.protocol` (nunca o nome do seu evento de contrato diretamente) — é assim que a whitelist do deploy (`ALLOWED_EVENTS`) fica de tamanho 1 e constante, independente de quantos eventos o seu contrato declara. **Se o deploy não liberar esse nome, o handshake nunca fecha** — a lib detecta isso (`event_not_allowed` na sonda de conexão, ver [erros.md](/pt/docs/event-room/latest/markdown/erros#event_not_allowed)) em vez de travar em silêncio, mas o requisito de ambiente continua sendo seu: confirme `ALLOWED_EVENTS` no deploy real do mesmo jeito que confirma aqui. Para ver essa detecção acontecer de propósito, contra o servidor real (não é o caminho normal de desenvolvimento — é a prova de que a detecção funciona): ```bash cd harness docker compose -f docker-compose.blocked.yml up --build ``` Essa variante sobe com `ALLOWED_EVENTS=transcription` (sem `sofya.protocol`) — qualquer host/guest que conectar aqui recebe o erro de deploy mal configurado citando `allowed: ["transcription"]`. ## Credencial de transporte local [#credencial-de-transporte-local] O servidor exige `ROOM_AUTH_SECRET` para aceitar a credencial de transporte via HMAC. As duas variantes do harness já sobem com um valor fixo de desenvolvimento (`local-development-secret-change-me`) — nunca um segredo real, nunca usado fora deste harness local. Qualquer string não vazia serve como `credential` de host/guest contra este harness (o servidor ecoa o subprotocolo sem validar o conteúdo — ver [seguranca.md](/pt/docs/event-room/latest/markdown/seguranca) para o que isso significa em produção).