⚡ nzbfast
Den hurtige Usenet-downloader - brugermanual
1 · Velkommen
nzbfast henter fra Usenet så hurtigt, som din linje, dine udbydere og din maskine tillader - og som regel betyder det så hurtigt som din linje. Det er ét enkelt selvstændigt program: motoren, et web-dashboard, en postervægs-mediebrowser, en indbygget indexer, realtids-forhåndsvisning, native PAR2-reparation og native RAR-udpakning er alle inde i én eksekverbar fil. Der er ikke andet at installere.
Det, der gør den hurtig, er arkitektur, ikke finjusteringer:
- Pipelinet NNTP - mange artikelforespørgsler rider på hver forbindelse ryg mod ryg og holder hver forbindelse på fuld hastighed i stedet for at vente rundrejser af.
- En one-pass-pipeline - download, verificering og udpakning overlapper. Arkivvolumener udpakkes i strømmen; på en typisk store-mode-post rører RAR-filerne aldrig din disk, så jobbet kræver 1× release-størrelsen, ikke 2×, og bliver færdigt, når downloaden bliver færdig.
- Union på tværs af udbydere - hver konfigureret server bidrager; en artikel, der mangler på én backbone, hentes fra en anden. Langsomme eller døde servere sætter aldrig køen i stå.
- Et hukommelsesbudget - motoren tilpasser sig en begrænset RAM-tildeling og degraderer til disk om nødvendigt. Den swapper aldrig din maskine.
Målt mod feltet på identisk hardware, samme jobs og udbydere har nzbfast fuldført en 190 GB-download på omkring 5 minutter på en 10 GbE-linje - med de førende alternativer 30–220% bagefter på de samme tests, dér hvor de overhovedet fuldførte dem. Tallene står i §3.
2 · Kom hurtigt i gang
macOS
- Åbn
nzbfast-<version>-macos.dmgog træk NzbFast ind i Programmer (universal: Apple Silicon + Intel). - Første start: macOS advarer om, at nzbfast endnu ikke er Apple-notariseret. Højreklik på appen → Åbn - eller åbn Systemindstillinger → Anonymitet & sikkerhed, rul ned, og klik Åbn alligevel. Dette er et engangstrin.
- App-vinduet viser dashboardet med et velkomstkort - klik på det og tilføj mindst én Usenet-server (host, port 563, brugernavn, adgangskode). Du kan tilføje flere senere under Indstillinger.
- Slip en
.nzbhvor som helst på dashboardet - eller dobbeltklik bare på.nzb-filer i Finder. Downloads lander i~/Downloads/nzbfast. Afslut fra menuen; downloads genoptager, hvor de slap.
Vil du hellere undvære app'en? Den almindelige zip (binær +
Start nzbfast.command-starter, samme motor) virker stadig som før -
trin nedenfor under "Fra en terminal".
Windows
- Kør
nzbfast-<version>-windows-x64-setup.exe. Den installeres kun for din bruger (ingen administratoradgangskode). Da denne udgivelse endnu ikke er kodesigneret, viser SmartScreen måske "Windows beskyttede din pc" - klik Flere oplysninger → Kør alligevel. - nzbfast bor i systembakken: dobbeltklik på bakke-ikonet (eller brug Åbn dashboard i dets højrekliksmenu) for at åbne dashboardet, og tilføj så din Usenet-server fra velkomstkortet. Bakke-menuen har også Pause/Genoptag, din downloadmappe og Afslut.
- At dobbeltklikke på en
.nzb-fil sætter den i kø. Windows Defender spørger måske én gang om at tillade lytning på det lokale netværk - tillad det.
Vil du hellere have en bærbar kopi? -windows-x64.zip virker stadig: pak ud
hvor som helst og dobbeltklik på nzbfast.exe (eller Start nzbfast.bat)
for terminal-guiden.
Fra en terminal (enhver platform)
nzbfast setup # interactive server setup (writes config.local.json)
nzbfast serve --open # start the daemon and open the dashboard
nzbfast import-sab på kommandolinjen.Din API-nøgle
På en helt ny installation laver nzbfast selv en API-nøgle, første gang daemonen starter, og skriver den ud én gang i et banner lige under dashboardets adresse. Fra da af kræver hver forespørgsel den nøgle, så dashboardet og API'et ikke står åbne for alt, hvad der kan nå maskinen.
Hvad du skal gøre med den, afhænger af, hvordan du startede nzbfast:
- macOS-appen, Windows-bakken eller
serve --open: ingenting. De giver nøglen videre til det browservindue, de åbner, dashboardet husker den, og du er allerede logget ind. - En browser, du selv har åbnet, eller dashboardet på en telefon eller en anden computer: siden spørger om nøglen én gang og husker den derefter.
- Sonarr, Radarr, nzb360 og lignende: indsæt den som deres SABnzbd- eller NZBGet-nøgle (§11, §12).
Nøglen gemmes i en fil ved navn apikey ved siden af din
konfigurationsfil, så den er den samme på tværs af genstarter, og du kan læse den
igen, når du har brug for det. På macOS og Linux kan den fil kun læses af den konto,
der kører nzbfast. Den står også i daemonens egen udskrift, så dashboardets Log-kort
har den, hvis terminalen er rullet væk.
Vil du hellere bruge din egen nøgle, skriver du den ind under Indstillinger →
Sikkerhed; den træder i kraft med det samme. Det panel ændrer nøglen, men viser
aldrig den nuværende, så læs filen apikey, hvis du har brug for den
genererede værdi igen. Vil du køre helt uden nøgle, fordi noget foran nzbfast
allerede håndterer login, så start den med NZBFAST_OPEN=1 i miljøet.
nzbfast forbliver så åben og siger det ligeud ved opstart.
Hvilke maskiner der overhovedet kan nå daemonen, er et separat valg:
serve --bind. Standarden er 0.0.0.0, altså hver eneste
netværksgrænseflade, fordi en NAS-boks, en telefon og en Sonarr på en anden computer
alle skal kunne forbinde. --bind 127.0.0.1 indsnævrer det til den
maskine, nzbfast kører på, hvilket er det, du vil have på en enkelt stationær
computer, hvor intet andet har brug for adgang.
3 · Sådan virker nzbfast
En hurtig ordliste, så resten af manualen er let at læse:
| Begreb | Betydning |
|---|---|
| Udbyder / server | En Usenet-tjeneste, du har en konto hos (Newshosting, Eweka, XS News…). Hver tillader et vist antal samtidige forbindelser. |
| Backbone | Infrastrukturen bag en udbyder. Flere brands videresælger ofte den samme backbone - nyttigt at vide, fordi to udbydere på én backbone mangler de samme artikler. Se Server-diversitet. |
| NZB | En lille XML-fil, der viser de artikler, en post består af. Det er den, du fodrer nzbfast med. |
| PAR2 | Genoprettelsesdata, der postes sammen med en release. nzbfast verificerer mod den under downloaden og reparerer automatisk, når artikler er beskadigede eller mangler. |
| Store-mode-RAR | De fleste releases er pakket i RAR-volumener uden komprimering. nzbfast genkender dette og skriver den indre fil direkte til dens endelige placering, mens den henter - ingen udpakningsfase bagefter. |
Pipelinen kører download → afkod → verificér → udpak samtidig. Pipeline-kortet på dashboardet viser alle tre baner bevæge sig på én gang. Når den sidste byte ankommer, er verificeringen allerede færdig, og filen er allerede udpakket; et typisk jobs "efterbehandlings"-tid er nul. Er reparation nødvendig, materialiseres volumenerne først da til disk, repareres på stedet af den native GF(2¹⁶)-motor (omdøbte eller byte-forskudte obfuskerede data findes og adopteres af en glidende blokscanning) og udpakkes igen - alt automatisk.
Afbrudte downloads (crash, strømsvigt, kill -9) genoptager fra artikel-journalen: bytes, der allerede ligger på disken, hentes aldrig to gange. Journalen registrerer, hvor hver artikels bytes fysisk landede - selv bytes, der blev direkte-udpakket ind i den endelige fil - så en genoptagelse genopbygger fra lokal disk og genverificerer alt, den gendannede, mod PAR2-blok-mappet, før den stoler på det.
Sådan står det til sammenligning
Målt mod SABnzbd 5.0.4 og NZBGet 26.2 på samme maskine, samme udbydere og samme NZB'er, taget tid til en brugbar fil - download, verificering, reparation og udpakning alt inkluderet, for det er, når jobbet reelt er færdigt:
| Jobstørrelse | 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 m 00 s | +30% | +111% |
Forskellen er den efterbehandling, de andre stadig skal lave, efter den sidste byte lander. Begge konkurrenter blev tunet til sammenligningen, ikke efterladt på standardindstillinger - SABnzbd leveres i særdeleshed med anmodnings-pipelining slået fra, hvilket koster den dyrt, så den blev slået til.
To forskelle betyder lige så meget som tiderne:
- Diskplads. One-pass kræver 1× release-størrelsen; klienter, der skriver arkivvolumener og så pakker dem ud, kræver 2×. På en testmaskine med 97 GB fri blev et 87 GB-job færdigt her på 3 m 08 s, og de to andre kunne slet ikke køre.
- Hukommelse. På 190 GB-jobbet var topforbruget 3.9 GB mod SABnzbds 9.3 GB - og nzbfast klarer samme job på cirka 1 GB, hvis den får besked på det (se Hukommelsesbudget).
4 · Dashboardet
Åbn http://localhost:6789 (eller din maskines adresse fra en anden
enhed - telefonlayoutet tilpasser sig automatisk). Alt opdateres live, én gang i
sekundet. Kortene, oppefra og ned:
Header-bjælken
- Hastighedsgrænse-menu - faste lofter, auto · giv plads til LAN (en RTT-styret tilstand, der trækker sig, når en anden i huset har brug for linjen) eller ubegrænset.
- Pause i… - sæt alt på pause i 15 min/30 min/1 t/3 t med automatisk genoptagelse, eller brug Pause-knappen for en tidsubestemt pause. Pause er øjeblikkelig: den aktive overførsel stopper inden for få sekunder og genoptager senere fra journalen uden at miste noget. (Job med Tving-prioritet henter videre, SABnzbd-stil.)
- Et opdateringsbanner dukker op her, når en ny version er tilgængelig (se Opdateringer).
Gennemløb
Live MB/s med et rullende diagram; de stiplede vandmærker markerer denne sessions høj/lav, den svage linje er et glidende gennemsnit. Nedenunder viser et histogram, hvordan sessionens hastighedsmålinger fordeler sig - typisk vs. top. Gør vinduet bredere, og diagrammerne viser mere historik (op til en time).
Statistik-fliser
Hentet i denne session, kødybde, antal fuldført/mislykket, sessionens tophastighed.
Ressourcer - én maskine, fire lofter
CPU, RAM (mod nzbfasts hukommelsesbudget), diskskrivningshastighed og netværk på ét normaliseret diagram, med rigtige værdier i signaturforklaringen og en advarsel ved lav disk. Ingen anden NZB-klient viser dig dette; det findes for at bevise en pointe - nzbfast maksimerer din linje, ikke din maskine.
Pipeline - faser overlapper
Tre baner: download, verificér (PAR2-blokke tjekket), udpak. På et sundt job bevæger alle tre sig sammen.
Udbydere
Live-hastighed pr. server, forbindelsesudnyttelse, andel af trafikken, sessions-GB og en livstids-score for artikel-fuldførelse (farvet, når en server falder under 98%). Et stablet arealdiagram viser hver udbyders bidrag over tid. Rækker gensorteres efter live- ydelse hvert 10. s (kan konfigureres under Indstillinger → Grænseflade), så din hurtigste udbyder altid er øverst.
Kø
- Træk rækker for at ændre rækkefølge (inden for et prioritetsbånd - Tving/Høj kører stadig først); skift prioritet inline.
- Klik på en række for detaljeskuffen: fremgangsbjælker pr. fil, antal verificerings-
blokke, hvilken server der bidrog med hvor meget til dette job, og en
"tilføjet af"-linje, der fortæller, hvor jobbet kom fra (watch-mappen, en tilsluttet
app, API'et…). Knappen Hent .nzb-filen gemmer jobbets
.nzb-fil - nzbfast beholder sin egen kopi, så det virker for hvert job, selv når den originale fil for længst er væk. - Mærker viser særlige tilstande: udskudt (langsom), prefetcher, på pause (se Ydelsesværktøjer).
- Et nedtællingsdiagram følger de samlede GB, der er tilbage i hele køen.
Gennemse indeks
Søg i alt, hvad den indbyggede indexer har katalogiseret fra dine overvågede grupper (se Automatisering) og hent med ét klik - ingen ekstern indexer nødvendig. Statuslinjen viser scanningsfremgang; Scan nu fremtvinger en gennemgang.
Overvågningsliste
Tilføj titler ved navn - også dem, der endnu ikke er postet. Når en matchende release dukker op i indekset, hentes den automatisk, med kvalitetspræferencer og opgraderingsregler (en bedre kopi erstatter en dårligere).
Historik
Seneste downloads, én række hver. Mislykkede jobs tilbyder Prøv igen
(genoptager fra journalen). Krypterede arkiver viser en 🔑 lås-op-kontrol - indtast
adgangskoden, og jobbet bliver færdigt på stedet. Verificerings-sundhedsstriben viser defekte PAR2-
blokke pr. download - en stigende hale betyder, at artikler kommer beskadigede frem.
Hver rækkes skuffe fortæller, hvem der tilføjede jobbet, og har den samme
Hent .nzb-filen-knap som køen - praktisk til at hente en release igen et andet
sted, eller til at vedhæfte dens .nzb til en fejlrapport.
Kortet viser ti downloads som standard, og resten er ét klik væk, på knappen ▤. Status, placering og årsagen til et fejlet job ligger bag et klik på selve rækken, så det almindelige tilfælde - hvad der blev færdigt, hvor stort, hvornår - forbliver læsbart uden at scrolle. Træk i kortets nederste kant for i stedet at lade listen scrolle i en højde, du selv vælger. History rows under Indstillinger → Grænseflade ændrer de ti; da det er en egenskab ved daemonen og ikke ved din browser, gælder det enhver enhed, der kigger på denne installation. Colour History names ved siden af farver færdige navne grønne og fejlede røde; slået fra forbliver navnene neutrale, og den farvede prik og rækkens egne detaljer siger stadig, hvad der er hvad.
Dataforbrug
Daglige bjælker pr. udbyder og totaler for I dag / 7 dage / 30 dage - uundværligt for målte og blok-konti. Blok-konti viser livstidsforbrug mod deres størrelse.
Log, System-benchmark, Forbindelsestuning, Server-diversitet
En logfremviser på siden og de tre selvmålingsværktøjer beskrevet i Ydelsesværktøjer.
5 · Tilføj downloads
| Metode | Hvordan |
|---|---|
| Træk & slip | Slip en eller flere .nzb-filer hvor som helst på dashboardet. |
| Watch-mappe | Vælg en mappe under Indstillinger; enhver .nzb, der gemmes i den, opfanges
inden for 5 sekunder og flyttes til papirkurven, og et åbent dashboard melder hver
afhentning ved navn ("… hentet fra Downloads"), så en fil, der forlader mappen,
aldrig er et mysterium. Vil du hellere beholde dine filer? Slå Behold .nzb-filer
efter afhentning til (se §9). Peg din browsers downloadmappe
mod den for hentninger med ét klik fra indexer-sites. |
| Fra en URL | Indsæt et NZB-link (API mode=addurl, eller via en tilsluttet app). |
| nzblnk:-links | Indsæt et nzblnk:-link hvor som helst på dashboardet, eller træk det ind. Har du installeret fra macOS-DMG'en eller Windows-installationsprogrammet, kan du også klikke på et direkte på et board. Se nzblnk-links nedenfor. |
| Gennemse indeks | Klik på en hvilken som helst komplet release i Gennemse-kortet. |
| Overvågningsliste / RSS | Automatisk - se Automatisering. |
| Sonarr/Radarr osv. | De sender hentninger direkte til køen - se §11. |
| Kommandolinje | nzbfast get file.nzb henter uden daemonen. |
Kategorier, prioriteter, adgangskoder
- Kategorier er frie labels; hver bliver til en undermappe i din downloadmappe, og Smarte mapper (se §10) kan tildele dem efter regel.
- Prioriteter: Tving > Høj > Normal > Lav. Tving omgår pause og kvote.
- Adgangskoder til krypterede arkiver hentes automatisk fra
<meta type="password">inde i NZB'en, fra et filnavnName{{password}}.nzbeller fra feltetp=i et nzblnk-link, og kan angives pr. job via API'et eller bagefter fra Historik (🔑).
nzblnk-links
Nogle boards, mest tyske og hollandske, udgiver et nzblnk:-link i stedet
for en NZB-fil. Indlægget er sløret, så der er slet ikke noget filnavn at linke til.
Linket bærer i stedet et header, h=, som er en søgenøgle og ikke et sted,
plus en valgfri titel t=, en adgangskode p= og en gruppe
g=. Nogen skal først ud og finde indlægget.
nzbfast slår headeren op i sit eget indeks først, hvilket slet ikke kræver netværk, og kun hvis det ikke rammer, spørger den de søgeindeksere, du har sat op (Indstillinger → Søgeindeksere, §9), under de samme dagsbudgetter og den samme backoff som enhver anden søgning. Titlen bliver jobbets navn, og adgangskoden lægges automatisk på jobbet.
- Indsæt eller træk virker på enhver installation, Docker og NAS-kasser inklusive: kopiér linket fra boardet og indsæt det hvor som helst på dashboardet.
- At klikke på et link kræver, at skemaet er registreret hos dit skrivebord. Appen fra macOS-DMG'en registrerer det, og Windows-installationsprogrammet tilbyder det som en opgave: det spørger først og lader skemaet være, hvis NZB Monkey eller NZBDonkey allerede har det. Den rene macOS-tarball, Homebrew og Linux-installationerne har ingen skrivebordshåndtering, dér er indsætning vejen ind.
- Opslaget er hastighedsbegrænset med vilje. Et registreret skema ligger én browserdialog fra enhver side, du besøger, så links har et loft pr. minut, og kun de første få i et minut må nå dine indeksere; derefter besvares de alene ud fra det lokale indeks.
6 · Postervæggen
Klik på 🎬 væg i headeren. Væggen forvandler dit indeks til en medie- browser: hver genkendt film- og tv-release som en posterflise med bedømmelse, år, genrer, medvirkende og synopsis - dine newsgroups, til at gennemse som et katalog.
- Faneblade til Film / Serier / Andet, øjeblikkelig søgning og syv sorteringer: Til dig, Nyeste poster, Udgivelsesår, Bedst bedømt, Titel A–Z, Største og Mest postet.
- Kun matchede er slået til som standard og skjuler uidentificeret skrald; en "+N umatchede"- chip viser det.
- Klik på en flise for detaljearket: synopsis, IMDb-bedømmelse og stemmer, medvirkende - og ▶ Afspil (forhåndsvis den med det samme, se §7) eller ⬇ Download.
- ✎ Ret match - hvis en titel matchede den forkerte serie eller film, vælg den rigtige blandt kandidatposterne, eller indtast titel/år/type manuelt. Manuel tekst overskrives aldrig af berigelsen. ↻ Genopfrisk metadata henter én titel igen; Indstillinger → Indeksering kan genopfriske alle eller slette/genopbygge hele indekset.
- Metadata er nøglefri som standard - TVmaze, iTunes, IMDb-datasæt, Wikidata, Wikipedia og AniList kræver ingen konti. En OMDb-nøgle (gratis, kun e-mail-tilmelding - der er en tilmeldingshjælper under Indstillinger → Indeksering) forbedrer filmmatchning; en TMDB-nøgle respekteres, hvis du allerede har en.
- Til dig rangordner væggen efter en smagsprofil, der bygges på denne maskine ud fra din egen fuldførte historik og din overvågningsliste: yndlingsgenrer, om du hælder til film eller serier, og cirka hvilken æra. Titler, du allerede har, synker til bunden i stedet for at forsvinde, og en billedtekst »Fordi du ser …« fortæller, hvad den gik efter. Uden historik falder den tilbage på Mest postet, så fanebladet er aldrig tomt. Intet af dette forlader daemonen.
- Ikke interesseret på et felt skjuler den titel, og skjuler du et par lignende, lærer væggen noget: den foreslår et filter, du godtager med ét klik (»Skjul alle Reality-titler fra nu af?«). Alt det skjulte, og hvert lært filter, står under Skjult & filtre og kan fortrydes der.
- En lille tilgængelighedsprik på et felt er oraklets dom (§13): et gult »?« betyder usikkert hos dine udbydere, rødt at delene bliver ved med at mangle. Hele grupper, der er ved at blive ryddet, får et ryddet-mærke.
7 · Forhåndsvisning & verificering
Du behøver ikke vente på, at en download bliver færdig, for at vide, om det er den rigtige fil. Åbn den, mens den henter, tjek at indhold, sprog og kvalitet er som forventet, og annuller tidligt, hvis de ikke er - i stedet for først at opdage det efter hele downloaden.
- ▶ Afspil på væggen (eller
/m3u/<id>) giver din medieafspiller en URL; daemonen starter eller genbruger downloaden bag den. /stream/<nzo_id>-endpointet serverer filen med fuld HTTP- range-understøttelse, mens den henter. Kontrol af ethvert punkt virker: tag en stikprøve ved minut 40, og artiklerne til det område promoveres forrest i downloadkøen - den åbner der på et par sekunder i stedet for minutter. Filens hoved og hale hentes først, så afspillere finder deres indeksdata med det samme.- Bibliotekstilstand: kategorier angivet i library_cats bliver til øjeblikkelige
metadata-kun-poster - en
.strm-fil dukker straks op, tilgængeligheden verificeres i baggrunden, og den rigtige download starter, når du åbner den første gang.
/stream-URL'er. For at kontrollere fra en anden maskine: brug din maskines LAN-adresse i
stedet for localhost.?t=…) at åbne en parkeret biblioteks-post over /stream/<id>
- afspillere kan ikke sende API-nøgler, så /m3u-overdragelsen
og .strm-pegepinden indlejrer den for dig; at udstede den (/m3u)
kræver nøglen. Ren byte-servering af en allerede aktiv download er fortsat åben, og
nøglefri installationer opfører sig som før.8 · Usenet-servere
Indstillinger → Usenet-servere er den fulde editor: tilføje, redigere, fjerne, omarrangere og tage enhver server ind i eller ud af puljen. Hver server har:
| Felt | Noter |
|---|---|
| Host / port | Brug SSL-port 563. TLS koster intet måleligt - nzbfast krypterer altid. |
| Brugernavn / adgangskode | Gemmes lokalt i config.local.json, vises aldrig tilbage til browseren. Lader du adgangskoden stå tom ved redigering, beholdes den gemte. Adgangskoder er sløret på disken, ikke krypteret. |
| Forbindelser | Samtidige forbindelser pr. server. Brug Forbindelsestuning (§13) til at finde hver udbyders bedste punkt frem for at gætte højt. |
| Niveau (tier) | 0 = primær; højere niveauer er fill-servere, der kun spørges om artikler, som alle lavere niveauer missede. Sæt ubegrænsede konti på 0, blok-konti på 1+. |
| Blokstørrelse (GB) | Til blok-konti (betaling pr. GB): nzbfast holder styr på livstidsforbruget mod dette og holder op med at bruge serveren, når den er brugt op (advarsel ved 85%). |
Lad der være lidt luft under kontoens forbindelsesgrænse. At sætte forbindelserne lidt under grænsen koster ingenting: gennemløbet flader ud længe før de sidste en eller to forbindelser, og Forbindelsestuning (§13) lander alligevel under. Det er de ledige pladser, der lader en anden enhed, et andet program eller et nyt forsøg efter en afbrudt socket komme ind alligevel i stedet for at blive afvist, mens denne her optager hver eneste plads.
Sådan gemmes dine udbyderadgangskoder
Udbyderadgangskoder i config.local.json er sløret, ikke
krypteret. De gemmes som obf1: efterfulgt af en kodet form, så filen
ikke læses som ren tekst, hvis den dukker op i et skærmbillede, et forumindlæg, en
fejlrapport eller på en skærm, en anden kan se.
Lad os være tydelige om, hvad det giver dig, og hvad det ikke giver:
- Det er ikke kryptering og beskytter slet ikke mod nogen, der har filen. Metoden står i vores offentlige kildekode, og afkoderen følger med inde i nzbfast, så den, der har filen, henter adgangskoden ud på sekunder. Behandl filen som hemmelig præcis som du ville, hvis adgangskoderne var læsbare.
- Det fjerner den tilfældige lækage, og det er den almindelige. Konfigurationer bliver klistret ind i supporttråde og fanget på skærmbilleder langt oftere, end de bliver stjålet fra disken.
- En adgangskode, du selv har skrevet ind som ren tekst, virker stadig. nzbfast læser begge former, så håndredigerede konfigurationer og import fra andre klienter går aldrig i stykker; næste gang der gemmes, skrives den slørede form.
- Filen skrives desuden læsbar kun for den konto, der kører nzbfast (tilstand 0600 på macOS og Linux).
Til sammenligning gemmer NZBGet og SABnzbd begge udbyderadgangskoder som læsbar ren tekst i deres konfigurationsfiler. Vi mener, at sløring er en lille forbedring oven på det, ikke en sikkerhedsfunktion.
Hvorfor ikke systemets nøglering? macOS Keychain, Windows Credential Manager og Linux' secret services ville give ægte beskyttelse, og vi vender måske tilbage til det. To ting stopper os i dag. Adgang til nøgleringen hænger på programmets identitet, og nzbfast er endnu ikke kodesigneret, så dialogerne og opførslen efter hver opdatering er dårlige. Og en stor del af installationerne er Docker, servere uden skærm og NAS-kasser, hvor der slet ikke findes en nøglering, hvilket ville efterlade to forskellige lagringsveje at holde korrekte. Ét velforstået format, der opfører sig ens alle steder, er indtil videre den bedre handel.
To yderligere indstillinger pr. server har endnu ingen betjening i dashboardet:
skriv dem i hånden ved den servers post i config.local.json
(se §17), og genstart.
| Nøgle | Noter |
|---|---|
bind_ip | Binder denne servers udgående forbindelser til en bestemt lokal adresse, til maskiner med flere udgange og delte VPN-tunneler. Adressefamilien vælger samtidig målfamilien: en v4-binding forbinder til serverens v4-adresse. |
socks5 | Sender denne servers NNTP-trafik gennem en SOCKS5-proxy: host:port, eller user:pass@host:port. Værtsnavnet slås op af proxyen, så der er intet lokalt DNS-læk. |
- Fluebenet ved siden af hver server er dens til/fra-kontakt: sat betyder, at serveren er med i download-puljen, ikke sat betyder deaktiveret. En deaktiveret server beholder sine loginoplysninger og indstillinger og kan stadig testes; den bliver bare aldrig bedt om artikler. Rækken tones ned, tællingen i overskriften (2 af 3 aktive) falder, og ændringen gælder fra næste download. Nyttigt til at spare på en blokkonto, eller til at bevise at én udbyder står bag et problem uden at slette den.
- Test laver en rigtig forbindelse + TLS + login og rapporterer rundrejsetiden.
- Importér fra SABnzbd / NZBGet… scanner de sædvanlige installationsplaceringer, viser, hvad den fandt, og kopierer servere ind (springer dubletter over).
- Serverændringer gælder fra den næste download - ingen genstart.
9 · Indstillingsoversigt
Næsten alt kan indstilles fra dashboardet under ⚙ Indstillinger; de fire
undtagelser står sidst i dette afsnit. Værdier mærket
live gælder med det samme;
restart-værdier ved næste opstart. Hver ændring, der
foretages her, gemmes i settings.json og overlever genstart (værdier fra
brugerfladen slår flag på kommandolinjen).
Hastighed & planlægning live
| Indstilling | Hvad den gør |
|---|---|
| Hastighedsgrænse | Loft i bytes/sek. (50M, 1G, 0 = ubegrænset). Fjern-apps kan sende procenter - sæt Linjehastighed, så de oversættes korrekt. |
| Auto-hastighed | RTT-styret loft, der viger for anden trafik i husstanden og udvider sig igen, når linjen er stille. |
| Udskyd langsomme downloads automatisk | Et job, der hænger på én langsom server, mens andre venter, flyttes bagest i køen (fremgang beholdes). Se §13. |
| Prefetch på ledige servere | Servere, der er ubrugelige for det aktive job, starter det næste i køen. Se §13. |
| Auto-opdatering / URL til opdateringstjek | Se §14. |
| Linjehastighed | Din forbindelses angivne hastighed - muliggør procentvise grænser fra SABnzbd-kompatible apps. |
| Ugeplan | Rækkeeditor til regler efter ugetidspunkt: pause, genoptag eller sæt en hastighedsgrænse på givne dage/tidspunkter (lokal tid). F.eks. begræns til 20 MB/s på hverdage 9–17, ubegrænset ellers. |
Næste download live
Forbindelser (pr. server), vindue (pipelining-dybde pr. forbindelse), decodere (parallelle afkodningstråde). Aflæses, når hvert job starter. Standardværdierne passer til de fleste linjer; brug tuning-værktøjerne, før du hæver blindt.
Kontrol under download vælger, hvor meget der verificeres, mens data kommer ind. Fuld bekræfter hver PAR2-blok med MD5. Hurtig (standard) gør krav på blokke via CRC32, hvilket er 2-3x hurtigere på en langsom CPU, og verificerer stadig hver artikels egen kontrolsum. Let springer desuden de artikelkontrolsummer over, så snart PAR2 dækker en fil: skaden dukker så op et øjeblik senere, ved sin blok. I alle tre bruger den afsluttende runde og enhver reparation fuld MD5, og et download uden PAR2-filer beholder sine artikelkontrolsummer.
Disk & kvote live
Minimum fri plads (sæt nye jobs på pause under den; 2 GB som standard, 0 slår det fra), downloadkvote pr. dag eller måned (UTC; Tving-jobs omgår den), hukommelsesgrænse - motorens RAM-budget (standard: ¼ af RAM, med loft; hæv den på en maskine med meget RAM for maksimal hastighed på kæmpe jobs, og se hvad lav hukommelse koster, før du sænker den) genstart.
Flyt fuldførte til: efter udpakning, oprydning og omdøbning flyttes
færdige downloads hertil - et NAS-share, et mediedrev, dér hvor dit bibliotek
bor. Kategoristrukturen bevares (et job, der blev færdigt under
tv/, lander under tv/ på destinationen), og
historikken følger med flytningen, så tilsluttede apps importerer og sletter på
den nye placering. Er destinationen utilgængelig, når et job bliver færdigt
(share offline, ikke mere plads), bliver filerne i downloadmappen, og jobbet
fuldføres alligevel helt normalt. Tom = fra. Destinationer pr. kategori
sender bestemte kategorier et andet sted hen (tv=/Volumes/NAS/TV, movies=/Volumes/NAS/Movies); hver angivet sti
er den kategoris mappe, så der oprettes ingen ekstra
kategoriundermappe i den. Kategorier uden en regel følger Flyt fuldførte
til.
Dybde for indlejrede arkiver (standard 5) er, hvor mange lag arkiv-i-arkiv der pakkes ud automatisk: et RAR-sæt med en 7z indeni, som igen indeholder en RAR, er normalt på Usenet, og nzbfast følger kæden uden en ekstra omgang. Ved grænsen bliver det dybeste arkiv simpelthen liggende, ikke pakket videre ud, og downloadet fuldføres alligevel. Hæv den kun til usædvanligt dybe udgivelser.
Auto-omdøbning & oprydning live
Omdøb færdige downloads (slået til som standard) giver mappen og hovedfilen
et rent, sigende navn: en film bliver Example Movie (2024), serier beholder
Show - S01E02. Slørede eller ukendte navne får lov at stå præcis som
postet i stedet for at blive gættet.
| Indstilling | Hvad den gør |
|---|---|
| Medtag opløsning | Sætter 1080p, 2160p… i navnet. Slået til som standard; de øvrige fire mærker er slået fra. |
| Medtag videocodec | x265, x264, AV1… |
| Medtag lydcodec | Atmos, DTS-HD, AC3… |
| Medtag kilde | BluRay, WEB, REMUX… |
| Medtag release-gruppe | Mærket -GROUP til sidst. |
| Fjern skraldefiler | Slået til som standard. Sletter efterladte .par2, .nzb, .sfv, .nfo og sample-klip fra færdige film- og seriemapper. Aldrig videoen eller dens undertekster. |
| Behold kun mediefilen | Slået fra som standard, og destruktiv: sletter permanent alt i mappen undtagen videoen (eller videoerne) og underteksterne. Hvert afsnit i en sæsonpakke bevares. Går forud for Fjern skraldefiler, når begge er slået til. |
| Keep the other words in the name | Slået til som standard. Sport, løb og andre begivenheder er ofte én og samme titel gentaget hele sæsonen, kun et ord eller to fra hinanden - "Round11 Hungary Race" over for "Round11 Hungary Qualifying". At beholde de ord er det, der forhindrer en hel sæson i at falde sammen til samme navn. Gælder kun, hvor navnet ikke kunne ryddes op på anden vis, så almindelige film og afsnit røres ikke. |
Hele gruppen kører efter reparation og udpakning og før Flyt fuldførte til, og springes helt over for et job, der stadig venter på en adgangskode. Begge sletttrin gælder kun udgivelser, der er genkendt som film eller serie: en softwarelast eller et sæt, der ikke kan klassificeres (sløret), bliver aldrig ryddet.
Slettede filer ryger i papirkurven afgør, hvad "slette" betyder ovenfor. Slået til flytter oprydningen filer til systemets papirkurv, så et forkert gæt om, hvad der var skrald, kan fortrydes; slået fra slettes de med det samme. Den er slået til som standard på macOS og Windows, hvor papirkurven er et sted, du kan se og tømme, og slået fra som standard på Linux, hvor den som regel ikke er det.
.Trash-1000 (tallet
er dit bruger-id) øverst på downloaddisken og flytter filerne derhen i stedet.
Intet viser dig den mappe, intet tømmer den, og pladsen, den holder på, kommer
aldrig tilbage.
Har du kørt en tidligere version af nzbfast på Linux med den slået til, så kig efter den mappe i roden af dit download-share. Den er sikker at tømme: alt i den er filer, en oprydning allerede har afgjort, at du ikke ville have. nzbfast tømmer den ikke for dig, for den ligger på din disk, og det er dig, der dømmer.
Mapper & behandling
Downloadmappe genstart, watch-mappe,
efterbehandlingsscript (kører efter hvert job med SABnzbd-kompatible argumenter
og SAB_*-miljø - eksisterende SAB-scripts virker uændret),
oprydningsendelser (skraldfiler slettet efter fuldførelse), Smarte mapper
og tv-arkivering (se §10).
Behold .nzb-filer efter afhentning (slået fra som standard) lader den
originale .nzb blive i watch-mappen, efter den er sat i kø, i stedet
for at flytte den til papirkurven - for samlere, og til at give filen videre, når en
download driller. En beholdt fil huskes, også på tværs af genstarter, og sættes ikke
i kø igen; gem den igen for at hente den på ny. Uanset hvad du vælger, har hvert
jobs skuffe en Hent .nzb-filen-knap, så en kopi af ethvert jobs
.nzb aldrig er mere end et klik væk.
Indeksering live
| Indstilling | Hvad den gør |
|---|---|
| Indbygget indekser | Hovedkontakten, slået fra medmindre du slår den til. Fra betyder ingen skanning, ingen metadataopslag, ingen tilgængelighedsstikprøver og intet newznab-feed; et indeks, der allerede ligger på disken, bevares (der er en sletteknap), så at slå til igen fortsætter i stedet for at skanne forfra. |
| Grupper | Newsgroups, som den indbyggede indexer scanner (f.eks. alt.binaries.teevee). |
| Scanningsinterval | Sekunder mellem gennemgange (standard 900). |
| Backfill-artikler | Headers hentet ved en gruppes allerførste scanning. |
| Uddyb pr. scanning | Hver gennemgang indekserer også så mange ældre artikler og lader din søgbare historik vokse i baggrunden, indtil Maks-alder er nået (standard 200,000 pr. gennemgang ≈ titusinder af millioner artikler pr. døgns oppetid). |
| Maks-alder | Ignorér poster ældre end dette (90d, 6m, 2y) - begrænser indeksstørrelse og scanningstid. |
| Beskær til aldersvinduet | Slået til som standard. Sletter også allerede gemte udgivelser, når de bliver ældre end Maks. alder, så indekset holder omtrent det vindue i stedet for at vokse i det uendelige. Slået fra = kun nye poster filtreres, og det gemte bliver stående. Døde skraldefragmenter (skjulte, stadig ufuldstændige efter en uge) høstes under alle omstændigheder. |
| Ingest-filtre | JSON-regler, der filtrerer, hvad der kommer ind i indekset: typer (obfuskeret skrald droppes som standard), år/opløsning/sprog, størrelsesgrænser. |
| Scan nu / dyb genscanning | Kør en gennemgang med det samme; med en dybde genscannes så mange nylige headers. |
| OMDb-nøgle / genopfrisk metadata / slet | Kontroller til væg-berigelse (§6). Slet genopbygger databasen fra bunden - genoprettelsesvejen, hvis den nogensinde bliver korrupt. |
| Pre-feed | Slået fra, indtil du slår det til. Mange uploads udgives uden deres navn, og så har en skanning intet at læse. Offentlige relækanaler annoncerer det rigtige navn, den eneste åbne vej til at parre de indlæg. At slå til holder en forbindelse til et IRC-net åben og lytter: der sendes aldrig noget, og der oprettes ingen konto. Kræver at indekseringen er slået til, for et feed uden et sted at lægge det, det hører, er bare en socket, der står åben til ingen nytte. |
| Relæserver, Relækanaler | IRC-nettet, der bærer annonceringerne (vært eller vært:port), og kanalerne at lytte med i, kommasepareret. En ændring træder i kraft ved næste forbindelse: slå feedet fra og til igen for at anvende den straks. |
| Navngiv ved korrelation | De offentlige direkte relæer bærer ingen filnavne, så de fleste sløre indlæg kan ikke parres direkte. Hvad en annoncering derimod fastslår, er hvornår en udgivelse dukkede op, og hvor stor den er. Dette sammenligner annonceret tid og størrelse med navnløse indlæg og foreslår, når de passer, det rigtige navn under Gennemse. Et forslag er markeret som et forslag, kræver dit klik og omdøber aldrig filer på disken. |
| Anvend stærke match automatisk | Slået fra som standard, og streng når den er til: størrelsen skal passe tæt, ingen anden annoncering må passe næsten lige så godt, og annonceringen skal vælge dette indlæg tilbage ved kontrollen den anden vej. Et anvendt navn ændrer kun, hvordan udgivelsen vises, er markeret som udledt og trækker sig selv tilbage, hvis en færdig download modbeviser det. Alt svagere forbliver et forslag. |
| Annonceringshistorik | Det direkte feed hører kun annonceringer fra efter det blev slået til. Dette henter cirka seks måneders tidligere annonceringer fra en offentlig pre-database, høfligt og én gang, så også allerede indekserede indlæg kan parres. Kører en halv times tid i baggrunden. |
Bibliotek, Sikkerhed, Grænseflade
Bibliotek: kategorier behandlet som øjeblikkelige biblioteksposter + gentjek-interval. Sikkerhed: den fulde API-nøgle (alt) og NZB-nøglen (kun-tilføj - sikker at give til indexer-sites), begge kan roteres live. Hvert af felterne erstatter den nøgle, det hører til, så snart du forlader feltet, og lader du et felt stå tomt, beholder det den nøgle, det allerede har. API-nøglen har desuden Show, som viser og kopierer den nuværende nøgle, så du kan sætte den ind i Sonarr, Radarr eller NZB360, når det passer dig, og Create new, som laver en afløser - den gamle nøgle holder op med at virke med det samme, så alt, der allerede er forbundet, skal have den nye. Begge afhænger af selve API-nøglen: den kun-tilføjende NZB-nøgle kan ikke læse den, hvilket er hele pointen med den nøgle. Hvor nøglen kommer fra på en ny installation, se §2. Grænseflade: kliklyde, skrivebords-notifikationer ved fuldførelse, interval for gensortering af udbydere.
Hastighedsenheder live afgør, hvordan hver hastighed vises i dashboardet: megabyte (MB/s, normen blandt downloadprogrammer, standarden) eller megabit (Mb/s, sådan som udbydere angiver linjer). Filstørrelser bliver i byte. Det er en egenskab ved daemonen, ikke ved din browser, så det gælder hver enhed, der kigger på denne installation.
Avanceret: knapperne bag de indlysende
Seks indstillinger uden flag på kommandolinjen. Hver har nu en avanceret række på det
indstillingskort, den hører til, og kan stadig sættes via API'et
(§16), f.eks.
/api?mode=config&name=verify_mode&value=lean&apikey=…. Som
alle andre gemmes de i settings.json.
| Navn | Hvad den gør |
|---|---|
verify_mode | full | fast | lean (standard fast). lean er skubbet til langsomme CPU'er: som fast, men springer desuden yEnc-CRC pr. artikel over, så snart PAR2 dækker en fil, altså ét CRC32-lag i stedet for to. Downloads uden PAR2 beholder deres artikel-CRC'er, og verificering og reparation i slutningen af jobbet er uændrede i begge tilfælde. Vælgeren Kontrol under download ovenfor er denne indstilling. |
auto_retry_mins | Ventetid før det ene automatiske gentagne forsøg, som en første fejl med manglende artikler får (standard 20). Propagationsforsinkelse er en reel årsag til manglende artikler og løser sig selv; takket være journalen henter genkørslen kun det, der stadig mangler. Fejl på grund af adgangskode eller takedown kvalificerer sig aldrig. |
index_scan_par | Hvor mange grupper indekseringen skanner parallelt (standard 3, begrænset til 1-8). |
oracle_sample | Tilgængelighedsoraklets STAT-budget i tomgang (§13), sonderinger i timen pr. server. Standard 300, maks. 3600, 0 slår sampling helt fra. |
predb_max_rows | Hvor mange pre-annonceringer feed-tabellen beholder (standard 250000, begrænset til 10000-5000000). Den timelige beskæring skærer ned til det tal, og den historiske import nægter at starte, hvis den ville gå forbi det, så en import aldrig tilføjer rækker, som den næste beskæring sletter. |
predb_seed_days | Hvor langt tilbage en historisk import når, når den startes uden sit eget vindue (standard 180 dage, højst 366). Et større vindue er flere forespørgsler til pre-kilden, som kører i takten en hvert andet sekund. |
10 · Automatisering
Overvågningsliste
Den enkleste automatisering: tilføj en titel på dashboardet, sæt kvalitetspræferencer, færdig. Nye releases hentes, efterhånden som de dukker op i dine indekserede grupper; kopier af bedre kvalitet opgraderer tidligere hentninger; en kalendervisning viser, hvad der er på vej.
RSS-feeds
Indstillinger → RSS: enhver newznab-/indexer-RSS-URL med interval pr. feed, kategori og filterregler (titelmønstre, størrelsesgrænser). Matchende emner hentes automatisk.
Smarte mapper
Regler, der evalueres, når et job tilføjes: match efter mønster/nøgleord og størrelse, tildel en
kategori (første match vinder). Med tv-arkivering slået til omdøbes og arkiveres
færdige tv-episoder som Show/Season 01/Show - S01E02.mkv -
klar til Plex/Jellyfin uden et eksternt værktøj.
Planlægger
Ugeplanen (se §9) automatiserer pause/genoptag/hastighed efter tidspunkt på dagen.
Scripts
Et efterbehandlingsscript modtager SABnzbds positionsargumenter og
SAB_*-miljøvariabler - det store økosystem af SAB-scripts kører
som det er.
11 · Sonarr, Radarr & venner
nzbfast taler SABnzbd-API'et native, så hvert *arr virker ud af boksen - og den kan også fungere som deres indexer.
Som downloadklient
- I Sonarr/Radarr: Settings → Download Clients → tilføj SABnzbd.
- Host: din nzbfast-maskine · Port: 6789 · API-nøgle: din fulde API-nøgle (hvor du finder den: §2).
- Kategori efter ønske (f.eks.
tv/movies). Test → grønt flueben → Gem.
Kø, historik, status pr. job, "fjern & slet", nyt forsøg og kategoridirigering opfører sig alle, som *arr-programmerne forventer.
Som en indexer (newznab)
- Settings → Indexers → tilføj Newznab.
- URL:
http://<host>:6789/· API-sti:/api· nøgle: din API-nøgle. - nzbfast serverer
caps-,search-,tvsearch- ogmovie-forespørgsler fra sit eget indeks over dine overvågede grupper, og/getnzb/<id>giver NZB'en tilbage.
<error code="101"> i stedet for et tomt
resultat, så en fejl viser sig, når du tilføjer indekseren, og ikke uger senere.Hvorfor overhovedet? En selvhostet indekser over præcis de grupper, du går op i: ingen konti, ingen API-kaldsgrænser, opbevaring så dyb, som du lader den skanne. Den er en tilføjelse til dine sædvanlige indeksere frem for en erstatning, for den finder kun det, der blev postet under et rigtigt filnavn.
12 · Telefon & fjernbetjenings-apps
nzbfast implementerer begge de store fjernbetjeningsprotokoller, så næsten alle mobil-/tablet-apps virker. Vælg den protokol, din app understøtter:
Apps, der taler NZBGet (nzb360, LunaSea, NZB Unity…)
| Felt i app'en | Værdi |
|---|---|
| Type | NZBGet |
| Host / port | din maskine : 6789 |
| Brugernavn | hvad som helst (f.eks. nzbfast) |
| Adgangskode | din API-nøgle |
Hele den JSON-RPC-flade, disse apps bruger, serveres: status, kø med omorganisér/pause/slet, historik, tilføj-NZB, hastighedsgrænse, pause/genoptag, log.
Apps, der taler SABnzbd
| Felt i app'en | Værdi |
|---|---|
| Type | SABnzbd |
| Host / port | din maskine : 6789 |
| API-nøgle | din API-nøgle (eller NZB-nøglen for kun-tilføj-adgang) |
Dashboardet på din telefon
Åbn bare http://<machine>:6789 i en mobilbrowser - hele
dashboardet og væggen har et touch-layout. Panelet Indstillinger → Fjernadgang viser
de præcise URL'er og en QR-kode til at scanne.
Nå nzbfast udefra
Der er ingen loginside, og det er med vilje. Et login med sessionscookie er en sikkerhedsflade, der skal vedligeholdes for altid, og den ville stadig være den svageste lås på noget, der vender mod det åbne internet. nzbfast godkender i stedet med din API-nøgle og tager nøglen både i en forespørgselsheader og i URL'en (X-Api-Key eller Authorization: Bearer) - og det er netop det, der lader noget foran klare loginet ordentligt.
Det enkleste er slet ikke at offentliggøre den. Installer Tailscale på denne maskine og på telefonen, så er begge på det samme private net: intet er eksponeret, hverken router eller certifikat skal røres, og Indstillinger → Fjernadgang viser en adresse, der virker overalt, så snart Tailscale kører. Vælg det, medmindre du direkte har brug for et offentligt domæne.
Har du det, så sæt en omvendt proxy foran, giv den certifikatet, og lad den stå for godkendelsen. Start nzbfast med --bind 127.0.0.1, så proxyen er eneste vej ind, og peg proxyen på 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;
}
Læg det på, som din proxy tilbyder: basic auth, en forward-auth-tjeneste som Authelia eller Authentik, eller klientcertifikater. Én ting fanger alle - Sonarr, Radarr og telefonapperne kan ikke gennemføre et browserlogin, så lad dem slippe udenom. De fleste proxyer kan lukke en forespørgsel med en gyldig X-Api-Key-header igennem og kræve godkendelse af alt andet.
13 · Ydelsesværktøjer
System-benchmark
Ét klik måler dine tre lofter - netværksgennemløb (en rigtig 8-sekunders multi-forbindelses-sondering), CPU-verificeringshastighed og diskskrivningshastighed - og leder med svaret: din forventede maksimale downloadhastighed, og hvilket loft der er grænsen. Den korteste bjælke er din flaskehals; de andre viser deres reserve. Planlæg den (hver 6. time → ugentligt), og hver kørsel logges til en historiktabel, så du kan se, hvornår din udbyder, ISP eller hardware ændrede adfærd. Planlagte kørsler sker kun, mens køen er i tomgang.
Forbindelsestuning
Måler én udbyder ved stigende antal forbindelser og anbefaler indstillingen - flere sockets hjælper, indtil udbyderen eller din linje mættes, og nogle udbydere straffer, hvis man beder om for meget. Test alle sammenligner hver udbyder og lader dem så alle burste sammen for at tjekke, om poolen mætter din linje.
Server-diversitet
STAT-sampler artikler på tværs af aldre på hver server og klynger udbydere efter fælles huller: udbydere med ~100% fælles manglende artikler er den samme backbone (redundante til genoprettelse); uafhængige udvider reelt din dækning. Slutter med en anbefaling i klart sprog.
Automatisk kø-intelligens
- Auto-udskyd: en download, der halter på en enkelt langsom server, mens andre jobs venter, parkeres bagest (journalen beholder dens fremgang) og forsøges igen, når køen er tom.
- Prefetch på ledige servere: servere, der ikke kan hjælpe det aktive job (deres kopier er væk), begynder i mellemtiden at hente det næste job i køen. Ingen anden klient laver overlap på tværs af jobs.
- Soak på tværs af jobs: mens et færdigt jobs hale (verificér/udpak) gøres færdig på disken, ejer det næste jobs download allerede linjen.
Tilgængelighedsoraklet
Takedowns er den vigtigste grund til, at et Usenet-download slår fejl, og de kan forudsiges: den samme udgivelse forsvinder hos én backbone, mens en anden stadig har den. nzbfast fører et lille register over, hvad dine egne udbydere faktisk har leveret, og bruger et bittelille tomgangsbudget på STAT-sonderinger (nogle få hundrede i timen pr. server, aldrig under et download) for at holde det aktuelt. Den henter aldrig nyttelast for at finde ud af det.
Hvad du får ud af det:
- En tilgængelighedsdom på væggens felter og indeksets rækker (§6): gult »?« for usikkert hos dine udbydere, rødt for med sikkerhed væk. Ingen markering betyder, at det ser fint ud.
- Et ryddet-mærke på grupper, hvor friske poster allerede fjernes, så du kan skelne en døende gruppe fra en uheldig udgivelse.
- Spring udbydere over, som oraklet har dømt ude (Indstillinger, slået fra som standard, eksperimentel): når kontrollen er sikker på, at én udbyders backbone har mistet en udgivelse, springes den direkte over for det download i stedet for at vente på, at den fejler. Den springer aldrig din sidste tilbageværende udbyder over.
Dommen er en forudsigelse ud fra indicier, ikke en garanti. For et
håndfast svar om én NZB tæller nzbfast check (§15) de
faktiske artikler.
Hukommelsesbudget - og hvad lav hukommelse koster
Alle motorens caches deler ét budget (standard ¼ af den fysiske RAM, begrænset til
256 MB–16 GB). Sæt det eksplicit med Hukommelsesgrænse under Indstillinger, eller
--mem-limit på kommandolinjen.
nzbfast er bygget til at mætte dit netværk og din disk på samme tid, og RAM er det, der lader den gøre begge dele i ét gennemløb: artikler afkodes, verificeres og skrives direkte til deres endelige offsets, så arkivvolumener aldrig behøver at røre disken overhovedet. Sult den for hukommelse, og intet går i stykker - hver cache har en spill-vej, og motoren degraderer til mere disk-I/O frem for at swappe eller fejle. Men den spill er ikke gratis, og på store jobs kan du måle den.
Målt på én maskine og én linje (M1 Ultra, 10 GbE), samme filer ved hvert budget. Hver kørsel frembragte et korrekt, fuldt verificeret, udpakket resultat:
| Jobstørrelse | Rigeligt RAM | 2 GB-budget ≈ 8 GB-maskine | 1 GB-budget ≈ 4 GB-maskine | 256 MB-budget ≈ 2 GB-NAS |
|---|---|---|---|---|
| 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% |
Topforbruget følger budgettet, ikke jobbet: den 190 GB-download fuldføres i cirka 1.1 GB RAM. Det, du bytter for det, er tid - og kun på store jobs.
- Op til ~35 GB er lav hukommelse gratis. Arbejdssættet passer uanset, så en 4 GB-maskine gør sådan et job færdigt lige så hurtigt som en 64 GB-maskine.
- Efter ~87 GB betaler du 20–40% - men kun når din linje løber fra din disk. Verificeringsblokke og arkivvolumener, der ville have ligget i RAM, skrives ud og læses tilbage i stedet, og det koster kun tid, hvis netværket kan levere hurtigere, end disken kan optage den ekstra trafik. De 20–40% ovenfor blev målt på 10 GbE; samme 87 GB-job ved de samme budgetter på en ~2.4 Gbps-linje viste slet ingen straf (−1 til +7%, inden for støjen fra kørsel til kørsel). Straffen er en funktion af, hvor langt linjen løber fra disken, ikke af jobstørrelsen - på en typisk hjemmeforbindelse er et lille budget næsten gratis selv på meget store jobs.
- Straffen flader ud. Når et job er stort nok til at spille, spiller hvert begrænset budget nogenlunde samme mængde - kørslerne på 2 GB, 1 GB og 256 MB læser i bund og grund det samme antal blokke tilbage fra disken og bliver færdige inden for støjen af hinanden. Så lidt mere RAM under tærsklen, der undgår spill helt, køber ikke omkostningen tilbage: giv den nok til at holde jobbet i hukommelsen, ellers betyder det præcise tal knap noget.
På en lille NAS: sænk også Forbindelser (2–4) sammen med budgettet. Ved et 256 MB-budget og 2 forbindelser holder topforbruget sig nær 190 MB - komfortabelt inden for, hvad en 2 GB-NAS har til overs. Vær opmærksom på, at det på det tidspunkt er antallet af forbindelser, ikke hukommelsen, der begrænser dig: samme 35 GB-job tog 286 s i stedet for 65 s. Det er den ærlige form på afvejningen - den bliver altid færdig, og færdig korrekt; den mætter bare ikke linjen.
Benchmarks køres igen for hver udgivelse; metode og tal pr. maskine offentliggøres sammen med resultaterne.
14 · Opdateringer
- Opdateringer er kun besked: nzbfast downloader eller udskifter aldrig sin egen binær, og der er ingen kode i den, der kan. Når en ny version findes, viser headeren ⬆ v X tilgængelig - download; chippen linker til den officielle downloadside (linket er fast i appen og kommer aldrig fra opdateringsmanifestet). Installér den nye version på samme måde, som du installerede den nuværende.
- nzbfast søger efter nye versioner to gange om dagen. Slå Søg efter opdateringer (Indstillinger) fra, og den kontakter slet ikke opdateringsmanifestet; en tom opdaterings-URL gør det samme.
Opdatering uden at miste dine indstillinger
Én regel dækker enhver installation: en opdatering udskifter programmet, aldrig dine indstillinger. Alt, hvad du har konfigureret - servere, stier, API-nøglen, køen - bor i en håndfuld filer i én mappe (§17), og intet installationsprogram, image-pull eller pakkeopgradering rører den mappe. Når indstillinger alligevel ser væk ud efter en opdatering, er det næsten altid, fordi den nye installation læser en anden, tom mappe, ikke fordi noget blev slettet; de gamle filer ligger stadig, hvor de altid har ligget. §18 har trinnene til at få dem tilbage.
| Installation | Sådan opdaterer du |
|---|---|
| macOS-appen | Åbn den nye DMG og træk NzbFast ind i Programmer, så den gamle erstattes. Din datamappe er separat og bliver ikke rørt. |
| Windows-installationsprogrammet | Kør den nye installation oven på den gamle. Din datamappe er separat og bliver ikke rørt. |
| Docker (kommandolinjen) | docker pull nzbfast/nzbfast,
fjern den gamle container, og kør så den nye med præcis de samme
-v-mapninger. Imaget er til at smide væk; den mappede
/config-mappe er din installation. Bruger din run-kommando en relativ
sti som -v ./config:/config, så kør den fra den samme mappe hver
gang - alle andre steder fra er ./config en anden, tom
mappe. |
| Docker Compose | docker compose pull && docker compose
up -d, med den samme compose-fil samme sted. ./config i filen
er forankret i filens egen mappe, så lad filen blive, hvor den er. |
| Watchtower | Intet at gøre: den genskaber containeren med de samme mapninger, når et nyt image udkommer. |
| Unraid | Docker-fanen → Check for Updates → Apply
Update. Fjern og gentilføj aldrig appen for at opdatere den; skulle du en dag
geninstallere, så behold den samme appdata-sti, så den finder din eksisterende
/config. |
| Synology (Container Manager) | Hent det nye image, stop containeren, og genskab den med de samme volume-indstillinger - gennemgangen i Synology-guiden dækker det klik for klik, inklusive hvordan du gør det efter et skema. |
| Synology (pakke) | Installér den nye .spk i Package
Center; den opgraderer på stedet. |
| Homebrew | brew upgrade nzbfast |
| Ren binær | Udskift binæren. Din konfiguration bliver, hvor du lavede den (§17). |
-e NZBFAST_APIKEY=…, eller environment-blokken i din compose-fil
eller Unraid-skabelon). En nøgle, der ligger dér, overlever ethvert containeruheld,
fordi den bor på værten, i definitionen, og bliver lagt på igen ved hver start. En
nøgle, du senere sætter under Indstillinger, vinder stadig over den.15 · Kommandolinje
Alt, hvad daemonen gør, kan også scriptes. De daglige kommandoer:
| Kommando | Formål |
|---|---|
nzbfast setup | Interaktiv serveropsætning. |
nzbfast serve | Kør daemonen (dashboard + API + automatisering). --open åbner browseren; --apikey sætter nøglen i hånden (§2); --bind vælger lytteadressen, standard 0.0.0.0 (hver grænseflade), 127.0.0.1 for kun denne maskine. Se --help for hele flag-listen; hver dashboard-indstilling har en flag-tvilling. |
nzbfast get file.nzb | Hent én NZB, fuld pipeline, ingen daemon. --preflight afbryder tidligt, hvis posten ikke kan fuldføres; --password til krypterede sæt. |
nzbfast check file.nzb | Tilgængeligheds-dom - COMPLETE / REPAIRABLE / IMPOSSIBLE - uden at hente payload. |
nzbfast verify DIR | Verificér filer mod PAR2-sættet i en mappe. |
nzbfast sysbench | System-benchmarken + diversitetsrapporten, i terminalen. |
nzbfast index / search | Scan grupper ind i indekset / søg i det, uden daemonen. |
nzbfast import-sab | Importér servere fra en SABnzbd-ini. |
Også tilgængelige: inspect, probe,
bench, bench-cpu, soak, fetch,
spots/spot-search/spot-get (Spotnet),
predb-seed (fylder pre-databasen med tiden før feedet blev slået til),
make-release-nzb/make-test-nzb (test-fixtures). Hver
kommando tager --config og --help. Dertil kommer post: den uploader filer som
yEnc-artikler og skriver den tilhørende NZB. Et driftsværktøj; det kræver et
udtrykkeligt --post-server og vælger aldrig en server for dig.
16 · API-oversigt
Basis-endpoint: http://host:6789/api?mode=…&apikey=…&output=json -
SABnzbd-kompatibelt, så eksisterende SAB-integrationer virker uændret. To nøgler:
API-nøglen (fuld kontrol) og NZB-nøglen (kun-tilføj:
addfile/addurl). addnzblnk er med vilje ikke med i sættet for kun at tilføje: at slå et link op kan bruge målt indekserkvote, og det har en nøgle til kun at tilføje ikke noget at gøre med.
| Område | Modes |
|---|---|
| Kø | queue (med name=delete/pause/resume/priority/switch), pause, resume, addfile, addurl, addnzblnk, retry, set_password |
| Info | history, status/fullstatus, stats, version, server_stats, usage, log, warnings, plus /jobnzb/<nzo_id> (jobbets egen gemte .nzb ud igen, kø eller historik; kun fuld API-nøgle) |
| Konfiguration | get_config, config&name=<setting>&value=… (hvert Indstillinger-felt), server_save/delete/test/enable/reorder, import_probe/apply |
| Indeks & væg | index_search, index_get, index_stats, index_scan_now, wall, wall_search/fix/refresh/art, plus newznab på /api?t=caps|search|tvsearch|movie og /getnzb/<id> |
| Automatisering | watchlist, watchlist_check_now, watch_calendar, feeds, smart_folders, schedule |
| Diagnostik | sysbench, bench_history, connladder, pooltest, diversity, update_check, update_apply |
| NZBGet JSON-RPC | /jsonrpc - status, listgroups, history, append, editqueue, rate, pause, log (Basic auth: enhver bruger, API-nøgle som adgangskode) |
| Forhåndsvisning / afspilning | /stream/<nzo_id> (HTTP-ranges; at starte et parkeret biblioteksjob kræver ?t=-token eller nøgle), /m3u/<id> (kræver nøgle; udsteder token'en), /wall, /art/… |
17 · Filer & placeringer
Hvor indstillingsmappen ligger, afhænger af, hvordan nzbfast blev installeret. Denne ene mappe rummer alt, hvad der er værd at tage backup af:
| Installation | Indstillingsmappe |
|---|---|
| macOS-appen | ~/Library/Application Support/nzbfast/ |
| Windows | %LOCALAPPDATA%\nzbfast\ |
| Docker / NAS-containere | /config inde i containeren,
som er den værtsmappe, du har mappet til den. På Unraid er det appens
appdata-mappe. |
| Synology-pakken | /var/packages/nzbfast/var/ |
| Terminal | Den mappe, du kørte nzbfast setup i, eller
hvor end --config / $NZBFAST_CONFIG peger hen. |
Og hvad der ligger i den:
| Fil | Indhold |
|---|---|
config.local.json | Server-loginoplysninger og indstillinger pr. server. Oprettet af guiden; kan redigeres under Indstillinger. Hold den privat. Adgangskoder er sløret, ikke krypteret. |
settings.json | Hver indstilling, der er ændret i dashboardet. Ligger ved siden af konfigurationen; UI-værdier tilsidesætter kommandolinje-flag. Slet en nøgle (eller filen) for at falde tilbage til flag/standarder. |
apikey | Den API-nøgle, nzbfast lavede til sig selv ved en første kørsel (§2). Ligger ved siden af konfigurationen; kan på macOS og Linux kun læses af den konto, der kører nzbfast. Slet den ikke for at få en frisk nøgle: på en installation, der allerede har kørt, kommer der intet i stedet, og daemonen starter op igen helt uden nøgle. Sæt i stedet en ny under Indstillinger → Sikkerhed. |
index.db | Release-indekset (SQLite) + væg-metadata. Sikkert at slette - det genopbygges ved scanning (Indstillinger → Indeksering → Slet gør dette for dig). |
<config>/.spool/ | Kø-tilstand (overlever genstarter), NZB'er pr. job, forbrugsregnskab, benchmark-historik, poster-artwork-cache. |
| Artikel-journal | Inde i hvert jobs outputmappe, mens det er ufuldstændigt - driver crash-genoptagelse og nyt forsøg. Fjernes ved succes. |
| Eksterne værktøjer | Ingen nødvendige - RAR-udpakning og PAR2-reparation er native. Hvis et eksotisk sæt nogensinde kræver en ekstern unrar eller par2 som fallback, kigger nzbfast ved siden af sin eksekverbare fil, derefter på $PATH. |
18 · Fejlfinding
| Symptom | Tjek |
|---|---|
| Langsomme downloads | Kør System-benchmark - den udpeger flaskehalsen direkte. Er det netværket: kør Forbindelsestuning, tjek antal forbindelser pr. server, og bekræft, at dine udbydere ikke alle er én backbone (Server-diversitet). |
| Langsom kun på meget store jobs (NAS eller maskine med lidt RAM) | Forventet og måleligt: et udsultet hukommelsesbudget spiller caches til disk og koster 20–40% efter ~87 GB. Se Hukommelsesbudget for tallene og hvor meget RAM, den skal have. Mindre jobs er upåvirkede. |
| Download fejler med "articles missing" | Posten er udløbet eller blev fjernet hos dine udbydere. En anden udbyder på en anden backbone redder de fleste af disse. nzbfast check forudsiger dette før download. Og væggen markerer på forhånd de sandsynligt forsvundne med sin
tilgængelighedsprik (§13). En første fejl af den type prøver sig
selv igen én gang efter en ventetid, for propagationsforsinkelse ser præcis sådan ud og
løser sig selv. |
| Færdigt arkiv vil have en adgangskode | Historik-rækken viser 🔑 - indtast adgangskoden der; jobbet bliver færdigt på stedet. |
| Et arkiv pakkes ikke ud | Adgangskode- og reparationsfejl navngiver sig selv i historik-rækken. For alt andet findes der en nødudgang: Indstillinger → Watch-mappe & efterbehandling → Udpak med eksternt unrar (en avanceret indstilling) overlader udpakningen til programmet unrar, der er installeret på din maskine, i stedet for den indbyggede udpakker. Lad den ellers være slået fra: den indbyggede vej er hurtigere på alle former, vi har målt, og slørede poster med hash-navne bruger den alligevel altid, fordi unrar ikke kan følge deres omdøbning. Den samme kontakt for nzbfast get-kørsler er miljøvariablen NZBFAST_NO_NATIVE_UNRAR=1. Hvis unrar udpakker et arkiv, som den indbyggede udpakker afviste, så meld det gerne, så vi kan reparere den indbyggede vej. |
| Sonarr/Radarr kan ikke forbinde | Kan port 6789 nås? API-nøgle korrekt (fuld nøgle, ikke NZB-nøgle)? Klienttype sat til SABnzbd? |
| Dashboardet beder om en API-nøgle, jeg aldrig har sat | En ny installation laver selv en og skriver den ud én gang ved opstart (§2). Den står i filen apikey ved siden af din konfiguration, og i opstartsudskriften. Eller skriv din egen nøgle ind under Indstillinger → Sikkerhed fra en browser, der allerede er logget ind. |
| Alle mine indstillinger ser væk ud efter en opdatering (servere, stier, API-nøgle) | Intet i en opdatering sletter indstillinger; det her betyder, at nzbfast læser en anden, tom mappe. Først: API-nøglefeltet under Indstillinger vises tomt med vilje - klik Show, før du konkluderer, at den er væk. På Docker: sammenlign den nye containers /config-mapning med den gamles: en ændret værtssti, en relativ sti kørt fra en anden mappe eller en frisk appdata-mappe starter alle sammen nzbfast helt forfra, mens dine rigtige indstillinger ligger urørte på den tidligere sti. Find den gamle mappe (kig efter settings.json, din konfigurationsfil og apikey - placeringer i §17), og peg så enten mapningen tilbage på den, eller kopiér de filer ind i den nye mappe og genstart. Opstartsloggen navngiver præcis den indstillingsfil, der er i brug: [settings] applying saved settings from … |
| Intet på netværket kan nå daemonen | Tjek --bind: 127.0.0.1 betjener kun den maskine, nzbfast kører på. Standarden, 0.0.0.0, betjener hver grænseflade. Tjek derefter maskinens egen firewall for port 6789. |
| Gennemse-kortet forbliver lille | Indexeren vokser i baggrunden - tjek, at grupper er sat under Indstillinger → Indeksering, og giv Uddyb pr. scanning tid til at opbygge historik. "Scan nu" fremtvinger en gennemgang; statuslinjen viser live fremgang. |
| Væggen viser forkert/intet artwork | Detaljeark → ✎ Ret match eller ↻ Genopfrisk metadata. Filmopslag forbedres med en gratis OMDb-nøgle. |
| macOS siger, at programmet "nzbfast" ikke kan åbnes | To årsager, begge hurtige. Bruger du den enkle -macos-universal.zip, så dobbeltklik på Start nzbfast.command og ikke på filen nzbfast ved siden af - den er selve programmet, og Finder svarer på et dobbeltklik der med præcis denne besked. Det er starteren, der sætter det hele op og starter det. Giver starteren den samme besked, har kopien mistet sin Unix-kørselsbit undervejs: macOS bevarer den bit inde i .zip-filen, men chat-apps, cloud-drev og ny zipning gør det ikke, så en kopi, der er sendt videre i hånden, ankommer uden kørselstilladelse. Hent .dmg eller .zip direkte fra releases-siden, så sker det ikke. For at redde den kopi, du allerede har: åbn Terminal, skriv chmod +x med et mellemrum til sidst, træk Start nzbfast.command og filen nzbfast ind i vinduet og tryk Retur - dobbeltklik derefter på starteren igen. |
| Daemonen vil ikke starte: porten er i brug | En anden instans kører - eller skift --port. |
| Hvor er loggene? | Log-kortet på dashboardet, eller den terminal/logfil, du startede serve med. |
nzbfast --version.nzbfast - denne manual følger med hver udgivelse. Indstillinger, endpoints og standarder, der er nævnt her, svarer til den version, den blev leveret med.