Pular para o conteúdo

Acesso remoto a partir de um servidor

contextcode serve sobe o mesmo acesso remoto de Canais → Acesso web do aplicativo, mas sem abrir janela. É o que você usa em um servidor, um VPS ou uma máquina que fica ligada em casa.

Há três formas de publicar o servidor, da mais fechada à mais aberta:

Como você iniciaURL do QRQuando usar
contextcode serve --print-qrhttp://<IP da rede local>:8787O celular está na mesma Wi-Fi que a máquina.
contextcode serve --public --print-qrA URL fixa da máquina, se já tiver; se não, uma URL temporária do CloudflareServidor em outra rede ou VPS.
contextcode serve --stable --print-qrURL fixa da máquina no domínio do Context CodeServidor ao qual você se conecta todo dia. Exige o plano com servidores remotos.

Com --public, o serve procura nesta ordem:

  1. A URL fixa que a máquina já tenha guardada (a mesma do botão «URL estável» do aplicativo).
  2. Se não houver e você tiver sessão iniciada com contextcode login, ele a pede ao serviço de túneis e a guarda.
  3. Se não for possível, cai para um túnel temporário do trycloudflare.com e avisa que essa URL muda a cada início: o QR que você escanear deixará de valer quando o servidor reiniciar.

--stable pede a URL fixa a cada início, então se corrige sozinho se você mudou de porta.

Com --print-qr e URL pública, o QR principal é o da URL pública e a URL da rede local aparece embaixo.

Ventana de terminal
contextcode serve --install --public

Instala o serve como serviço do seu usuário com as mesmas opções que você passar e o inicia:

  • Linux: unidade systemd de usuário (contextcode-serve); inicia no boot, reinicia se cair e deixa os logs no journal. Não precisa de sudo.
  • macOS: um LaunchAgent.
  • Windows: uma tarefa agendada «ao fazer logon», sem UAC.

O serviço guarda o token em um arquivo (--token-file, por padrão ~/.context/serve-token, com permissões 0600), então não depende do chaveiro do sistema. Ao terminar a instalação, imprime a URL e o QR com esse mesmo token: é esse que você deve escanear.

Para removê-lo: contextcode serve --uninstall.

Com o serviço já rodando, não inicie outro serve; use

Ventana de terminal
contextcode conexion --qr

Ele pega o token do serviço instalado (ou do arquivo indicado com --token-file) e mostra a URL pública, se houver. Se você tentar iniciar um segundo serve na mesma porta, ele para com uma mensagem que explica o motivo em vez de um erro genérico.

Ao escanear o QR, cada celular recebe sua própria credencial. Você pode listá-los e retirar o acesso sem mexer no token do link:

Ventana de terminal
contextcode dispositivos # nome, id, pareado, último uso, IP
contextcode dispositivos --json
contextcode dispositivos revocar "Vivo do Daniel" # por nome, id ou prefixo do id
contextcode dispositivos revocar --todos --si # sem pedir confirmação

A revogação vale na hora, mesmo com o servidor rodando: a próxima requisição desse celular é recusada. Tokens e hashes nunca são exibidos.

Verifique nesta ordem:

  1. Que o QR seja do servidor que está rodando. Se você rodou serve --print-qr e depois instalou o serviço com --install, o serviço usa outro token e esse QR não vale mais. Pegue o certo com contextcode conexion --qr.
  2. Que o celular alcance essa URL. Abra-a no navegador do celular: se a web carregar, a rede está bem. Se ficar carregando, o celular não está na mesma rede ou há um firewall (sudo ufw allow 8787/tcp). Fora da rede local, use --public.
  3. Que o serviço esteja vivo: systemctl --user status contextcode-serve e journalctl --user -u contextcode-serve -n 50.