Use seu próprio nó: aproveite o retransmissor e o armazenamento do Relayium de graça
Última atualização: 2026-08-06
Transferências entre redes e links armazenados usam largura de banda de retransmissão e disco que nos custam dinheiro, então funcionam dentro de uma cota gratuita e são pagas além dela. Há um jeito de contornar isso: rode seu próprio nó de retransmissão/armazenamento, vincule-o à sua conta, e suas transferências fluem pelo seu nó em vez do nosso — nada medido, nada faturado.
Isso é diferente de auto-hospedar o servidor Relayium inteiro. Você continua usando sua conta habitual do relayium.com e os mesmos aplicativos; só está adicionando um nó que é seu para carregar seu tráfego. Este guia leva você de uma máquina Linux recém-instalada a um nó online em cerca de cinco minutos.
Por que rodar seu próprio nó
Dois motivos. Primeiro, o custo: um nó que é seu carrega seu tráfego de retransmissão e armazenamento diretamente, então nunca toca nossa infraestrutura medida e não há nada a faturar — seu uso é gratuito por maior que seja.
Segundo, o controle: os bytes retransmitidos e os blobs armazenados residem em hardware que você opera, sob seu próprio controle operacional. As transferências em tempo real permanecem com criptografia de ponta a ponta durante todo o trajeto, então até seu próprio nó só vê texto cifrado.
Instale o nó e coloque-o online
O que você precisa antes do passo 1
- Um servidor Linux acessível pela internet — tanto um VPS barato quanto uma máquina sempre ligada em casa servem. amd64 e arm64 são suportados.
- root nesse servidor, ou sudo. A instalação precisa disso uma vez; o nó em si nunca roda como root.
- Poder abrir portas de entrada — no firewall do host e, num VPS na nuvem, também no grupo de segurança do provedor.
- Uma conta relayium.com com sessão iniciada. O comando de instalação é gerado na página da conta e carrega um token de uso único.
- Espaço em disco, apenas se você quiser que o nó também armazene além de retransmitir. Um nó só de retransmissão não precisa — nesse caso omita RELAYIUM_NODE_STORAGE_DIR.
Quatro coisas em ordem: gerar o comando, executá-lo, abrir as portas e confirmar que o nó ficou online. Cerca de cinco minutos numa máquina nova.
Entre no relayium.com e abra a página da sua conta em /me.
Desça até Meus nós e clique em Adicionar nó. Copie o comando de instalação na hora — o token que ele contém aparece uma única vez e não pode ser exibido de novo.
Cole no seu servidor. Ele baixa o binário relayium-node, verifica a soma de verificação, instala em /usr/local/bin, escreve um serviço systemd e o inicia.
curl -fsSL https://relayium.com/install-node.sh | sudo RELAYIUM_CENTRAL_URL=https://relayium.com RELAYIUM_NODE_TOKEN=<your-token> RELAYIUM_NODE_STORAGE_DIR=/var/lib/relayium-node/blobs shConfirme que o serviço subiu e que voltará depois de um reboot. As duas respostas importam: active diz que está rodando agora, e enabled é o que sobrevive a um reinício.
systemctl is-active relayium-nodesystemctl is-enabled relayium-nodeAbra as portas de entrada no firewall do host. O estado Online só precisa de acesso de saída, mas é por essas portas que os pares retransmitem e armazenam.
sudo ufw allow 3478/udp # TURN sudo ufw allow 8081/tcp # storage sudo ufw allow 49152:65535/udp # relayNum VPS na nuvem, libere as mesmas portas também no grupo de segurança do provedor. Só com o ufw elas continuam bloqueadas mais acima, e o nó parece saudável esse tempo todo.
De volta ao /me, veja o nó virar Online — normalmente em uns 30 segundos. Daí em diante as transferências da sua conta passam a preferi-lo automaticamente.
Opcional: ligue "Usar somente meus próprios nós para retransmissão/armazenamento" para que uma transferência falhe em vez de voltar silenciosamente à nossa infraestrutura compartilhada.
Como é um nó que funciona
O systemd informa o serviço como active e enabled ao mesmo tempo, e o nó aparece Online em Meus nós. Só active não basta — um nó que não está enabled some no próximo reboot.
$ systemctl is-active relayium-node
active
$ systemctl is-enabled relayium-node
enabled- A parte <your-token> é preenchida para você na página da conta — não cole literalmente o espaço reservado acima.
- RELAYIUM_NODE_STORAGE_DIR ativa o armazenamento de blobs além da retransmissão. Deixe-o desativado (omita a variável) se quiser que o nó apenas retransmita, sem armazenar.
- Verifique que iniciou: systemctl status relayium-node (deve indicar active/running).
- Confirme a persistência na inicialização: systemctl is-enabled relayium-node (deve indicar enabled).
- Acompanhe os logs ao vivo: journalctl -u relayium-node -f.
- 3478/udp é a porta TURN que os pares usam para retransmitir; 8081/tcp é a porta HTTP do armazenamento de blobs; 49152–65535/udp é a faixa de mídia da retransmissão.
- Em um VPS na nuvem, permita-os também no grupo de segurança / firewall de rede do provedor, não só no ufw.
É seguro executar este instalador como root?
Antes de tudo: os nós que você traz rodam o mesmo código e o mesmo endurecimento dos nós da nossa própria frota — o mesmo binário da mesma versão assinada, instalado pelo mesmo script, sob a mesma unidade do systemd. A única diferença é de quem é a máquina. Tudo o que vem a seguir descreve os dois.
É uma pergunta justa diante de um comando que canaliza um script da internet para um shell root, e ela merece uma resposta específica em vez de um “pode confiar”. O root é usado para a instalação e para nada do que o nó faz depois. O instalador cria uma conta de sistema chamada relayium-node, sem shell de login e sem diretório pessoal, escreve as unidades do systemd, inicia o serviço e termina. O nó em si nunca roda como root: sua unidade define User=relayium-node, então, desde o segundo em que fica online, ele é uma conta sem privilégios que não possui mais nada na sua máquina. (A atualização automática, ligada por padrão, de fato acrescenta uma segunda unidade que roda como root — a próxima seção trata inteiramente do que essa unidade pode e não pode fazer.)
Em volta dessa conta, a unidade monta um sandbox do systemd. Cada linha mira algo que um atacante tentaria alcançar se um dia tomasse o processo do nó. Nada disso é escondido de você: depois de instalar, leia a unidade inteira com cat /etc/systemd/system/relayium-node.service.
| Na unidade | O que isso bloqueia se o nó algum dia for comprometido |
|---|---|
User=relayium-node | O atacante é um usuário que não possui nada, não o root. |
ProtectHome=yes | /home e /root ficam invisíveis — nada de chaves SSH privadas nem de dados de outros projetos. |
ProtectSystem=strict | Todo o sistema de arquivos fica somente leitura; nenhum arquivo de sistema pode ser alterado. |
ReadWritePaths= | Os únicos lugares graváveis são o diretório de estado do próprio nó e, se você configurou um, o diretório de armazenamento. Gravar em qualquer outro lugar falha. |
NoExecPaths= | Nada no diretório de armazenamento pode ser executado — um arquivo enviado não consegue rodar. |
NoNewPrivileges=yes | Não há caminho de volta ao root; os truques usuais de escalada ficam fechados. |
CapabilityBoundingSet= | Vazio — nenhuma capability do Linux, nenhuma mesmo. |
ProtectKernelTunables=yes, ProtectKernelModules=yes | O kernel fica fora de alcance: sem mudar sysctl, sem carregar módulos, sem rootkit. |
- ReadWritePaths e NoExecPaths só apontam para o diretório de armazenamento em um nó que de fato armazena. Um nó só de retransmissão não recebe nenhuma das duas linhas e não consegue gravar em lugar algum além do seu próprio diretório de estado.
- No caso normal, o conjunto de capabilities é vazio. A única exceção é um processo à escuta de download direto em uma porta abaixo de 1024, que precisa de CAP_NET_BIND_SERVICE para se associar; a porta de download padrão é 2053, acima de 1024, então nada é concedido.
- O nó não guarda chave nenhuma. Os arquivos são cifrados pelo remetente antes do envio, então o que chega a um nó de armazenamento é texto cifrado que ele não consegue ler — isso inclui o seu próprio nó, e inclui você.
O que a atualização automática pode e não pode fazer
O instalador também configura um temporizador de autoatualização, ligado por padrão: o relayium-node-update.timer pergunta ao relayium.com, mais ou menos a cada dez minutos, qual versão este nó deveria estar executando. É uma segunda unidade, e ela roda como root, então deve a você uma explicação própria.
O servidor central nunca envia um binário. Toda a resposta dele é um número de versão, dois sinalizadores (se é a vez deste nó de se mover agora e se isso é um retrocesso deliberado) e um breve motivo — sem bytes, sem URL, sem comando. Em seguida é o próprio nó que busca aquela versão, confere o SHA-256 do arquivo contra o checksums.txt da versão e verifica uma assinatura ECDSA P-256 sobre esse checksums.txt usando uma chave pública compilada dentro do próprio binário que está fazendo a verificação. A metade privada dessa chave não fica no servidor que responde a essas consultas. Um central comprometido poderia, portanto, apontar uma versão; o que ele não poderia é forjar um binário que passe na verificação.
O atualizador e o nó são dois processos separados com poderes opostos. O relayium-node.service é o sandbox descrito acima — sob ProtectSystem=strict ele não consegue nem gravar em /usr/local/bin, ou seja, o nó jamais pode modificar um binário, inclusive o dele mesmo. O relayium-node-update.service é uma pequena unidade oneshot que roda como root e que deliberadamente não leva sandbox algum, porque substituir um arquivo em /usr/local/bin exige exatamente o privilégio que o sandbox do nó existe para lhe negar. Trancar esse poder em uma única unidade de propósito único, em vez de afrouxar o endurecimento do próprio nó, é todo o sentido dessa separação: o processo que tem root só troca binários, e o processo enjaulado nunca consegue tocar em um.
Uma atualização que dá errado se desfaz sozinha. O atualizador mantém o binário antigo ao lado do novo, reinicia o serviço e então fica de olho no heartbeat por até dez minutos; se a nova versão não se declarar saudável nessa janela, ele repõe o binário antigo, reinicia de novo e registra a versão ruim para não tentá-la outra vez. Nada disso lê, move ou apaga os arquivos armazenados.
- Se você não quiser: execute o instalador de novo com RELAYIUM_NODE_AUTO_UPDATE=off. O temporizador e o serviço dele são desativados e removidos; o nó continua rodando e você o atualiza quando decidir.
- Terminou de vez com o nó: veja “Remover o seu nó” mais abaixo.
Remover o seu nó
Desinstalar é um único script, o mesmo quer o seu nó armazene arquivos quer apenas retransmita. Ele remove as unidades, o binário, a configuração e a conta de serviço, e tenta, em regime de melhor esforço, avisar o relayium.com de que o nó se foi. Se essa chamada falhar, é uma linha no seu terminal e não uma desinstalação quebrada — ela imprime o ID do nó para que seja marcado como removido à mão.
Baixe, verifique e só então execute. Canalizar direto para o sh significa que um 404 ou uma falha passageira de rede faz o comando inteiro não exibir nada e sair com código 0, o que parece uma desinstalação bem-sucedida.
Só remove o que reconhece: qualquer coisa inesperada no diretório de estado ou de armazenamento é mantida e reportada em vez de ser varrida.
curl -fsSL https://relayium.com/uninstall-node.sh -o uninstall-node.sh && \
[ -s uninstall-node.sh ] && sudo sh uninstall-node.sh
- Ele recusa enquanto o diretório de armazenamento tiver algum arquivo que não reconheça — incluindo um blob expirado que a limpeza ainda não alcançou — porque cada arquivo armazenado vive em exatamente um nó e não há réplicas. Espere esse número chegar a zero, ou passe RELAYIUM_NODE_FORCE=1 aceitando que esses arquivos fiquem inacessíveis.
- Se não conseguir determinar onde vivem os seus blobs, ele para em vez de adivinhar. RELAYIUM_NODE_ASSUME_NO_STORAGE=1 é a única forma de passar disso, e mesmo assim não apaga nada que não reconheça.
- O diretório de armazenamento em si é mantido a menos que passe também RELAYIUM_NODE_PURGE_STORAGE=1. Variáveis de ambiente não sobrevivem ao | sudo sh — passe-as como sudo env RELAYIUM_NODE_PURGE_STORAGE=1 sh uninstall-node.sh.
- Depois, systemctl status relayium-node deve dizer not-found e nenhum temporizador relayium-node deve aparecer. Se instalar novamente mais tarde, a sua conta recebe um nó totalmente novo: a desinstalação apaga o arquivo de identidade do nó, por isso uma nova instalação registra um nó novo em vez de ressuscitar o antigo.
Quando não funciona
Cinco falhas cobrem quase todo nó que não sobe, e três delas parecem saudáveis do lado do servidor: o serviço está rodando, e só a página da conta ou um socket em escuta dizem o contrário.
Sintoma, checagem, correção
- O shell responde "relayium-node: command not found".
command -v relayium-node # nada é impressoO binário não está instalado. Você nunca instala o relayium-node separadamente — o comando de uma linha da página da conta é justamente o que o baixa, coloca no seu PATH e o inicia como serviço. Rode aquele comando.
- O serviço está active, mas o nó nunca fica Online na página da conta.
journalctl -u relayium-node -n 50 --no-pagerO estado Online é decidido por um heartbeat de saída, então firewall raramente é a causa aqui — o problema é o registro. O token é de uso único, então um comando já executado, ou um antigo de uma tentativa anterior, falha. Clique em Adicionar nó de novo para obter um comando novo e execute-o.
- O nó aparece Online, mas as transferências continuam passando pela nossa infraestrutura compartilhada.
sudo ss -lunp | grep 3478Online só prova o heartbeat de saída. O que os pares precisam são as portas de entrada: confirme que o nó está escutando e então abra 3478/udp, 8081/tcp e 49152-65535/udp no firewall do host E no grupo de segurança da nuvem. Para descartar de vez um retorno silencioso, ligue a opção de usar somente os seus próprios nós.
- A desinstalação não imprimiu nada, saiu com 0, e o serviço continua lá.
systemctl status relayium-node # active (running)É exatamente a cara de canalizar um download que falhou para o sh: um 404 ou uma falha passageira de rede não imprime nada e sai com 0, o que se lê como sucesso. Baixe o script, verifique que ele não está vazio e só então execute — é por isso que o comando neste guia está escrito em três partes e não como um único pipe.
- A desinstalação se recusa enquanto o diretório de armazenamento ainda tem arquivos.
sudo ls /var/lib/relayium-node/blobs | wc -lÉ proposital. Cada arquivo armazenado vive em exatamente um nó e não há réplicas, então remover o nó deixa esses arquivos inalcançáveis. Espere a contagem chegar a zero conforme os blobs expiram, ou aceite a perda com RELAYIUM_NODE_FORCE=1. Variáveis de ambiente não sobrevivem a um pipe para sudo sh, então passe-as como sudo env RELAYIUM_NODE_FORCE=1 sh uninstall-node.sh.
Perguntas frequentes
Recebi “relayium-node: command not found” — o que deu errado?
Você executou o binário relayium-node antes de instalá-lo. Use o comando de instalação de uma linha da página da conta (a forma curl … | sudo … sh): ele baixa o binário, coloca-o no seu PATH e o inicia como serviço. Você nunca instala relayium-node separadamente.
O nó continua online depois de um reinício?
Sim. O instalador registra um serviço systemd que é habilitado na inicialização e configurado com Restart=always, então ele volta após um reinício e reinicia-se sozinho se travar. Nada mais a executar.
Em que isso difere de auto-hospedar o Relayium?
Usar seu próprio nó mantém sua conta e aplicativos habituais do relayium.com e apenas adiciona um nó que é seu para carregar seu tráfego. A auto-hospedagem executa toda a pilha do servidor (contas, aplicativo web, sinalização) no seu próprio domínio — veja o guia “Hospede o Relayium por conta própria” para isso.
Alguém mais pode usar meu nó ou ver meus dados?
Não. Um nó é vinculado à sua conta pelo seu token e só carrega o tráfego da sua conta. As transferências em tempo real têm criptografia de ponta a ponta e os blobs armazenados são texto cifrado que seu nó não consegue ler. Seus dados e a configuração do seu nó só podem ser usados por você.
Faça login, abra sua página da conta e adicione seu primeiro nó em menos de um minuto.
Abrir a página da conta