⚡ nzbfast
O baixador rápido da Usenet - manual do usuário
1 · Boas-vindas
O nzbfast baixa da Usenet tão rápido quanto sua linha, seus provedores e sua máquina permitem - e normalmente isso significa tão rápido quanto sua linha. É um único programa autossuficiente: o motor, um painel web, um navegador de mídia em mural de pôsteres, um indexador integrado, pré-visualização em tempo real, reparo PAR2 nativo e a extração de RAR nativa estão todos dentro de um único executável. Não há mais nada para instalar.
O que o torna rápido é a arquitetura, não ajustes finos:
- NNTP com pipeline - muitas solicitações de artigos trafegam por cada conexão uma atrás da outra, mantendo toda conexão em velocidade máxima em vez de esperar as idas e voltas.
- Um pipeline de passagem única - download, verificação e extração se sobrepõem. Os volumes de arquivo são extraídos no fluxo; em uma publicação típica em modo armazenamento, os arquivos RAR nunca tocam seu disco, então o trabalho precisa de 1× o tamanho do lançamento, não 2×, e termina quando o download termina.
- União multiprovedor - cada servidor configurado contribui; um artigo ausente em um backbone é buscado em outro. Servidores lentos ou mortos nunca travam a fila.
- Um orçamento de memória - o motor se adapta a uma cota de RAM limitada e degrada para disco se necessário. Ele nunca faz swap da sua máquina.
Medido contra o mercado em hardware, trabalhos e provedores idênticos, o nzbfast concluiu um download de 190 GB em cerca de 5 minutos em uma linha de 10 GbE - com as principais alternativas 30–220% atrás nos mesmos testes, quando os concluíam. Os números estão na §3.
2 · Início rápido
macOS
- Abra
nzbfast-<version>-macos.dmge arraste o NzbFast para Aplicativos (universal: Apple Silicon + Intel). - Primeira abertura: o macOS avisa que o nzbfast ainda não está autenticado pela Apple. Clique com o botão direito no app → Abrir - ou abra Ajustes do Sistema → Privacidade & Segurança, role para baixo e clique em Abrir Assim Mesmo. Isso é feito uma única vez.
- A janela do app mostra o painel com um cartão de boas-vindas - clique nele e adicione pelo menos um servidor Usenet (host, porta 563, usuário, senha). Você pode adicionar mais depois em Ajustes.
- Solte um arquivo
.nzbem qualquer lugar do painel - ou simplesmente dê duplo clique em arquivos.nzbno Finder. Os downloads chegam em~/Downloads/nzbfast. Saia pelo menu; os downloads retomam de onde pararam.
Prefere não usar o app? O zip simples (binário +
lançador Start nzbfast.command, mesmo motor) continua funcionando como antes -
os passos estão abaixo em "De um terminal".
Windows
- Execute
nzbfast-<version>-windows-x64-setup.exe. Ele instala apenas para o seu usuário (sem senha de administrador). Como esta versão ainda não está assinada, o SmartScreen pode mostrar "O Windows protegeu seu PC" - clique em Mais informações → Executar assim mesmo. - O nzbfast fica na bandeja do sistema: dê duplo clique no ícone da bandeja (ou use Abrir painel no menu do botão direito) para abrir o painel, depois adicione seu servidor Usenet pelo cartão de boas-vindas. O menu da bandeja também tem Pausar/Retomar, sua pasta de downloads e Sair.
- Dar duplo clique em um arquivo
.nzbo coloca na fila. O Windows Defender pode perguntar uma vez para permitir a escuta na rede local - permita.
Prefere uma cópia portátil? O -windows-x64.zip continua funcionando: descompacte
em qualquer lugar e dê duplo clique em nzbfast.exe (ou Start nzbfast.bat)
para o assistente no terminal.
De um terminal (qualquer plataforma)
nzbfast setup # interactive server setup (writes config.local.json)
nzbfast serve --open # start the daemon and open the dashboard
nzbfast import-sab
na linha de comando.Sua chave de API
Numa instalação realmente nova, o nzbfast cria para si mesmo uma chave de API na primeira vez que o daemon inicia, e a exibe uma única vez num aviso logo abaixo do endereço do painel. Daí em diante toda requisição precisa dessa chave, então o painel e a API não ficam abertos a tudo o que alcança a máquina.
O que fazer com ela depende de como você iniciou o nzbfast:
- O app do macOS, a bandeja do Windows ou o
serve --open: nada. Eles passam a chave para a janela do navegador que abrem, o painel a memoriza e você já entra conectado. - Um navegador que você mesmo abriu, ou o painel num celular ou em outro computador: a página pede a chave uma vez e a memoriza dali em diante.
- Sonarr, Radarr, nzb360 e companhia: cole-a como a chave do SABnzbd ou do NZBGet deles (§11, §12).
A chave fica guardada num arquivo chamado apikey ao lado do seu arquivo
de configuração, então continua a mesma entre reinicializações e você pode consultá-la
de volta sempre que precisar. No macOS e no Linux esse arquivo só pode ser lido pela
conta que executa o nzbfast. Ela também sai na própria saída do daemon, então o cartão
Log do painel a tem se o terminal já tiver rolado.
Para usar uma chave própria, digite-a em Ajustes → Segurança; ela vale na hora. Esse
painel troca a chave mas nunca mostra a atual, então leia o arquivo apikey
se precisar do valor gerado de volta. Para rodar sem chave nenhuma, porque algo na
frente do nzbfast já cuida do acesso, inicie-o com NZBFAST_OPEN=1 no
ambiente. O nzbfast então fica aberto e diz isso claramente na inicialização.
Quais máquinas conseguem alcançar o daemon é uma escolha à parte:
serve --bind. O padrão é 0.0.0.0, ou seja, todas as
interfaces de rede, porque um NAS, um celular e um Sonarr em outro computador precisam
poder se conectar. --bind 127.0.0.1 restringe à máquina em que o nzbfast
roda, que é o que você quer num desktop só seu onde nada mais precisa de acesso.
3 · Como o nzbfast funciona
Um vocabulário rápido para que o restante do manual seja de leitura fácil:
| Termo | Significado |
|---|---|
| Provedor / servidor | Um serviço da Usenet no qual você tem uma conta (Newshosting, Eweka, XS News…). Cada um permite algum número de conexões simultâneas. |
| Backbone | A infraestrutura por trás de um provedor. Várias marcas muitas vezes revendem o mesmo backbone - útil saber, porque dois provedores em um mesmo backbone não têm os mesmos artigos. Veja Diversidade de servidores. |
| NZB | Um pequeno arquivo XML que lista os artigos que compõem uma publicação. É isto que você fornece ao nzbfast. |
| PAR2 | Dados de recuperação publicados junto com um lançamento. O nzbfast verifica contra eles durante o download e repara automaticamente quando os artigos estão danificados ou ausentes. |
| RAR em modo armazenamento | A maioria dos lançamentos é empacotada em volumes RAR sem compressão. O nzbfast reconhece isso e escreve o arquivo interno diretamente em seu local final durante o download - sem etapa de extração depois. |
O pipeline executa download → decodificação → verificação → extração de forma concorrente. O cartão Pipeline do painel mostra as três faixas se movendo ao mesmo tempo. Quando chega o último byte, a verificação já está pronta e o arquivo já está extraído; o tempo de "pós-processamento" de um trabalho típico é zero. Se o reparo for necessário, só então os volumes são materializados em disco, reparados no lugar pelo motor GF(2¹⁶) nativo (dados ofuscados renomeados ou deslocados em bytes são encontrados e adotados por uma varredura deslizante de blocos) e reextraídos - tudo automático.
Downloads interrompidos (travamento, queda de energia, kill -9) retomam a partir do diário de artigos: os bytes já em disco nunca são buscados duas vezes. O diário registra onde os bytes de cada artigo pousaram fisicamente - até os bytes que foram extraídos diretamente no arquivo final - de modo que uma retomada reconstrói a partir do disco local e reverifica tudo que restaurou contra o mapa de blocos PAR2 antes de confiar nele.
Como isso se compara
Medido contra o SABnzbd 5.0.4 e o NZBGet 26.2 na mesma máquina, os mesmos provedores e os mesmos NZBs, cronometrado até um arquivo utilizável - download, verificação, reparo e extração todos incluídos, porque é aí que o trabalho realmente termina:
| Tamanho do trabalho | nzbfast | NZBGet 26.2 | SABnzbd 5.0.4 |
|---|---|---|---|
| 7 GB | 13,7 s | +26% | +39% |
| 35 GB | 67 s | +61% | +325% |
| 87 GB | 272 s | +36% | +160% |
| 190 GB | 9 min 00 s | +30% | +111% |
A diferença é o pós-processamento que os outros ainda têm de fazer depois que o último byte chega. Ambos os concorrentes foram ajustados para a comparação, não deixados no padrão - o SABnzbd em particular vem com o pipeline de solicitações desligado, o que lhe custa caro, então ele foi ligado.
Duas diferenças importam tanto quanto os tempos:
- Espaço em disco. Uma passagem única precisa de 1× o tamanho do lançamento; clientes que escrevem os volumes de arquivo e depois os extraem precisam de 2×. Em uma máquina de teste com 97 GB livres, um trabalho de 87 GB terminou aqui em 3 min 08 s e os outros dois não conseguiram rodar de jeito nenhum.
- Memória. No trabalho de 190 GB, o pico de uso foi de 3,9 GB contra os 9,3 GB do SABnzbd - e o nzbfast fará o mesmo trabalho em cerca de 1 GB se for mandado (veja Orçamento de memória).
4 · O painel
Abra http://localhost:6789 (ou o endereço da sua máquina a partir de outro
dispositivo - o layout do celular se adapta automaticamente). Tudo é atualizado ao vivo, uma vez por
segundo. Os cartões, de cima para baixo:
Barra de cabeçalho
- Menu de limite de velocidade - tetos fixos, auto · ceder à LAN (um modo regulado por RTT que recua quando outra pessoa na casa precisa da linha) ou ilimitado.
- Pausar por… - pausa tudo por 15 min/30 min/1 h/3 h com retomada automática, ou use o botão Pausar para uma pausa sem prazo. A pausa é imediata: a transferência ativa para em segundos e retoma depois a partir do diário, sem perder nada. (Trabalhos com prioridade Forçar continuam baixando, ao estilo SABnzbd.)
- Um banner de atualização aparece aqui quando uma nova versão está disponível (veja Atualizações).
Vazão
MB/s ao vivo com um gráfico deslizante; as marcas d'água tracejadas indicam os pontos alto/baixo desta sessão, e a linha tênue é uma média móvel. Abaixo dele, um histograma mostra como as amostras de velocidade da sessão se distribuem - típico vs pico. Alargue a janela e os gráficos mostram mais histórico (até uma hora).
Blocos de estatísticas
Baixado nesta sessão, profundidade da fila, contagens de concluídos/falhados, velocidade de pico da sessão.
Recursos - uma máquina, quatro tetos
CPU, RAM (contra o orçamento de memória do nzbfast), taxa de escrita em disco e rede em um único gráfico normalizado, com valores reais na legenda e um aviso de pouco espaço em disco. Nenhum outro cliente NZB mostra isto; existe para provar um ponto - o nzbfast vai saturar sua linha, não sua máquina.
Pipeline - as etapas se sobrepõem
Três faixas: download, verificação (blocos PAR2 verificados), extração. Em um trabalho saudável, as três se movem juntas.
Provedores
Taxa ao vivo por servidor, utilização das conexões, participação no tráfego, GB da sessão e uma pontuação de compleção de artigos acumulada (colorida quando um servidor cai abaixo de 98%). Um gráfico de área empilhada mostra a contribuição de cada provedor ao longo do tempo. As linhas se reordenam por desempenho ao vivo a cada 10 s (configurável em Ajustes → Interface) para que seu provedor mais rápido esteja sempre no topo.
Fila
- Arraste as linhas para reordenar (dentro de uma faixa de prioridade - Forçar/Alta ainda baixam primeiro); altere a prioridade na própria linha.
- Clique em uma linha para a gaveta de detalhes: barras de progresso por arquivo, contagens de
blocos verificados, quanto cada servidor contribuiu para este trabalho, e uma linha
"adicionado por" dizendo de onde o trabalho veio (pasta monitorada, um app conectado, a API…).
Um botão Transferir o .nzb salva o arquivo
.nzbdo trabalho - o nzbfast mantém sua própria cópia, então isso funciona para todo trabalho, mesmo quando o arquivo original já desapareceu. - Emblemas mostram estados especiais: adiado (lento), pré-carregando, pausado (veja Ferramentas de desempenho).
- Um gráfico de contagem regressiva acompanha o total de GB restantes em toda a fila.
Explorar índice
Pesquise tudo o que o indexador integrado catalogou dos seus grupos monitorados (veja Automação) e baixe com um clique - sem necessidade de indexador externo. A linha de status mostra o progresso da varredura; Varrer agora força uma passagem.
Lista de acompanhamento
Adicione títulos pelo nome - inclusive os ainda não publicados. Quando um lançamento correspondente aparece no índice, ele é capturado automaticamente, com preferências de qualidade e regras de melhoria (uma cópia melhor substitui uma pior).
Histórico
Downloads recentes, uma linha cada. Trabalhos que falharam oferecem Repetir
(retoma a partir do diário). Arquivos criptografados mostram um controle de desbloqueio 🔑 - digite a
senha e o trabalho termina no lugar. A faixa de saúde da verificação plota os blocos PAR2 defeituosos por
download - uma cauda crescente indica que os artigos chegam danificados.
A gaveta de cada linha diz quem adicionou o trabalho e tem o mesmo botão
Transferir o .nzb da fila - útil para baixar um lançamento de novo em outro
lugar, ou para anexar o .nzb a um relato de problema.
O cartão lista dez downloads por padrão e o restante fica a um clique, no botão ▤. Status, local e o motivo de uma falha ficam atrás de um clique na própria linha, de modo que o caso comum - o que terminou, de que tamanho, quando - continua legível sem rolagem. Arraste a borda inferior do cartão para que a lista role numa altura à sua escolha. History rows em Ajustes → Interface muda esse dez; por ser uma propriedade do daemon e não do seu navegador, vale para todos os dispositivos que olham para esta instalação. Colour History names, ao lado, tinge de verde os nomes concluídos e de vermelho os que falharam; desligado, os nomes ficam neutros, e o ponto colorido e os detalhes da linha continuam dizendo qual é qual.
Uso de dados
Barras diárias por provedor e totais de Hoje / 7 dias / 30 dias - essencial para contas medidas e de bloco. Contas de bloco mostram o uso acumulado contra seu tamanho.
Log, Benchmark do sistema, Ajuste de conexões, Diversidade de servidores
Um visualizador de log na página e as três ferramentas de automedição descritas em Ferramentas de desempenho.
5 · Adicionar downloads
| Método | Como |
|---|---|
| Arrastar e soltar | Solte um ou mais arquivos .nzb em qualquer lugar do painel. |
| Pasta monitorada | Defina uma pasta em Ajustes; qualquer .nzb salvo nela é
detectado em até 5 segundos e movido para o Lixo, e um painel aberto anuncia cada
recolha pelo nome ("… recolhido de Downloads"), para que um arquivo sumindo da pasta
nunca seja um mistério. Prefere manter seus arquivos? Ligue Manter os .nzb após a
recolha (veja §9). Aponte a pasta de downloads do seu navegador
para ela para capturas de um clique a partir de sites indexadores. |
| De uma URL | Cole um link NZB (API mode=addurl, ou por qualquer app conectado). |
| Links nzblnk: | Cole um link nzblnk: em qualquer lugar do painel, ou arraste-o para dentro. Se você instalou pelo DMG do macOS ou pelo instalador do Windows, também dá para clicar num direto no board. Veja os links nzblnk mais abaixo. |
| Explorar índice | Clique em qualquer lançamento completo no cartão Explorar. |
| Lista de acompanhamento / RSS | Automático - veja Automação. |
| Sonarr/Radarr etc. | Eles enviam capturas direto para a fila - veja §11. |
| Linha de comando | nzbfast get file.nzb baixa sem o daemon. |
Categorias, prioridades, senhas
- Categorias são rótulos livres; cada uma vira uma subpasta da sua pasta de downloads, e as Pastas inteligentes (veja §10) podem atribuí-las por regra.
- Prioridades: Forçar > Alta > Normal > Baixa. Forçar ignora a pausa e a cota.
- As senhas de arquivos criptografados são captadas automaticamente de
<meta type="password">dentro do NZB, de um nome de arquivoName{{password}}.nzbou do campop=de um link nzblnk, e podem ser informadas por trabalho pela API ou depois, pelo Histórico (🔑).
Os links nzblnk
Alguns boards, sobretudo alemães e holandeses, publicam um link nzblnk:
em vez de um arquivo NZB. A postagem está ofuscada, então não existe nome de arquivo
para o qual apontar. O link carrega em vez disso um cabeçalho, h=, que é
uma chave de busca e não um lugar, mais um título t=, uma senha
p= e um grupo g= opcionais. Alguém precisa ir achar a
postagem primeiro.
O nzbfast procura o cabeçalho primeiro no próprio índice, o que não exige rede nenhuma, e só se isso falhar consulta os indexadores de busca que você configurou (Ajustes → Indexadores de busca, §9), sob os mesmos orçamentos diários e o mesmo recuo de qualquer outra busca. O título vira o nome do trabalho e a senha é aplicada automaticamente.
- Colar ou arrastar funciona em qualquer instalação, Docker e NAS incluídos: copie o link do board e cole em qualquer lugar do painel.
- Clicar num link exige que o esquema esteja registrado no seu desktop. O app do DMG do macOS registra, e o instalador do Windows oferece isso como tarefa: ele pergunta antes e deixa o esquema quieto se o NZB Monkey ou o NZBDonkey já o detém. O tarball simples do macOS, o Homebrew e as instalações Linux não têm manipulador de desktop: ali a porta de entrada é colar.
- A resolução é limitada em frequência de propósito. Registrar um esquema o deixa a um aviso de navegador de qualquer página que você visite, então os links têm teto por minuto e só os primeiros de cada minuto podem chegar aos seus indexadores; passando disso, a resposta vem só do índice local.
6 · O mural de pôsteres
Clique em 🎬 mural no cabeçalho. O mural transforma seu índice em um navegador de mídia: cada filme e lançamento de TV reconhecido como um bloco de pôster com nota, ano, gêneros, elenco e sinopse - seus newsgroups, navegáveis como um catálogo.
- Separadores de Filmes / Séries / Outros, pesquisa instantânea e sete ordenações: Para você, Publicações mais recentes, Ano de lançamento, Mais bem avaliados, Título A–Z, Maiores e Mais publicados.
- Somente correspondidos vem ligado por padrão, ocultando lixo não identificado; um chip "+N não correspondidos" o revela.
- Clique em um bloco para a folha de detalhes: sinopse, nota e votos do IMDb, elenco - e ▶ Reproduzir (pré-visualize na hora, veja §7) ou ⬇ Baixar.
- ✎ Corrigir correspondência - se um título correspondeu à série ou filme errado, escolha o certo entre pôsteres candidatos, ou digite título/ano/tipo manualmente. O texto manual nunca é sobrescrito pelo enriquecedor. ↻ Atualizar metadados rebusca um título; Ajustes → Indexação pode atualizar todos ou apagar/reconstruir o índice inteiro.
- Os metadados são sem chave por padrão - TVmaze, iTunes, conjuntos de dados do IMDb, Wikidata, Wikipédia e AniList não precisam de contas. Uma chave OMDb (grátis, cadastro só com e-mail - há um ajudante de cadastro em Ajustes → Indexação) melhora a correspondência de filmes; uma chave TMDB é respeitada se você já tiver uma.
- Para você ordena o mural por um perfil de gostos construído nesta máquina a partir do seu próprio histórico concluído e da sua watchlist: géneros preferidos, se pende para cinema ou séries, e mais ou menos que época. Os títulos que já tem descem para o fim em vez de desaparecerem, e uma legenda «Porque você vê …» diz em que se baseou. Sem histórico, recai em Mais publicados, por isso o separador nunca está vazio. Nada disto sai do daemon.
- Sem interesse num cartão esconde esse título, e esconder alguns parecidos ensina o mural: ele propõe um filtro que aceita com um clique («Esconder todos os títulos de Reality a partir de agora?»). Tudo o que escondeu, e cada filtro aprendido, está em Ocultos e filtros e pode ser desfeito aí.
- Um pequeno ponto de disponibilidade num cartão é o veredito do oráculo (§13): um «?» âmbar significa incerto nos seus fornecedores, vermelho que as partes continuam a faltar. Grupos que estão a ser varridos levam um emblema varrido.
7 · Prévia e verificação
Você não precisa esperar um download terminar para saber se é o arquivo certo. Abra-o enquanto ele baixa, confira se o conteúdo, o idioma e a qualidade são o que você esperava, e cancele cedo se não forem - em vez de descobrir depois do download completo.
- ▶ Reproduzir no mural (ou
/m3u/<id>) entrega ao seu reprodutor multimídia uma URL; o daemon inicia ou reaproveita o download por trás dela. - O endpoint
/stream/<nzo_id>serve o arquivo com suporte completo a intervalos HTTP enquanto ele baixa. Conferir qualquer ponto funciona: confira direto o minuto 40 e os artigos daquela região são promovidos para o início da fila de download - ele abre ali em alguns segundos em vez de minutos. O início e o fim do arquivo são buscados primeiro para que os reprodutores encontrem seus dados de índice imediatamente. - Modo biblioteca: categorias listadas em library_cats viram entradas instantâneas
apenas de metadados - um arquivo
.strmaparece na hora, a disponibilidade é verificada em segundo plano e o download real começa quando você o abre pela primeira vez.
/stream. Para conferir de outra máquina, use o endereço LAN da sua máquina no
lugar de localhost./stream/<id> exige um token por trabalho
(?t=…) - os reprodutores não conseguem enviar chaves de API, então a entrega /m3u
e o ponteiro .strm o incorporam para você; gerá-lo (/m3u)
exige a chave. O serviço puro de bytes de um download já ativo permanece aberto, e
instalações sem chave se comportam como antes.8 · Servidores Usenet
Ajustes → Servidores Usenet é o editor completo: adicionar, editar, remover, reordenar e colocar ou tirar do pool qualquer servidor. Cada servidor tem:
| Campo | Notas |
|---|---|
| Host / porta | Use a porta SSL 563. O TLS não custa nada mensurável - o nzbfast sempre criptografa. |
| Usuário / senha | Armazenados localmente em config.local.json, nunca exibidos de volta ao navegador. Deixar a senha em branco ao editar mantém a armazenada. As senhas ficam ofuscadas em disco, não criptografadas. |
| Conexões | Conexões simultâneas por servidor. Use o Ajuste de conexões (§13) para achar o ponto ideal de cada provedor em vez de chutar alto. |
| Nível (camada) | 0 = primário; níveis mais altos são servidores de preenchimento, consultados apenas para os artigos que todo nível inferior não tinha. Coloque contas ilimitadas em 0 e contas de bloco em 1+. |
| Tamanho do bloco (GB) | Para contas de bloco (pago por GB): o nzbfast registra o uso acumulado contra isto e para de usar o servidor quando ele se esgota (aviso aos 85%). |
Deixe uma folga abaixo do limite de conexões da sua conta. Definir as conexões um pouco abaixo do limite não custa nada: a taxa de transferência estabiliza bem antes das últimas uma ou duas conexões, e o Ajuste de conexões (§13) fica abaixo dele de qualquer forma. São esses lugares livres que deixam um segundo dispositivo, outro cliente ou uma nova tentativa após um socket caído entrarem mesmo assim, em vez de serem recusados enquanto este ocupa todos os lugares.
Como as senhas dos seus provedores são guardadas
As senhas de provedor em config.local.json ficam ofuscadas, não
criptografadas. São gravadas como obf1: seguido de uma forma
codificada, de modo que o arquivo não se lê como texto puro se aparecer numa captura
de tela, num post de fórum, num relatório de bug ou numa tela que outra pessoa possa
ver.
Sejamos claros sobre o que isso lhe dá e o que não dá:
- Não é criptografia e não protege em nada de quem tenha o arquivo. O método está no nosso código público e o decodificador viaja dentro do nzbfast: quem tem o arquivo recupera a senha em segundos. Trate o arquivo como segredo exatamente como faria se as senhas estivessem legíveis.
- Elimina o vazamento casual, que é o comum. Configurações acabam coladas em tópicos de suporte e capturadas em prints muito mais vezes do que são roubadas do disco.
- Uma senha que você mesmo digitou em texto puro continua funcionando. O nzbfast lê as duas formas, então configurações editadas à mão e importações de outros clientes nunca quebram; ele grava a forma ofuscada na próxima vez que salvar.
- O arquivo também é gravado legível apenas pela conta que executa o nzbfast (modo 0600 no macOS e no Linux).
Para comparar, NZBGet e SABnzbd guardam ambos as senhas de provedor como texto legível nos seus arquivos de configuração. Achamos a ofuscação uma pequena melhoria sobre isso, não um recurso de segurança.
Por que não o chaveiro do sistema? O Keychain do macOS, o Gerenciador de Credenciais do Windows e os serviços de segredos do Linux dariam proteção de verdade, e talvez voltemos a isso. Hoje duas coisas nos impedem. O acesso ao chaveiro está preso à identidade do aplicativo, e o nzbfast ainda não é assinado, então os avisos e o comportamento depois de cada atualização são ruins. E uma fatia grande das instalações é Docker, servidores sem tela e NAS, onde chaveiro nenhum existe, o que deixaria dois caminhos de armazenamento diferentes para manter corretos. Um único formato bem compreendido que se comporta igual em toda parte é, por ora, o melhor negócio.
Outras duas opções por servidor ainda não têm controlo no painel: acrescente-as à
mão na entrada desse servidor em config.local.json
(ver §17) e reinicie.
| Chave | Notas |
|---|---|
bind_ip | Liga as ligações de saída deste servidor a um endereço local específico, para máquinas com várias saídas e túneis VPN divididos. A família de endereços escolhe também a família de destino: uma ligação v4 conecta ao endereço v4 do servidor. |
socks5 | Envia o tráfego NNTP deste servidor por um proxy SOCKS5: host:port, ou user:pass@host:port. O nome do host é resolvido pelo proxy, logo não há fuga de DNS local. |
- A marca ao lado de cada servidor é o seu interruptor: marcada, o servidor está no pool de download; desmarcada, está desativado. Um servidor desativado mantém as credenciais e as definições e continua a poder ser testado; apenas nunca lhe são pedidos artigos. A linha esbate-se, a contagem do cabeçalho (2 de 3 ativos) desce e a alteração aplica-se a partir do próximo download. Útil para poupar uma conta de blocos que estás a guardar, ou para provar que um fornecedor está na origem de um problema sem o apagar.
- Testar faz uma conexão + TLS + login reais e informa o tempo de ida e volta.
- Importar do SABnzbd / NZBGet… varre os locais de instalação usuais, mostra o que encontrou e copia os servidores (ignorando duplicados).
- As edições de servidor se aplicam a partir do próximo download - sem reiniciar.
9 · Referência de ajustes
Quase tudo é configurável a partir do painel, em ⚙ Ajustes; as quatro exceções
estão no fim desta secção. Os valores marcados live
aplicam-se de imediato; os restart, no arranque
seguinte. Cada alteração feita aqui fica guardada em settings.json e
sobrevive a reinícios (os valores da interface ganham às opções de linha de
comandos).
Velocidade e agendamento ao vivo
| Ajuste | O que faz |
|---|---|
| Limite de velocidade | Teto em bytes/seg (50M, 1G, 0 = ilimitado). Apps remotos podem enviar porcentagens - defina a Velocidade da linha para que sejam traduzidas corretamente. |
| Velocidade automática | Teto regulado por RTT que cede a outro tráfego da casa e se reexpande quando a linha está tranquila. |
| Adiar downloads lentos automaticamente | Um trabalho preso em um servidor lento enquanto outros esperam é movido para o fim da fila (o progresso é mantido). Veja §13. |
| Pré-carregar em servidores ociosos | Servidores inúteis ao trabalho ativo iniciam o próximo da fila. Veja §13. |
| Atualização automática / URL de verificação de atualizações | Veja §14. |
| Velocidade da linha | A velocidade nominal da sua conexão - permite limites em porcentagem de apps compatíveis com o SABnzbd. |
| Agendamento semanal | Editor de linhas para regras por horário da semana: pausar, retomar ou definir um limite de velocidade em dias/horários específicos (horário local). Ex.: limitar a 20 MB/s em dias úteis das 9 às 17 h, ilimitado no restante. |
Próximo download ao vivo
Conexões (por servidor), janela (profundidade de pipeline por conexão), decodificadores (threads de decodificação em paralelo). Amostrados quando cada trabalho começa. Os padrões são adequados para a maioria das linhas; use as ferramentas de ajuste antes de aumentar às cegas.
Verificação durante a transferência escolhe quanto é conferido à medida que os dados chegam. Completa confirma cada bloco PAR2 com MD5. Rápida (a predefinida) reivindica os blocos por CRC32, o que é 2-3x mais rápido num CPU lento, e continua a verificar a soma de verificação de cada artigo. Leve salta também essas somas de artigo assim que o PAR2 cobre um ficheiro: o dano aparece um instante depois, no seu bloco. Nas três, a passagem final e qualquer reparação usam MD5 completo, e uma transferência sem ficheiros PAR2 mantém as suas somas de artigo.
Disco e cota ao vivo
Espaço livre mínimo (pausa novos trabalhos abaixo dele; 2 GB por padrão, 0 desativa), cota de download por dia ou mês (UTC; trabalhos Forçar a ignoram), limite de memória - o orçamento de RAM do motor (padrão: ¼ da RAM, com limite; aumente-o em uma máquina com muita RAM para velocidade máxima em trabalhos enormes, e veja o que a pouca memória custa antes de reduzi-lo) reiniciar.
Mover concluídos para: após desempacotar, limpar e renomear, os
downloads concluídos são movidos para cá - um compartilhamento NAS, uma unidade
de mídia, onde quer que viva a sua biblioteca. A estrutura de categorias é
mantida (um trabalho que terminou sob tv/ chega sob
tv/ no destino), e o histórico acompanha a mudança, então os
aplicativos conectados importam e excluem no novo local. Se o destino estiver
inacessível quando um trabalho termina (compartilhamento offline, sem espaço),
os arquivos ficam na pasta de downloads e o trabalho é concluído normalmente
mesmo assim. Vazio = desligado. Os Destinos por categoria mandam
categorias específicas para outro lugar (tv=/Volumes/NAS/TV, movies=/Volumes/NAS/Movies); cada caminho listado
é a pasta daquela categoria, então nenhuma subpasta de categoria extra
é criada dentro dele. As categorias não listadas seguem Mover concluídos
para.
Profundidade de arquivos aninhados (5 por omissão) é quantas camadas de arquivo-dentro-de-arquivo são descompactadas automaticamente: um conjunto RAR que contém um 7z que contém outro RAR é normal na Usenet, e o nzbfast segue a cadeia sem uma segunda passagem. No limite, o arquivo mais profundo fica simplesmente onde está, por descompactar, e o download termina à mesma. Só aumente para releases invulgarmente profundas.
Renomeação automática e limpeza live
Renomear downloads concluídos (ligado por omissão) dá à pasta e ao ficheiro
principal um nome limpo e informativo: um filme passa a Example Movie (2024)
e as séries mantêm Show - S01E02. Nomes ofuscados ou não reconhecidos ficam
exatamente como foram publicados, em vez de adivinhados.
| Ajuste | O que faz |
|---|---|
| Incluir resolução | Acrescenta 1080p, 2160p… ao nome. Ligado por omissão; as outras quatro etiquetas estão desligadas. |
| Incluir codec de vídeo | x265, x264, AV1… |
| Incluir codec de áudio | Atmos, DTS-HD, AC3… |
| Incluir fonte | BluRay, WEB, REMUX… |
| Incluir grupo de lançamento | A etiqueta -GROUP no fim. |
| Remover arquivos inúteis | Ligado por omissão. Apaga .par2, .nzb, .sfv, .nfo que sobrem e clipes de amostra das pastas de filmes e séries concluídas. Nunca o vídeo nem as suas legendas. |
| Manter apenas o arquivo de mídia | Desligado por omissão, e destrutivo: apaga em definitivo tudo o que está na pasta exceto o vídeo (ou vídeos) e as legendas. Todos os episódios de um pacote de temporada são mantidos. Prevalece sobre Remover arquivos inúteis quando ambos estão ligados. |
| Keep the other words in the name | Ligado por padrão. Esporte, corridas e outros eventos costumam ser um mesmo título repetido a temporada inteira, a uma ou duas palavras de distância - "Round11 Hungary Race" contra "Round11 Hungary Qualifying". Manter essas palavras é o que impede uma temporada inteira de virar o mesmo nome. Só se aplica onde o nome não pôde ser arrumado de outra forma, então filmes e episódios comuns ficam intocados. |
Todo o grupo corre depois da reparação e da descompactação e antes de Mover concluídos para, e é saltado por completo num trabalho ainda à espera de palavra-passe. Os dois passos de apagamento aplicam-se apenas a releases reconhecidas como filme ou série: uma carga de software ou um conjunto não classificável (ofuscado) nunca é varrido.
Ficheiros eliminados vão para a Reciclagem decide o que "apagar" significa acima. Com ela ligada, a limpeza move os ficheiros para a Reciclagem do sistema, e um palpite errado sobre o que era lixo pode ser desfeito; com ela desligada, são apagados de vez. Está ligada por omissão no macOS e no Windows, onde a Reciclagem fica num sítio que pode ver e esvaziar, e desligada por omissão no Linux, onde normalmente não fica.
.Trash-1000 (o número é o seu
id de utilizador) no topo do disco de downloads e movem os ficheiros para lá. Nada
lhe mostra essa pasta, nada a esvazia, e o espaço que ela ocupa nunca volta.
Se correu uma versão anterior do nzbfast em Linux com isto ligado, procure essa pasta na raiz da sua partilha de downloads. É seguro esvaziá-la: tudo o que lá está é um ficheiro que uma limpeza já decidiu que não queria. O nzbfast não a esvazia por si, porque está no seu disco e é a si que cabe julgar.
Pastas e processamento
Pasta de downloads reiniciar, pasta monitorada,
script de pós-processamento (executado após cada trabalho com argumentos compatíveis com o SABnzbd
e ambiente SAB_* - scripts SAB existentes funcionam sem alteração),
extensões de limpeza (arquivos de lixo excluídos após a conclusão), Pastas inteligentes
e arquivamento de TV (veja §10).
Manter os .nzb após a recolha (desligado por padrão) deixa o .nzb
original na pasta monitorada depois de ele entrar na fila, em vez de movê-lo para o
Lixo - para colecionadores, e para entregar o arquivo a alguém quando um download
corre mal. Um arquivo mantido é lembrado, inclusive entre reinícios, e não volta à
fila; salve-o de novo para baixá-lo outra vez. Seja qual for a escolha, a gaveta de
cada trabalho tem um botão Transferir o .nzb, então uma cópia do .nzb
de qualquer trabalho nunca está a mais de um clique.
Indexação ao vivo
| Ajuste | O que faz |
|---|---|
| Indexador embutido | A chave mestra, desligada a menos que você a ligue. Desligada significa sem varredura, sem consultas de metadados, sem amostragem de disponibilidade e sem feed newznab; um índice que já esteja em disco é preservado (há um botão para apagar), então religar retoma em vez de varrer tudo de novo. |
| Grupos | Newsgroups que o indexador integrado varre (ex.: alt.binaries.teevee). |
| Intervalo de varredura | Segundos entre passagens (padrão 900). |
| Artigos de preenchimento | Cabeçalhos buscados na primeiríssima varredura de um grupo. |
| Aprofundar por varredura | Cada passagem também indexa esta quantidade de artigos mais antigos, ampliando seu histórico pesquisável em segundo plano até atingir a Idade máxima (padrão 200.000 por passagem ≈ dezenas de milhões de artigos por dia de atividade). |
| Idade máxima | Ignora publicações mais antigas que isto (90d, 6m, 2y) - limita o tamanho do índice e o tempo de varredura. |
| Limitar à janela de idade | Ligado por omissão. Apaga também releases já guardadas assim que passam a idade máxima, para que o índice mantenha aproximadamente essa janela em vez de crescer para sempre. Desligado = só as publicações novas são filtradas e o que está guardado fica. Fragmentos mortos (ocultos, ainda incompletos ao fim de uma semana) são recolhidos de qualquer forma. |
| Filtros de ingestão | Regras JSON filtrando o que entra no índice: tipos (lixo ofuscado é descartado por padrão), ano/resolução/idioma, limites de tamanho. |
| Varrer agora / revarredura profunda | Executa uma passagem imediatamente; com uma profundidade, revarre essa quantidade de cabeçalhos recentes. |
| Chave OMDb / atualização de metadados / apagar | Controles de enriquecimento do mural (§6). Apagar reconstrói o banco de dados do zero - o caminho de recuperação se ele for corrompido. |
| Fluxo de pres | Desligado até o ligares. Muitos envios são publicados sem o nome, e uma análise não tem nada para ler. Canais de retransmissão públicos anunciam o nome verdadeiro, a única via aberta para associar esses envios. Ligar mantém uma ligação aberta a uma rede IRC e escuta: nunca é enviado nada nem é criada qualquer conta. Precisa do indexador ligado, porque um fluxo sem onde guardar o que ouve é um socket aberto para nada. |
| Servidor de retransmissão, Canais | A rede IRC que transporta os anúncios (anfitrião ou anfitrião:porta) e os canais a escutar, separados por vírgulas. Uma alteração faz efeito na ligação seguinte: desliga e volta a ligar o fluxo para a aplicar já. |
| Nomear por correlação | As retransmissões públicas em direto não levam nomes de ficheiro, por isso a maioria dos envios ofuscados não pode ser associada diretamente. O que um anúncio fixa é quando uma publicação apareceu e o seu tamanho. Isto compara a hora e o tamanho anunciados com os envios sem nome e, quando encaixam, sugere o nome verdadeiro em Navegar. Uma sugestão é assinalada como tal, exige o teu clique e nunca renomeia ficheiros no disco. |
| Aplicar automaticamente as correspondências fortes | Desligado por omissão, e exigente quando ligado: o tamanho tem de bater certo, nenhum outro anúncio pode encaixar quase tão bem, e o anúncio tem de voltar a escolher este envio na verificação inversa. Um nome aplicado só muda a forma como a publicação é mostrada, é marcado como inferido e retira-se sozinho se uma transferência concluída o desmentir. Tudo o que for mais fraco continua uma sugestão. |
| Histórico de anúncios | O fluxo em direto só ouve os anúncios posteriores a ser ligado. Isto vai buscar cerca de seis meses de anúncios antigos a uma base de pres pública, com cortesia e uma só vez, para que também os envios já indexados possam ser associados. Corre meia hora ou assim em segundo plano. |
Biblioteca, Segurança, Interface
Biblioteca: categorias tratadas como entradas de biblioteca instantâneas + intervalo de reverificação. Segurança: a chave de API completa (tudo) e a chave NZB (apenas adição - segura para dar a sites indexadores), ambas rotacionáveis ao vivo. Cada campo substitui a chave a que pertence assim que você sai dele, e deixar um campo em branco mantém a chave que ele já tem. A chave de API tem ainda Show, que revela e copia a chave atual para você colar no Sonarr, Radarr ou NZB360 quando lhe convier, e Create new, que cunha uma substituta - a chave antiga para de funcionar imediatamente, então tudo o que já está conectado precisa receber a nova. Ambas dependem da própria chave de API: a chave NZB apenas-adição não consegue lê-la, que é justamente o sentido dessa chave. Para saber de onde vem a chave numa instalação nova, veja §2. Interface: sons de clique, notificações da área de trabalho na conclusão, intervalo de reordenação de provedores.
Unidades de velocidade live decide como cada velocidade é mostrada no painel: megabytes (MB/s, a norma dos gestores de downloads, o valor por omissão) ou megabits (Mb/s, como os ISP anunciam as linhas). Os tamanhos de ficheiro ficam em bytes. É uma propriedade do daemon, não do seu navegador, por isso aplica-se a todos os dispositivos que olham para esta instalação.
Avançado: os botões por trás dos evidentes
Seis ajustes sem opção de linha de comandos. Cada um tem agora uma linha avançada no
cartão de definições a que pertence, e continua a poder ser definido pela API
(§16), p. ex.
/api?mode=config&name=verify_mode&value=lean&apikey=…. Como
todos os outros, ficam guardados em settings.json.
| Nome | O que faz |
|---|---|
verify_mode | full | fast | lean (por omissão fast). lean é o impulso para CPU lento: como fast, mas também salta o CRC yEnc por artigo assim que o PAR2 cobre um ficheiro, deixando uma camada de CRC32 em vez de duas. Downloads sem PAR2 mantêm os CRC dos artigos, e a verificação e a reparação no fim do trabalho não mudam em caso algum. O seletor Verificação durante a transferência acima é este ajuste. |
auto_retry_mins | Espera antes da única nova tentativa automática que uma primeira falha por artigos em falta recebe (20 por omissão). O atraso de propagação é uma causa real de artigos em falta e resolve-se sozinho; graças ao diário, a repetição vai buscar só o que ainda falta. Falhas por palavra-passe ou remoção nunca se qualificam. |
index_scan_par | Quantos grupos o indexador analisa em paralelo (3 por omissão, limitado a 1-8). |
oracle_sample | Orçamento de STAT em repouso do oráculo de disponibilidade (§13), sondagens por hora e por servidor. 300 por omissão, 3600 no máximo, 0 desativa a amostragem por completo. |
predb_max_rows | Quantos anúncios pre a tabela do fluxo guarda (250000 por omissão, limitado a 10000-5000000). A limpeza horária corta até esse número e a importação histórica recusa arrancar se fosse ultrapassá-lo, de forma que uma importação nunca acrescenta linhas que a limpeza seguinte apaga. |
predb_seed_days | Até que ponto do passado chega uma importação histórica iniciada sem janela própria (180 dias por omissão, 366 no máximo). Uma janela maior são mais pedidos à fonte pre, que vai a um a cada dois segundos. |
10 · Automação
Lista de acompanhamento
A automação mais simples: adicione um título no painel, defina as preferências de qualidade, pronto. Novos lançamentos são capturados conforme aparecem nos seus grupos indexados; cópias de melhor qualidade substituem capturas anteriores; uma visão de calendário mostra o que está por vir.
Feeds RSS
Ajustes → RSS: qualquer URL RSS newznab/indexador com intervalo por feed, categoria e regras de filtro (padrões de título, limites de tamanho). Os itens correspondentes são baixados automaticamente.
Pastas inteligentes
Regras avaliadas quando um trabalho é adicionado: correspondência por padrão/palavras-chave e tamanho, atribuir uma
categoria (a primeira correspondência vence). Com o arquivamento de TV ligado, episódios de TV concluídos são
renomeados e arquivados como Show/Season 01/Show - S01E02.mkv -
prontos para Plex/Jellyfin sem uma ferramenta externa.
Agendador
O agendamento semanal (veja §9) automatiza pausar/retomar/velocidade por hora do dia.
Scripts
Um script de pós-processamento recebe os argumentos posicionais do SABnzbd e as
variáveis de ambiente SAB_* - o grande ecossistema de scripts SAB roda
como está.
11 · Sonarr, Radarr e companhia
O nzbfast fala a API do SABnzbd nativamente, então todo *arr funciona de imediato - e ele também pode atuar como indexador deles.
Como cliente de download
- No Sonarr/Radarr: Settings → Download Clients → adicione SABnzbd.
- Host: sua máquina nzbfast · Porta: 6789 · Chave de API: sua chave de API completa (onde encontrá-la: §2).
- Categoria conforme desejado (ex.:
tv/movies). Test → check verde → Save.
Fila, histórico, status por trabalho, "remover e excluir", repetição e roteamento por categoria se comportam como os *arrs esperam.
Como indexador (newznab)
- Settings → Indexers → adicione Newznab.
- URL:
http://<host>:6789/· Caminho da API:/api· chave: sua chave de API. - O nzbfast serve consultas
caps,search,tvsearchemoviea partir de seu próprio índice dos seus grupos monitorados, e/getnzb/<id>devolve o NZB.
<error code="101"> em vez de um resultado vazio, de modo que um engano
aparece na hora em que você adiciona o indexador e não semanas depois.Por que se dar ao trabalho? Um indexador auto-hospedado exatamente dos grupos que lhe interessam: sem contas, sem limites de chamadas de API, com retenção tão funda quanto você o deixar varrer. É um acréscimo aos seus indexadores de sempre e não um substituto, porque ele só encontra o que foi postado sob um nome de arquivo real.
12 · Celular e apps remotos
O nzbfast implementa ambos os principais protocolos de controle remoto, então quase todo app de celular/tablet funciona. Escolha o protocolo que seu app suportar:
Apps que falam NZBGet (nzb360, LunaSea, NZB Unity…)
| Campo no app | Valor |
|---|---|
| Tipo | NZBGet |
| Host / porta | sua máquina : 6789 |
| Usuário | qualquer coisa (ex.: nzbfast) |
| Senha | sua chave de API |
Toda a superfície JSON-RPC que esses apps usam é servida: status, fila com reordenar/pausar/excluir, histórico, adicionar-NZB, limite de velocidade, pausar/retomar, log.
Apps que falam SABnzbd
| Campo no app | Valor |
|---|---|
| Tipo | SABnzbd |
| Host / porta | sua máquina : 6789 |
| Chave de API | sua chave de API (ou a chave NZB para acesso apenas de adição) |
O painel no seu celular
Basta abrir http://<machine>:6789 em um navegador de celular - todo o
painel e o mural têm um layout de toque. O painel Ajustes → Acesso remoto mostra
as URLs exatas e um código QR para escanear.
Chegar ao nzbfast a partir de fora de casa
Não existe página de início de sessão, e isso é propositado. Um login com cookie de sessão é uma superfície de segurança para manter para sempre, e continuaria a ser a fechadura mais fraca de qualquer coisa exposta à Internet. Em vez disso o nzbfast autentica-se com a sua chave API, e aceita essa chave tanto num cabeçalho do pedido como no URL (X-Api-Key, ou Authorization: Bearer) - é isso que permite a algo colocado à frente tratar do início de sessão como deve ser.
O mais simples é não o publicar de todo. Instale o Tailscale nesta máquina e no telemóvel: ambos entram na mesma rede privada, nada fica exposto, não é preciso mexer no router nem em certificados, e Definições → Acesso remoto mostra um endereço que funciona em qualquer lado assim que detetar o Tailscale. Prefira este caminho a não ser que precise mesmo de um domínio público.
Se precisar, coloque um proxy inverso à frente, entregue-lhe o certificado e deixe-o fazer a autenticação. Inicie o nzbfast com --bind 127.0.0.1 para que o proxy seja a única entrada, e aponte o proxy a http://127.0.0.1:6789:
# Caddy
example.com {
reverse_proxy 127.0.0.1:6789
}
# nginx
location / {
proxy_pass http://127.0.0.1:6789;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
Acrescente por cima o que o seu proxy oferecer: autenticação básica, um serviço de forward-auth como o Authelia ou o Authentik, ou certificados de cliente. Há uma coisa que apanha toda a gente - o Sonarr, o Radarr e as apps de telemóvel não conseguem concluir um login de navegador, por isso deixe-lhes passagem. A maioria dos proxies consegue deixar passar um pedido com um cabeçalho X-Api-Key válido e exigir autenticação a tudo o resto.
13 · Ferramentas de desempenho
Benchmark do sistema
Um clique mede seus três tetos - vazão de rede (uma sondagem real de 8 segundos com múltiplas conexões), taxa de verificação da CPU e velocidade de escrita em disco - e apresenta a resposta: sua velocidade máxima de download esperada e qual teto é o limite. A barra mais curta é seu gargalo; as outras mostram sua folga. Agende-o (a cada 6 horas → semanal) e cada execução é registrada em uma tabela de histórico, para que você possa ver quando seu provedor, provedor de internet ou hardware mudou de comportamento. Execuções agendadas só acontecem enquanto a fila está ociosa.
Ajuste de conexões
Mede um provedor com números crescentes de conexões e recomenda a configuração - mais sockets ajudam até o provedor ou sua linha saturar, e alguns provedores punem quem pede demais. Testar todos compara cada provedor, depois dispara todos juntos para checar se o conjunto satura sua linha.
Diversidade de servidores
Amostra artigos por STAT em diferentes idades em cada servidor e agrupa provedores por lacunas compartilhadas: provedores com ~100% de artigos ausentes compartilhados são o mesmo backbone (redundantes para recuperação); os independentes realmente ampliam sua cobertura. Termina com uma recomendação em linguagem simples.
Inteligência automática da fila
- Adiar automaticamente: um download arrastando-se em um único servidor lento enquanto outros trabalhos esperam é estacionado no fim (o diário mantém seu progresso) e repetido quando a fila está livre.
- Pré-carga em servidor ocioso: servidores que não podem ajudar o trabalho ativo (suas cópias sumiram) começam a baixar o próximo trabalho da fila enquanto isso. Nenhum outro cliente faz sobreposição entre trabalhos.
- Absorção entre trabalhos: enquanto a cauda de um trabalho concluído (verificação/extração) termina no disco, o download do próximo trabalho já domina a linha.
O oráculo de disponibilidade
As remoções são a principal razão para um download de Usenet falhar, e são previsíveis: a mesma release desaparece de um backbone enquanto outro ainda a tem. O nzbfast mantém um pequeno registo do que os seus próprios fornecedores serviram de facto, e gasta um orçamento mínimo de sondagens STAT em repouso (algumas centenas por hora e por servidor, nunca durante um download) para o manter atual. Nunca descarrega carga útil para isso.
O que ganha com isso:
- Um veredito de disponibilidade nos cartões do mural e nas linhas do índice (§6): «?» âmbar para incerto nos seus fornecedores, vermelho para perdido com confiança. Sem marca, parece estar bem.
- Um emblema varrido nos grupos onde as publicações recentes já estão a ser retiradas, para distinguir um grupo a morrer de uma release azarada.
- Pular provedores que o oráculo dá como perdidos (Ajustes, desligado por omissão, experimental): quando a verificação tem a certeza de que o backbone de um fornecedor perdeu uma release, salta-o já nesse download em vez de esperar que falhe. Nunca saltará o seu último fornecedor.
O veredito é uma previsão a partir de indícios, não uma garantia. Para
uma resposta firme sobre um NZB, nzbfast check (§15)
conta os artigos reais.
Orçamento de memória - e o que a pouca memória custa
Todos os caches do motor compartilham um orçamento (padrão ¼ da RAM física, limitado a
256 MB–16 GB). Defina-o explicitamente com o Limite de memória em Ajustes, ou
--mem-limit na linha de comando.
O nzbfast é construído para saturar sua rede e seu disco ao mesmo tempo, e a RAM é o que permite fazer os dois em uma única passagem: os artigos são decodificados, verificados e escritos direto em seus deslocamentos finais, de modo que os volumes de arquivo nunca precisam tocar o disco. Prive-o de memória e nada quebra - cada cache tem um caminho de spill, e o motor degrada para mais E/S de disco em vez de fazer swap ou falhar. Mas esse spill não é grátis, e em trabalhos grandes você consegue medi-lo.
Medido em uma máquina e uma linha (M1 Ultra, 10 GbE), os mesmos arquivos em cada orçamento. Cada execução produziu um resultado correto, totalmente verificado e extraído:
| Tamanho do trabalho | RAM de sobra | Orçamento de 2 GB ≈ máquina de 8 GB | Orçamento de 1 GB ≈ máquina de 4 GB | Orçamento de 256 MB ≈ NAS de 2 GB |
|---|---|---|---|---|
| 7 GB | 15 s | 15 s | 15 s | 15 s |
| 35 GB | 65 s | 70 s | 70 s | 65 s |
| 87 GB | 148 s | 206 s +39% | 196 s +32% | 180 s +22% |
| 190 GB | 330 s | 427 s +29% | 402 s +22% | 411 s +25% |
O pico de memória acompanha o orçamento, não o trabalho: aquele download de 190 GB termina em cerca de 1,1 GB de RAM. O que você troca por isso é tempo - e só em trabalhos grandes.
- Até ~35 GB, pouca memória é de graça. O conjunto de trabalho cabe de qualquer forma, então uma máquina de 4 GB termina esse trabalho tão rápido quanto uma de 64 GB.
- Acima de ~87 GB você paga 20–40% - mas só quando sua linha supera seu disco. Blocos de verificação e volumes de arquivo que teriam ficado na RAM são escritos e lidos de volta, e isso só custa tempo se a rede puder entregar mais rápido do que o disco consegue absorver o tráfego extra. Os 20–40% acima foram medidos em 10 GbE; o mesmo trabalho de 87 GB nos mesmos orçamentos em uma linha de ~2,4 Gbps não mostrou penalidade nenhuma (−1 a +7%, dentro do ruído entre execuções). A penalidade é função de quanto a linha supera o disco, não do tamanho do trabalho - em uma conexão doméstica típica, um orçamento pequeno é quase de graça mesmo em trabalhos muito grandes.
- A penalidade se estabiliza. Uma vez que um trabalho seja grande o bastante para dar spill, todo orçamento limitado dá spill de mais ou menos a mesma quantidade - as execuções de 2 GB, 1 GB e 256 MB leem de volta essencialmente o mesmo número de blocos do disco e terminam dentro do ruído umas das outras. Então um pouco mais de RAM abaixo do limiar que evita o spill por completo não recompra o custo: dê o suficiente para manter o trabalho na memória, ou o número exato quase não importa.
Em um NAS pequeno, reduza também as Conexões (2–4) junto com o orçamento. Com um orçamento de 256 MB e 2 conexões, o pico de memória fica perto de 190 MB - confortavelmente dentro do que um NAS de 2 GB tem de sobra. Saiba que, nesse ponto, a contagem de conexões, não a memória, é o que limita você: o mesmo trabalho de 35 GB levou 286 s em vez de 65 s. Essa é a forma honesta da troca - sempre terminará, e terminará corretamente; só não vai saturar a linha.
Os benchmarks são refeitos a cada versão; método e números por máquina são publicados junto com os resultados.
14 · Atualizações
- As atualizações são apenas aviso: o nzbfast nunca baixa nem substitui o próprio binário, e não há nele código capaz disso. Quando existe uma versão nova, o cabeçalho mostra ⬆ v X disponível - baixar; o chip leva à página de download oficial (o link é fixo no aplicativo, nunca vem do manifesto de atualização). Instale a versão nova do mesmo jeito que instalou a atual.
- O nzbfast verifica novas versões duas vezes por dia. Desligue Verificar atualizações (Configurações) e ele não contata mais o manifesto de atualização; uma URL de verificação vazia faz o mesmo.
Atualizar sem perder suas configurações
Uma regra vale para toda instalação: uma atualização substitui o programa, nunca as suas configurações. Tudo o que você configurou - servidores, caminhos, a chave de API, a fila - vive num punhado de arquivos dentro de uma única pasta (§17), e nenhum instalador, download de imagem ou upgrade de pacote toca nessa pasta. Quando as configurações parecem ter sumido depois de uma atualização, é quase sempre porque a instalação nova está lendo uma pasta diferente e vazia, não porque algo foi apagado; os arquivos antigos continuam onde sempre estiveram. §18 tem os passos de recuperação.
| Instalação | Como atualizar |
|---|---|
| App do macOS | Abra o DMG novo e arraste o NzbFast para Aplicativos, substituindo o antigo. Sua pasta de dados é separada e não é tocada. |
| Instalador do Windows | Rode o instalador novo por cima da instalação antiga. Sua pasta de dados é separada e não é tocada. |
| Docker (linha de comando) | docker pull nzbfast/nzbfast,
remova o contêiner antigo e rode o novo com exatamente os mesmos mapeamentos
-v. A imagem é descartável; a pasta /config mapeada é
a sua instalação. Se o seu comando de execução usa um caminho relativo como
-v ./config:/config, rode-o sempre do mesmo diretório - de qualquer
outro lugar, ./config é uma pasta diferente e
vazia. |
| Docker Compose | docker compose pull && docker compose
up -d, com o mesmo arquivo compose no mesmo lugar. O
./config do arquivo fica ancorado na pasta do próprio arquivo, então
mantenha o arquivo onde está. |
| Watchtower | Nada a fazer: ele recria o contêiner com os mesmos mapeamentos quando sai uma imagem nova. |
| Unraid | Aba Docker → Check for Updates → Apply
Update. Nunca remova e adicione o app de novo para atualizá-lo; se algum dia
você chegar a reinstalar, mantenha o mesmo caminho de appdata para que ele encontre
o seu /config existente. |
| Synology (Container Manager) | Baixe a imagem nova, pare o contêiner e recrie-o com os mesmos ajustes de volume - o passo a passo do guia da Synology cobre isso clique a clique, inclusive como deixar isso agendado. |
| Synology (pacote) | Instale o .spk novo no Package
Center; ele atualiza no lugar. |
| Homebrew | brew upgrade nzbfast |
| Binário simples | Substitua o binário. Sua configuração fica onde você a criou (§17). |
-e NZBFAST_APIKEY=…, ou o bloco environment do seu arquivo compose ou
do template do Unraid). Uma chave guardada ali sobrevive a qualquer acidente do
contêiner, porque vive no host, dentro da definição, e é reaplicada a cada início.
Uma chave que você definir depois em Ajustes ainda ganha dela.15 · Linha de comando
Tudo o que o daemon faz também é programável por script. Os comandos do dia a dia:
| Comando | Finalidade |
|---|---|
nzbfast setup | Configuração interativa de servidor. |
nzbfast serve | Roda o daemon (painel + API + automação). --open abre o navegador; --apikey define a chave na mão (§2); --bind escolhe o endereço de escuta, padrão 0.0.0.0 (todas as interfaces), 127.0.0.1 só para esta máquina. Veja --help para a lista completa de flags - cada ajuste do painel tem um flag gêmeo. |
nzbfast get file.nzb | Baixa um NZB, pipeline completo, sem daemon. --preflight aborta cedo se a publicação não puder ser concluída; --password para conjuntos criptografados. |
nzbfast check file.nzb | Veredito de disponibilidade - COMPLETE / REPAIRABLE / IMPOSSIBLE - sem baixar o conteúdo. |
nzbfast verify DIR | Verifica arquivos contra o conjunto PAR2 em um diretório. |
nzbfast sysbench | O benchmark do sistema + relatório de diversidade, no terminal. |
nzbfast index / search | Varre grupos para o índice / pesquisa nele, sem o daemon. |
nzbfast import-sab | Importa servidores de um ini do SABnzbd. |
Também disponíveis: inspect, probe,
bench, bench-cpu, soak, fetch,
spots/spot-search/spot-get (Spotnet),
predb-seed (enche a base de pres com o período anterior a ligar o fluxo),
make-release-nzb/make-test-nzb (fixtures de teste). Cada
comando aceita --config e --help. Junta-se-lhes post: carrega ficheiros como
artigos yEnc e escreve o NZB correspondente. É uma ferramenta de operação, exige um
--post-server explícito e nunca escolhe um servidor por si.
16 · Visão geral da API
Endpoint base: http://host:6789/api?mode=…&apikey=…&output=json -
compatível com o SABnzbd, então integrações SAB existentes funcionam sem alteração. Duas chaves:
a chave de API (controle total) e a chave NZB (apenas adição:
addfile/addurl). addnzblnk fica de propósito fora do conjunto de só adicionar: resolver um link pode gastar cota medida de indexador, coisa que uma credencial de só adicionar não tem por que fazer.
| Área | Modos |
|---|---|
| Fila | queue (com name=delete/pause/resume/priority/switch), pause, resume, addfile, addurl, addnzblnk, retry, set_password |
| Informações | history, status/fullstatus, stats, version, server_stats, usage, log, warnings, além de /jobnzb/<nzo_id> (devolve o próprio .nzb guardado do trabalho, fila ou histórico; só com a chave de API completa) |
| Configuração | get_config, config&name=<setting>&value=… (cada campo de Ajustes), server_save/delete/test/enable/reorder, import_probe/apply |
| Índice e mural | index_search, index_get, index_stats, index_scan_now, wall, wall_search/fix/refresh/art, além de newznab em /api?t=caps|search|tvsearch|movie e /getnzb/<id> |
| Automação | watchlist, watchlist_check_now, watch_calendar, feeds, smart_folders, schedule |
| Diagnóstico | sysbench, bench_history, connladder, pooltest, diversity, update_check, update_apply |
| JSON-RPC do NZBGet | /jsonrpc - status, listgroups, history, append, editqueue, rate, pause, log (autenticação Basic: qualquer usuário, chave de API como senha) |
| Pré-visualização / reprodução | /stream/<nzo_id> (intervalos HTTP; iniciar um trabalho de biblioteca estacionado precisa de token ?t= ou chave), /m3u/<id> (precisa da chave; gera o token), /wall, /art/… |
17 · Arquivos e locais
Onde fica a pasta de configuração depende de como o nzbfast foi instalado. Essa única pasta guarda tudo o que vale a pena ter em backup:
| Instalação | Pasta de configuração |
|---|---|
| App do macOS | ~/Library/Application Support/nzbfast/ |
| Windows | %LOCALAPPDATA%\nzbfast\ |
| Docker / contêineres NAS | /config dentro do contêiner,
que é a pasta do host que você mapeou para ele. No Unraid é a pasta de appdata do
app. |
| Pacote Synology | /var/packages/nzbfast/var/ |
| Terminal | A pasta em que você rodou nzbfast setup, ou
para onde --config / $NZBFAST_CONFIG apontar. |
E o que há dentro dela:
| Arquivo | Conteúdo |
|---|---|
config.local.json | Credenciais de servidor e opções por servidor. Criado pelo assistente; editável em Ajustes. Mantenha-o privado. As senhas ficam ofuscadas, não criptografadas. |
settings.json | Cada ajuste alterado no painel. Fica ao lado da configuração; os valores da interface substituem os flags de linha de comando. Exclua uma chave (ou o arquivo) para voltar a flags/padrões. |
apikey | A chave de API que o nzbfast criou para si mesmo numa primeira execução (§2). Fica ao lado da configuração; no macOS e no Linux só pode ser lida pela conta que executa o nzbfast. Não o exclua para conseguir uma chave nova: numa instalação que já rodou alguma vez, nada a substitui e o daemon volta a subir sem chave nenhuma. Em vez disso, defina uma nova em Ajustes → Segurança. |
index.db | O índice de lançamentos (SQLite) + metadados do mural. Seguro de excluir - reconstrói a partir da varredura (Ajustes → Indexação → Apagar faz isso por você). |
<config>/.spool/ | Estado da fila (sobrevive a reinícios), NZBs por trabalho, registro de uso, histórico de benchmark, cache de imagens de pôster. |
| Diário de artigos | Dentro da pasta de saída de cada trabalho enquanto incompleto - sustenta a retomada de travamento e a repetição. Removido em caso de sucesso. |
| Ferramentas externas | Nenhuma é necessária - a extração RAR e o reparo PAR2 são nativos. Se um conjunto exótico algum dia precisar de um unrar ou par2 externo como reserva, o nzbfast procura ao lado de seu executável, depois no $PATH. |
18 · Solução de problemas
| Sintoma | Verifique |
|---|---|
| Downloads lentos | Execute o Benchmark do sistema - ele nomeia o gargalo diretamente. Se for a rede: execute o Ajuste de conexões, verifique as contagens de conexões por servidor e confirme que seus provedores não são todos um mesmo backbone (Diversidade de servidores). |
| Lento só em trabalhos muito grandes (NAS ou máquina com pouca RAM) | Esperado, e mensurável: um orçamento de memória apertado dá spill dos caches para o disco e custa 20–40% acima de ~87 GB. Veja Orçamento de memória para os números e quanta RAM dar. Trabalhos menores não são afetados. |
| Download falha "artigos ausentes" | A publicação expirou ou foi removida nos seus provedores. Um segundo provedor em um backbone diferente resgata a maioria destes. nzbfast check prevê isso antes de baixar. E o mural assinala à partida as que provavelmente desapareceram, com o seu
ponto de disponibilidade (§13). Uma primeira falha desta forma
repete-se sozinha uma vez após uma espera, porque o atraso de propagação é
indistinguível e resolve-se por si. |
| Arquivo concluído pede senha | A linha do Histórico mostra 🔑 - digite a senha ali; o trabalho termina no lugar. |
| Um arquivo compactado não extrai | Falhas de senha e de reparo se nomeiam sozinhas na linha do Histórico. Para todo o resto há uma saída de emergência: Ajustes → Pasta monitorada e pós-processamento → Extrair com unrar externo (um ajuste avançado) entrega a extração ao programa unrar instalado na sua máquina em vez do extrator integrado. Fora isso, deixe desligado: o caminho integrado é mais rápido em todas as formas que medimos, e publicações ofuscadas com nomes hash sempre o usam de qualquer forma, porque o unrar não consegue acompanhar sua renomeação. O mesmo interruptor para execuções de nzbfast get é a variável de ambiente NZBFAST_NO_NATIVE_UNRAR=1. Se o unrar extrair um arquivo que o extrator integrado recusou, relate para que possamos corrigir o caminho integrado. |
| Sonarr/Radarr não conecta | Porta 6789 acessível? Chave de API correta (chave completa, não a chave NZB)? Tipo de cliente definido como SABnzbd? |
| O painel pede uma chave de API que eu nunca defini | Uma instalação nova cria uma para si mesma e a exibe uma vez na inicialização (§2). Ela está no arquivo apikey ao lado da sua configuração, e na saída de inicialização. Ou digite uma chave própria em Ajustes → Segurança a partir de um navegador que já esteja conectado. |
| Todas as minhas configurações parecem ter sumido depois de uma atualização (servidores, caminhos, chave de API) | Nada numa atualização apaga configurações; isso significa que o nzbfast está lendo uma pasta diferente e vazia. Primeiro: o campo da chave de API em Ajustes aparece em branco de propósito - clique em Show antes de concluir que ela se perdeu. No Docker, compare o mapeamento de /config do contêiner novo com o do antigo: um caminho de host alterado, um caminho relativo rodado de outro diretório ou uma pasta de appdata recém-criada fazem todos o nzbfast começar do zero, enquanto as suas configurações reais seguem intactas no caminho anterior. Encontre a pasta antiga (procure settings.json, seu arquivo de configuração e apikey - locais em §17), então aponte o mapeamento de volta para ela, ou copie esses arquivos para a pasta nova e reinicie. O log de inicialização nomeia o arquivo de configurações exato em uso: [settings] applying saved settings from … |
| Nada na rede consegue alcançar o daemon | Verifique o --bind: 127.0.0.1 atende só a máquina em que o nzbfast roda. O padrão, 0.0.0.0, atende todas as interfaces. Depois verifique o firewall da própria máquina para a porta 6789. |
| O cartão Explorar continua pequeno | O indexador cresce em segundo plano - verifique se os grupos de Ajustes → Indexação estão definidos e dê tempo ao Aprofundar por varredura para acumular histórico. "Varrer agora" força uma passagem; a linha de status mostra o progresso ao vivo. |
| O mural mostra imagens erradas/inexistentes | Folha de detalhes → ✎ Corrigir correspondência ou ↻ Atualizar metadados. Buscas de filmes melhoram com uma chave OMDb gratuita. |
| O macOS diz que o aplicativo "nzbfast" não pode ser aberto | Duas causas, ambas rápidas. Se você usa o zip simples -macos-universal.zip, dê dois cliques em Start nzbfast.command, não no arquivo nzbfast ao lado: esse é o programa em si, e o Finder responde a um clique duplo nele exatamente com esta mensagem. É o lançador que prepara tudo e inicia. Se o lançador der a mesma mensagem, a cópia perdeu o bit de execução do Unix no caminho: o macOS guarda esse bit dentro do .zip, mas apps de chat, drives na nuvem e recompactar não guardam, então uma cópia repassada na mão chega sem permissão de execução. Baixe o .dmg ou o .zip direto da página de releases e isso não acontece. Para salvar a cópia que você já tem: abra o Terminal, digite chmod +x com um espaço no fim, arraste Start nzbfast.command e o arquivo nzbfast para a janela e pressione Return; depois dê dois cliques no lançador de novo. |
| O daemon não inicia: porta em uso | Outra instância está rodando - ou altere --port. |
| Onde estão os logs? | O cartão Log no painel, ou o terminal/arquivo de log com que você iniciou o serve. |
nzbfast --version.nzbfast - este manual acompanha cada versão. Ajustes, endpoints e padrões aqui referenciados correspondem à versão com que ele foi entregue.