Instale um OoklaServer no Debian 12 e Debian 13
Este guia instala o servidor público Speedtest da Ookla em um host Debian. DNS, firewall e registro junto à Ookla continuam sob controle do administrador.
Antes de começar
Use um host Debian 12/13 novo ou revisado, com IPv4 ou IPv6 público. Escolha um hostname como speedtest.exemplo.com e crie os registros DNS antes de solicitar o certificado.
- Execute como root ou usando sudo.
- Libere as portas exigidas pela documentação atual da Ookla e TCP/80 para o desafio do certificado.
- Leia os requisitos e o fluxo de registro da Ookla antes de publicar o servidor.
Use o instalador versionado
O instalador detecta Debian 12/13, pede hostname e e-mail de contato, instala o servidor oficial, cria a unidade systemd e pode aplicar um perfil balanceado opcional. Ele não cria registros DNS.
curl -fsSL https://scripts.lrq.lat/speedtest/v1.1.7/install.sh | sudo bashBaixa o instalador imutável v1 e inicia o fluxo interativo com privilégios administrativos.
curl -fsSL https://scripts.lrq.lat/speedtest/v1.1.7/install.sh | sudo bash -s -- statusMostra o estado do serviço e a configuração local salva sem alterar o host.
curl -fsSL https://scripts.lrq.lat/speedtest/v1.1.7/install.sh | sudo bash -s -- tlsRepete somente a etapa do Certbot e associação do certificado após DNS ou porta 80 estarem prontos.
Instalação manual e segura
Este caminho deixa cada alteração explícita. Use-o em ambientes com revisão de mudanças ou quando não quiser usar o instalador rápido.
sudo apt update
sudo apt install -y ca-certificates curl tarAtualiza o índice APT e instala as ferramentas usadas para baixar e descompactar a distribuição oficial.
sudo install -d -m 0755 /opt/ooklaserver
curl -fsSLo /tmp/ooklaserver.sh https://install.speedtest.net/ooklaserver/ooklaserver.sh
sudo sh /tmp/ooklaserver.sh --force --installdir /opt/ooklaserver installBaixa o assistente oficial da Ookla e instala os arquivos em /opt/ooklaserver sem responder ao prompt do fornecedor manualmente.
[Unit]
Description=OoklaServer
After=network-online.target
Wants=network-online.target
[Service]
Type=forking
WorkingDirectory=/opt/ooklaserver
RuntimeDirectory=ooklaserver
PIDFile=/run/ooklaserver/ooklaserver.pid
ExecStart=/opt/ooklaserver/OoklaServer --daemon --pidfile=/run/ooklaserver/ooklaserver.pid
Restart=on-failure
[Install]
WantedBy=multi-user.targetEsta unidade systemd supervisiona o binário do fornecedor sem depender de comandos amplos para matar processos.
sudo install -m 0644 /dev/stdin /etc/systemd/system/ooklaserver.service <<'EOF'
[Unit]
Description=OoklaServer
After=network-online.target
Wants=network-online.target
[Service]
Type=forking
WorkingDirectory=/opt/ooklaserver
RuntimeDirectory=ooklaserver
PIDFile=/run/ooklaserver/ooklaserver.pid
ExecStart=/opt/ooklaserver/OoklaServer --daemon --pidfile=/run/ooklaserver/ooklaserver.pid
Restart=on-failure
[Install]
WantedBy=multi-user.target
EOF
sudo systemctl daemon-reload
sudo systemctl enable --now ooklaserverGrava a unidade, recarrega o systemd e inicia o serviço agora e nos próximos boots.
Tuning balanceado opcional
Aplique apenas após entender o impacto no host. O perfil usa um drop-in próprio, portanto pode ser removido sem editar /etc/sysctl.conf.
sysctl net.ipv4.tcp_available_congestion_control
sudo tee /etc/sysctl.d/90-lrqnet-ooklaserver.conf >/dev/null <<'EOF'
net.core.default_qdisc=fq
net.ipv4.tcp_congestion_control=bbr
net.core.somaxconn=65535
net.core.rmem_max=16777216
net.core.wmem_max=16777216
EOF
sudo sysctl --systemConfirma BBR, cria o perfil opcional e carrega os drop-ins. Não aplique se outra equipe gerencia a política de rede do host.
TLS com Certbot
O comando TLS usa HTTP-01 standalone. O domínio precisa apontar para este host e a porta 80 deve estar acessível. Após a emissão, o timer systemd do Certbot renova o certificado automaticamente e um hook de deploy reinicia o OoklaServer. Se falhar, o servidor instalado continua funcionando.
sudo apt install -y certbot
sudo systemctl enable --now certbot.timer
sudo certbot certonly --standalone -d speedtest.exemplo.com -m admin@exemplo.com --agree-tos --no-eff-emailInstala o Certbot, habilita explicitamente seu timer de renovação automática e obtém um certificado Let’s Encrypt. Substitua hostname e e-mail pelos valores reais.
sudo tee -a /opt/ooklaserver/OoklaServer.properties >/dev/null <<'EOF'
openSSL.server.certificateFile = /etc/letsencrypt/live/speedtest.exemplo.com/fullchain.pem
openSSL.server.privateKeyFile = /etc/letsencrypt/live/speedtest.exemplo.com/privkey.pem
EOF
sudo systemctl restart ooklaserverAssocia certificado e chave privada ao OoklaServer e reinicia o serviço. Use o hostname real nos dois caminhos.
sudo install -d -m 0755 /etc/letsencrypt/renewal-hooks/deploy
sudo tee /etc/letsencrypt/renewal-hooks/deploy/ooklaserver-restart >/dev/null <<'EOF'
#!/bin/sh
systemctl restart ooklaserver
EOF
sudo chmod 750 /etc/letsencrypt/renewal-hooks/deploy/ooklaserver-restart
sudo systemctl status certbot.timer --no-pagerCria o hook de deploy que reinicia o OoklaServer após cada renovação bem-sucedida e confirma que o timer de renovação automática do Certbot está ativo.
Validação e manutenção
Verifique o serviço antes de terminar o processo de registro público. Mantenha configurações críticas sob controle de mudanças.
sudo systemctl status ooklaserver --no-pager
sudo journalctl -u ooklaserver -n 100 --no-pager
sudo /opt/ooklaserver/OoklaServer -vMostra saúde do serviço, logs recentes e versão instalada.
sudo certbot renew --dry-runTesta a renovação sem alterar o certificado ativo.