⚡ nzbfast

מוריד ה-Usenet המהיר - מדריך למשתמש

1 · ברוכים הבאים

nzbfast מוריד מ-Usenet מהר ככל שהקו שלך, הספקים שלך והמכונה שלך מתירים - ובדרך כלל זה אומר מהר כמו הקו שלך. זהו תוכנית עצמאית יחידה: המנוע, לוח מחוונים בדפדפן, דפדפן מדיה של קיר פוסטרים, אינדקסר מובנה, תצוגה מקדימה בזמן אמת, תיקון PAR2 מקורי, וחילוץ RAR מקורי - כולם בתוך קובץ הפעלה אחד. אין שום דבר אחר להתקין.

מה שהופך אותו למהיר הוא ארכיטקטורה, לא כיוונונים:

נמדד מול השדה על חומרה, משימות וספקים זהים, nzbfast סיים הורדה של 190 GB תוך כ-5 דקות על קו 10 GbE - כאשר החלופות המובילות פיגרו ב-30–220% באותן בדיקות, היכן שהשלימו אותן בכלל. המספרים נמצאים ב-§3.

2 · התחלה מהירה

macOS

  1. פתח את nzbfast-<version>-macos.dmg וגרור את NzbFast אל Applications (אוניברסלי: Apple Silicon + Intel).
  2. הפעלה ראשונה: macOS מזהיר ש-nzbfast עדיין אינו מאושר-נוטריון של Apple. לחץ ימני על האפליקציה → Open - או פתח את System Settings → Privacy & Security, גלול למטה, ולחץ Open Anyway. זהו שלב חד-פעמי.
  3. חלון האפליקציה מציג את לוח המחוונים עם כרטיס ברוכים הבאים - לחץ עליו והוסף לפחות שרת Usenet אחד (מארח, פורט 563, שם משתמש, סיסמה). אפשר להוסיף עוד מאוחר יותר ב-Settings.
  4. הנח קובץ .nzb בכל מקום על לוח המחוונים - או פשוט לחץ פעמיים על קובצי .nzb ב-Finder. הורדות נוחתות ב- ~/Downloads/nzbfast. צא מהתפריט; הורדות מתחדשות היכן שהופסקו.

מעדיף בלי אפליקציה? ה-zip הפשוט (בינארי + משגר Start nzbfast.command, אותו מנוע) עדיין עובד כמו קודם - השלבים למטה תחת "מטרמינל".

Windows

  1. הרץ את nzbfast-<version>-windows-x64-setup.exe. הוא מותקן למשתמש שלך בלבד (בלי סיסמת מנהל). מכיוון שמהדורה זו עדיין אינה חתומה בקוד, SmartScreen עשוי להציג "Windows protected your PC" - לחץ More infoRun anyway.
  2. nzbfast חי במגש המערכת: לחץ פעמיים על סמל המגש (או השתמש ב- Open Dashboard בתפריט הלחיצה הימנית שלו) כדי לפתוח את לוח המחוונים, ואז הוסף את שרת ה-Usenet שלך מכרטיס ברוכים הבאים. תפריט המגש כולל גם השהיה/חידוש, תיקיית ההורדות שלך, ויציאה.
  3. לחיצה כפולה על קובץ .nzb מכניסה אותו לתור. Windows Defender עשוי לבקש פעם אחת לאפשר האזנה לרשת מקומית - אפשר זאת.

מעדיף עותק נייד? ה--windows-x64.zip עדיין עובד: חלץ בכל מקום ולחץ פעמיים על nzbfast.exe (או Start nzbfast.bat) עבור אשף הטרמינל.

מטרמינל (כל פלטפורמה)

nzbfast setup            # interactive server setup (writes config.local.json)
nzbfast serve --open     # start the daemon and open the dashboard
טיפכבר הרצת SABnzbd או NZBGet? דלג על הקלדת אישורים: Settings → Usenet servers → Import from SABnzbd / NZBGet… מוצא את ההתקנה הקיימת שלך ומעתיק את השרתים שלה. יש גם nzbfast import-sab בשורת הפקודה.

מפתח ה-API שלך

בהתקנה חדשה באמת, nzbfast יוצר לעצמו מפתח API בפעם הראשונה שהדימון עולה, ומדפיס אותו פעם אחת בכרזה ממש מתחת לכתובת לוח המחוונים. מכאן והלאה כל בקשה זקוקה למפתח הזה, כך שלוח המחוונים וה-API אינם פתוחים לכל דבר שמסוגל להגיע למכונה.

מה שאתה עושה איתו תלוי באיך הפעלת את nzbfast:

המפתח נשמר בקובץ בשם apikey ליד קובץ התצורה שלך, כך שהוא נשאר זהה בין הפעלות מחדש ואפשר לקרוא אותו בחזרה מתי שצריך. ב-macOS וב-Linux הקובץ קריא רק לחשבון שמריץ את nzbfast. הוא נמצא גם בפלט של הדימון עצמו, כך שכרטיס היומן בלוח המחוונים מחזיק אותו אם הטרמינל כבר נגלל.

שדרוג לא משנה דבר.התקנה שכבר קיימת נשארת בדיוק כפי שהייתה, עם מפתח או בלעדיו. מפתח נוצר אך ורק בהרצה ראשונה - כזו בלי הגדרות לוח מחוונים ובלי תור שמור - כי מפתח שמופיע תחת התקנה עובדת היה נועל בחוץ כל Sonarr, Radarr ואפליקציית טלפון שכבר חיברת, בהפעלה מחדש שמעולם לא קישרת לשינוי הגדרות.

כדי להשתמש במפתח משלך במקום, הקלד אותו ב-Settings → Security; הוא חל מיד. הפאנל הזה מחליף את המפתח אך לעולם אינו מציג את הנוכחי, אז קרא את קובץ apikey אם אתה צריך את הערך שנוצר בחזרה. כדי להריץ בלי מפתח כלל, כי משהו שנמצא לפני nzbfast כבר מטפל בהתחברות, הפעל אותו עם NZBFAST_OPEN=1 בסביבה. nzbfast אז נשאר פתוח ואומר זאת במפורש בהפעלה.

אילו מכונות יכולות בכלל להגיע לדימון היא בחירה נפרדת: serve --bind. ברירת המחדל היא 0.0.0.0, כלומר כל ממשק רשת, כי קופסת NAS, טלפון, ו-Sonarr במחשב אחר צריכים כולם להיות מסוגלים להתחבר. --bind 127.0.0.1 מצמצם זאת למכונה שעליה nzbfast רץ, וזה מה שאתה רוצה בשולחן עבודה יחיד שבו שום דבר אחר לא צריך גישה.

3 · איך nzbfast עובד

אוצר מילים מהיר כדי ששאר המדריך ייקרא בקלות:

מונחמשמעות
ספק / שרתשירות Usenet שיש לך חשבון אצלו (Newshosting, Eweka, XS News…). כל אחד מתיר מספר מסוים של חיבורים בו-זמניים.
עמוד שדרההתשתית שמאחורי ספק. מותגים רבים לעתים קרובות מוכרים מחדש את אותו עמוד שדרה - כדאי לדעת, כי שני ספקים על עמוד שדרה אחד מחמיצים את אותם מאמרים. ראה גיוון שרתים.
NZBקובץ XML קטן המפרט את המאמרים שמרכיבים פוסט. זה מה שאתה מזין ל-nzbfast.
PAR2נתוני שחזור המפורסמים לצד רליס. nzbfast מאמת מולם תוך כדי ההורדה ומתקן אוטומטית כשמאמרים פגומים או חסרים.
RAR במצב אחסוןרוב הרליסים ארוזים בכרכי RAR ללא דחיסה. nzbfast מזהה זאת וכותב את הקובץ הפנימי ישירות ל מיקומו הסופי תוך כדי הורדה - בלי שלב פריקה אחר כך.

הצינור מריץ הורדה → פענוח → אימות → חילוץ בו-זמנית. כרטיס הצינור בלוח המחוונים מציג את כל שלושת המסלולים נעים בבת אחת. כשהבייט האחרון מגיע, האימות כבר הסתיים והקובץ כבר מחולץ; זמן "עיבוד לאחר הורדה" של משימה טיפוסית הוא אפס. אם נדרש תיקון, רק אז כרכים ממומשים לדיסק, מתוקנים במקום על ידי מנוע ה-GF(2¹⁶) המקורי (נתונים מעורפלים ששמם שונה או הוזזו בבייטים נמצאים ומאומצים על ידי סריקת בלוקים מחליקה), ומחולצים מחדש - הכול אוטומטי.

הורדות שהופרעו (קריסה, אובדן חשמל, kill -9) מתחדשות מ יומן המאמרים: בייטים שכבר על הדיסק לעולם לא מורדים פעמיים. היומן מתעד היכן נחתו הבייטים של כל מאמר פיזית - אפילו בייטים ש חולצו ישירות אל הקובץ הסופי - כך שחידוש בונה מחדש מהדיסק המקומי ו מאמת מחדש כל מה ששיחזר מול מפת בלוקי ה-PAR2 לפני שהוא סומך עליו.

איך זה משתווה

נמדד מול SABnzbd 5.0.4 ו-NZBGet 26.2 על אותה מכונה, אותם ספקים ואותם קובצי NZB, מתוזמן לקובץ שמיש - הורדה, אימות, תיקון וחילוץ כלולים כולם, כי אז המשימה באמת מסתיימת:

גודל משימהnzbfastNZBGet 26.2SABnzbd 5.0.4
7 GB13.7 s+26%+39%
35 GB67 s+61%+325%
87 GB272 s+36%+160%
190 GB9 m 00 s+30%+111%

הפער הוא העיבוד לאחר הורדה שהאחרים עדיין צריכים לבצע לאחר שהבייט האחרון נוחת. שני המתחרים כווננו לצורך ההשוואה, לא הושארו בברירות מחדל - SABnzbd בפרט מגיע עם צנרת בקשות כבויה, מה שעולה לו ביוקר, אז היא הופעלה.

שני הבדלים חשובים באותה מידה כמו הזמנים:

חידוש לאחר קריסה, נמדדהרוג הורדה באמצע התעופה (kill -9 ב-15 GB של משימת 34.5 GB) והחידוש מוריד מחדש ~0.3 GB - רק את המאמרים שהיו באמת בתעופה בזמן ההריגה - מול 0.2 GB של NZBGet באותה בדיקה. זה היה פעם הפסד שפרסמנו (15.3 GB הורדו מחדש, כשהיומן לא יכל להסביר בייטים שחולצו ישירות); יומן המיקום תיקן זאת: החידוש משחזר את הבייטים האלה מקובצי הפלט המקומיים ומאמת מחדש כל בייט משוחזר מול מפת בלוקי ה-PAR2 לפני שהוא סומך עליו. כל תרחיש שאנחנו מפסידים מתפרסם לצד הניצחונות, עם השיטה המלאה והמספרים הגולמיים.

4 · לוח המחוונים

פתח את http://localhost:6789 (או את הכתובת של המכונה שלך ממכשיר אחר - פריסת הטלפון מסתגלת אוטומטית). הכול מתעדכן חי, פעם בשנייה. הכרטיסים, מלמעלה למטה:

סרגל כותרת

תפוקה

MB/s חי עם גרף מתגלגל; סימני המים המקווקווים מסמנים את השיא/שפל של הסשן הזה, הקו הדהוי הוא ממוצע נע. מתחתיו, היסטוגרמה מציגה איך דגימות המהירות של הסשן מתפלגות - טיפוסי מול שיא. הרחב את החלון והגרפים מציגים יותר היסטוריה (עד שעה).

אריחי סטטיסטיקה

הורד בסשן זה, עומק התור, ספירות הושלמו/נכשלו, מהירות שיא הסשן.

משאבים - מכונה אחת, ארבע תקרות

מעבד, RAM (מול תקציב הזיכרון של nzbfast), קצב כתיבה לדיסק ורשת על גרף מנורמל אחד, עם ערכים אמיתיים במקרא ואזהרת מקום-נמוך. שום קליינט NZB אחר לא מראה לך זאת; הוא קיים כדי להוכיח נקודה - nzbfast ימצה את הקו שלך, לא את המכונה שלך.

צינור - שלבים חופפים

שלושה מסלולים: הורדה, אימות (בלוקי PAR2 נבדקים), חילוץ. במשימה בריאה כל השלושה נעים יחד.

ספקים

קצב חי לכל שרת, ניצול חיבורים, נתח מהתעבורה, GB לסשן, ו ניקוד השלמת מאמרים לכל החיים (צבוע כששרת יורד מתחת ל-98%). גרף שטח מוערם מציג את תרומת כל ספק לאורך זמן. שורות מתמיינות לפי ביצועים חיים כל 10 שנ' (ניתן להגדרה ב-Settings → Interface) כך שהספק המהיר ביותר שלך תמיד למעלה.

תור

עיון באינדקס

חפש בכל מה שהאינדקסר המובנה קטלג מהקבוצות במעקב שלך (ראה אוטומציה) והורד בלחיצה אחת - בלי אינדקסר חיצוני. שורת הסטטוס מציגה את התקדמות הסריקה; סרוק עכשיו מכריח מעבר.

רשימת מעקב

הוסף כותרים לפי שם - כולל כאלה שעדיין לא פורסמו. כשרליס מתאים מופיע באינדקס הוא נתפס אוטומטית, עם העדפות איכות וכללי שדרוג (עותק טוב יותר מחליף גרוע יותר).

היסטוריה

הורדות אחרונות, שורה לכל אחת. משימות שנכשלו מציעות נסה שוב (מתחדש מהיומן). ארכיונים מוצפנים מציגים בקרת שחרור 🔑 - הזן את הסיסמה והמשימה מסתיימת במקום. רצועת תקינות-האימות מגרפת בלוקי PAR2 פגומים לכל הורדה - זנב עולה פירושו שמאמרים מגיעים פגומים. המגירה של כל שורה אומרת מי הוסיף את המשימה, ויש בה אותו כפתור הורדת קובץ ה-.nzb כמו בתור - שימושי להורדת רליס שוב במקום אחר, או לצירוף ה-.nzb לדיווח על בעיה.

הכרטיס מציג עשר הורדות כברירת מחדל, והשאר במרחק לחיצה אחת, בכפתור ▤. הסטטוס, המיקום והסיבה לכישלון של משימה נמצאים מאחורי לחיצה על השורה עצמה, כך שהמקרה הרגיל - מה הסתיים, באיזה גודל, מתי - נשאר קריא בלי גלילה. לחלופין, גרור את הקצה התחתון של הכרטיס כדי שהרשימה תיגלל בגובה שתבחר. History rows ב-Settings → Interface משנה את העשר האלה; מכיוון שזו תכונה של הדימון ולא של הדפדפן שלך, היא חלה על כל מכשיר שמסתכל על ההתקנה הזו. Colour History names, לצידו, צובע שמות שהושלמו בירוק ושנכשלו באדום; בכיבוי השמות נשארים נייטרליים, והנקודה הצבעונית ופרטי השורה עדיין אומרים מה זה מה.

שימוש בנתונים

פסים יומיים לכל ספק וסה"כ היום / 7 ימים / 30 ימים - חיוני לחשבונות מדודים ובלוק. חשבונות בלוק מציגים שימוש לכל החיים מול גודלם.

יומן, בדיקת ביצועי מערכת, כוונון חיבורים, גיוון שרתים

מציג יומן בעמוד, ושלושת כלי המדידה-העצמית המתוארים ב כלי ביצועים.

5 · הוספת הורדות

שיטהאיך
גרור והשלךהנח קובץ .nzb אחד או יותר בכל מקום על לוח המחוונים.
תיקיית מעקבהגדר תיקייה ב-Settings; כל .nzb שנשמר בתוכה נקלט תוך 5 שניות ומועבר לאשפה, ולוח מחוונים פתוח מכריז על כל איסוף בשמו ("… נאסף מ-Downloads"), כך שקובץ שנעלם מהתיקייה אינו תעלומה. מעדיף לשמור את הקבצים שלך? הפעל את לשמור קובצי .nzb אחרי איסוף (ראה §9). כוון אליה את תיקיית ההורדות של הדפדפן שלך לתפיסות בלחיצה אחת מאתרי אינדקסרים.
מכתובת URLהדבק קישור NZB (API mode=addurl, או דרך כל אפליקציה מחוברת).
קישורי nzblnk:הדבק קישור nzblnk: בכל מקום בלוח הבקרה, או גרור אותו פנימה. אם התקנת מ-DMG של macOS או ממתקין Windows, אפשר גם ללחוץ על אחד ישירות בלוח. ראה קישורי nzblnk למטה.
עיון באינדקסלחץ על כל רליס שלם בכרטיס העיון.
רשימת מעקב / RSSאוטומטי - ראה אוטומציה.
Sonarr/Radarr וכו'הם שולחים תפיסות ישר לתור - ראה §11.
שורת פקודהnzbfast get file.nzb מוריד בלי הדימון.

קטגוריות, עדיפויות, סיסמאות

קישורי nzblnk

לוחות מסוימים, בעיקר גרמניים והולנדיים, מפרסמים קישור nzblnk: במקום קובץ NZB. הפוסט מעורפל, ולכן אין שם קובץ כלשהו שאפשר לקשר אליו. במקום זאת הקישור נושא כותרת, h=, שהיא מפתח חיפוש ולא מיקום, ולצדה כותרת t=, סיסמה p= וקבוצה g= אופציונליות. מישהו צריך קודם ללכת ולמצוא את הפוסט.

nzbfast מחפש את הכותרת קודם באינדקס שלו עצמו, מה שאינו דורש רשת כלל, ורק אם זה מחטיא הוא פונה לאינדקסרי החיפוש שהגדרת (Settings → Search indexers, §9), תחת אותם תקציבים יומיים ואותה נסיגה כמו כל חיפוש אחר. הכותרת הופכת לשם המשימה והסיסמה מוחלת על המשימה אוטומטית.

6 · קיר הפוסטרים

לחץ 🎬 קיר בכותרת. הקיר הופך את האינדקס שלך לדפדפן מדיה: כל סרט ורליס טלוויזיה שזוהה כאריח פוסטר עם דירוג, שנה, ז'אנרים, שחקנים ותקציר - קבוצות הדיון שלך, ניתנות לעיון כקטלוג.

7 · תצוגה מקדימה ואימות

אתה לא חייב להמתין לסיום ההורדה כדי לדעת שזה הקובץ הנכון. פתח אותו תוך כדי ההורדה, בדוק שהתוכן, השפה והאיכות הם מה שציפית, ובטל מוקדם אם לא - במקום לגלות זאת רק אחרי ההורדה המלאה.

הערת נגןVLC, IINA, mpv ו-Infuse כולם פותחים כתובות /stream. לבדיקה ממכונה אחרת השתמש בכתובת ה-LAN של המכונה שלך במקום localhost.
הערת אימותעם מפתח API מוגדר, פתיחת רשומת ספרייה חונה דרך /stream/<id> דורשת אסימון לכל משימה (?t=…) - נגנים לא יכולים לשלוח מפתחות API, כך שמסירת ה-/m3u ומצביע ה-.strm משבצים אותו עבורך; יצירתו (/m3u) דורשת את המפתח. הגשת בייטים פשוטה של הורדה שכבר פעילה נשארת פתוחה, ו התקנות ללא מפתח מתנהגות כמו קודם.

8 · שרתי Usenet

Settings → Usenet servers הוא העורך המלא: הוספה, עריכה, הסרה, שינוי סדר, והכנסה או הוצאה של כל שרת מהמאגר. לכל שרת יש:

שדההערות
מארח / פורטהשתמש בפורט SSL 563. TLS לא עולה שום דבר מדיד - nzbfast תמיד מצפין.
שם משתמש / סיסמהנשמרים מקומית ב-config.local.json, לעולם לא מוצגים חזרה לדפדפן. השארת סיסמה ריקה בעריכה שומרת על השמורה. הסיסמאות מעורפלות על הדיסק, לא מוצפנות.
חיבוריםחיבורים בו-זמניים לכל שרת. השתמש ב-כוונון חיבורים (§13) כדי למצוא את הנקודה המתוקה של כל ספק במקום לנחש גבוה.
דרגה (רמה)0 = ראשי; רמות גבוהות יותר הן שרתי מילוי, נשאלים רק על מאמרים שכל רמה נמוכה יותר החמיצה. שים חשבונות ללא הגבלה ב-0, חשבונות בלוק ב-1+.
גודל בלוק (GB)לחשבונות בלוק (תשלום-לכל-GB): nzbfast עוקב אחר שימוש לכל החיים מול זה ומפסיק להשתמש בשרת כשמנוצל (אזהרה ב-85%).

השאר קצת מרווח מתחת למגבלת החיבורים של החשבון שלך. הגדרת החיבורים מעט מתחת למגבלה לא עולה דבר: קצב ההעברה מתיישר הרבה לפני החיבור האחרון או השניים האחרונים, וכוונון חיבורים (§13) מגיע ממילא מתחתיה. המקומות הפנויים האלה הם מה שמאפשר למכשיר שני, לתוכנה אחרת או לניסיון חוזר אחרי שקע שנפל להיכנס בכל זאת, במקום להידחות בזמן שזה תופס כל מקום.

כיצד נשמרות סיסמאות הספקים שלך

סיסמאות הספקים בקובץ config.local.json הן מעורפלות, לא מוצפנות. הן נשמרות בצורת obf1: ואחריה צורה מקודדת, כך שהקובץ אינו נקרא כטקסט גלוי אם הוא מופיע בצילום מסך, בהודעה בפורום, בדוח תקלה או על מסך שמישהו אחר יכול לראות.

נהיה ברורים לגבי מה זה נותן ומה לא:

לשם השוואה, NZBGet ו-SABnzbd שומרים שניהם את סיסמאות הספקים כטקסט קריא בקובצי ההגדרות שלהם. אנחנו רואים בערפול שיפור קטן על כך, לא תכונת אבטחה.

למה לא מחזיק המפתחות של המערכת? Keychain של macOS, מנהל האישורים של Windows ושירותי הסודות של Linux היו נותנים הגנה אמיתית, ואולי נחזור לזה. שני דברים עוצרים אותנו היום. הגישה למחזיק המפתחות קשורה לזהות היישום, ו-nzbfast עדיין אינו חתום, ולכן ההתראות וההתנהגות אחרי כל עדכון גרועות. וחלק גדול מההתקנות הוא Docker, שרתים בלי מסך וקופסאות NAS שבהן אין מחזיק מפתחות כלל, מה שהיה מותיר שני מסלולי אחסון שונים לשמור נכונים. פורמט אחד מובן היטב שמתנהג אותו דבר בכל מקום הוא, בינתיים, העסקה הטובה יותר.

לשתי אפשרויות נוספות לכל שרת עדיין אין פקד בלוח הבקרה: הוסף אותן ידנית ברשומה של אותו שרת בקובץ config.local.json (ראה §17) והפעל מחדש.

מפתחהערות
bind_ipקושר את החיבורים היוצאים של השרת הזה לכתובת מקומית מסוימת, למכונות עם כמה יציאות ולמנהרות VPN מפוצלות. משפחת הכתובות בוחרת גם את משפחת היעד: קשירת v4 מתחברת לכתובת ה-v4 של השרת.
socks5שולח את תעבורת ה-NNTP של השרת הזה דרך פרוקסי SOCKS5: host:port, או user:pass@host:port. שם המארח נפתר על ידי הפרוקסי, כך שאין דליפת DNS מקומית.
המלצהשני ספקים על עמודי שדרה שונים מנצחים שלושה על אותו אחד. הרץ גיוון שרתים (§13) כדי לראות אילו מהספקים שלך באמת מגוונים את הכיסוי שלך ואילו הם עותקים כפולים זה של זה.

9 · מדריך הגדרות

כמעט הכול ניתן להגדרה מלוח הבקרה, תחת ⚙ הגדרות; ארבעת היוצאים מן הכלל מפורטים בסוף הפרק. ערכים המסומנים live חלים מיד; ערכי restart חלים בהפעלה הבאה. כל שינוי שנעשה כאן נשמר אל settings.json ושורד הפעלות מחדש (ערכי הממשק גוברים על דגלי שורת הפקודה).

מהירות ותזמון חי

הגדרהמה היא עושה
מגבלת מהירותתקרה בבייטים/שנ' (50M, 1G, 0 = ללא הגבלה). אפליקציות מרוחקות עשויות לשלוח אחוזים - הגדר מהירות קו כדי שיתורגמו נכון.
מהירות אוטומטיתתקרה מווסתת-RTT שמפנה מקום לתעבורה ביתית אחרת ומתרחבת מחדש כשהקו שקט.
דחייה אוטומטית של הורדות איטיותמשימה תקועה על שרת איטי אחד בזמן שאחרות ממתינות מועברת לסוף התור (ההתקדמות נשמרת). ראה §13.
טעינה מקדימה בשרתים פנוייםשרתים חסרי-תועלת למשימה הפעילה מתחילים את הבאה בתור. ראה §13.
עדכון אוטומטי / כתובת בדיקת עדכוניםראה §14.
מהירות קוהמהירות המדורגת של החיבור שלך - מאפשרת מגבלות אחוזים מאפליקציות תואמות-SABnzbd.
תזמון שבועיעורך שורות לכללי זמן-בשבוע: השהה, המשך, או קבע מגבלת מהירות בימים/שעות נתונים (שעון מקומי). לדוגמה הגבל ל-20 MB/s בימי חול 9–17, ללא הגבלה אחרת.

הורדה הבאה חי

חיבורים (לכל שרת), חלון (עומק צנרת לכל חיבור), מפענחים (חוטי פענוח מקבילים). נדגמים כשכל משימה מתחילה. ברירות המחדל נכונות לרוב הקווים; השתמש בכלי הכוונון לפני העלאה עיוורת.

בדיקה במהלך ההורדה בוחרת כמה נבדק בזמן שהנתונים מגיעים. מלאה מאשרת כל בלוק PAR2 באמצעות MD5. מהירה (ברירת המחדל) תובעת בלוקים לפי CRC32, מה שמהיר פי 2-3 במעבד איטי, ועדיין בודקת את סכום הביקורת של כל מאמר. חסכונית מדלגת גם על סכומי הביקורת האלה של המאמרים ברגע ש-PAR2 מכסה קובץ: הנזק מתגלה אז רגע מאוחר יותר, בבלוק שלו. בשלושתן המעבר המסכם וכל תיקון משתמשים ב-MD5 מלא, והורדה בלי קובצי PAR2 שומרת על סכומי הביקורת של המאמרים שלה.

דיסק ומכסה חי

שטח פנוי מינימלי (השהה משימות חדשות מתחתיו; 2 ג׳יגה-בייט כברירת מחדל, 0 מכבה), מכסת הורדה ל יום או חודש (UTC; משימות כפייה עוקפות), מגבלת זיכרון - תקציב ה-RAM של המנוע (ברירת מחדל: ¼ מה-RAM, עם תקרה; העלה אותו על מכונת RAM-גדול למהירות מרבית במשימות ענק, וראה מה עולה זיכרון נמוך לפני הורדתו) הפעלה מחדש.

העבר את שהושלמו אל: אחרי פריסה, ניקוי ושינוי שם, הורדות שהסתיימו עוברות לכאן - שיתוף NAS, כונן מדיה, היכן שהספרייה שלך נמצאת. מבנה הקטגוריות נשמר (משימה שהסתיימה תחת tv/ נוחתת ביעד תחת tv/), וההיסטוריה עוקבת אחרי ההעברה, כך שאפליקציות מחוברות מייבאות ומוחקות במיקום החדש. אם היעד אינו נגיש כשמשימה מסתיימת (שיתוף לא מחובר, אין מקום), הקבצים נשארים בתיקיית ההורדות והמשימה מסתיימת בכל זאת כרגיל. ריק = כבוי. יעדים לפי קטגוריה מפנים קטגוריות מסוימות למקום אחר (tv=/Volumes/NAS/TV, movies=/Volumes/NAS/Movies); כל נתיב שהוגדר הוא תיקיית הקטגוריה עצמה, ולכן לא נוצרת בתוכו תת-תיקיית קטגוריה נוספת. קטגוריות שלא הוגדרו פועלות לפי העבר את שהושלמו אל.

עומק ארכיונים מקוננים (ברירת מחדל 5) הוא מספר שכבות הארכיון-בתוך-ארכיון שנפרסות אוטומטית: מערך RAR שמכיל 7z שמכיל RAR נוסף הוא דבר רגיל ביוזנט, ו-nzbfast עוקב אחר השרשרת בלי מעבר שני. בגבול, הארכיון העמוק ביותר פשוט נשאר במקומו, בלי פריסה נוספת, וההורדה מסתיימת בכל זאת. העלה את הערך רק עבור רליסים עמוקים במיוחד.

שינוי שם וניקוי אוטומטיים live

שנה שמות של הורדות שהסתיימו (פעיל כברירת מחדל) נותן לתיקייה ולקובץ הראשי שם נקי ומובן: סרט הופך ל-Example Movie (2024), וסדרות שומרות על Show - S01E02. שמות מעורפלים או בלתי מזוהים נשארים בדיוק כפי שפורסמו במקום שינחשו.

הגדרהמה היא עושה
כלול רזולוציהמוסיף 1080p, 2160p… לשם. פעיל כברירת מחדל; ארבעת התגים האחרים כבויים.
כלול קודק וידאוx265, x264, AV1
כלול קודק אודיוAtmos, DTS-HD, AC3
כלול מקורBluRay, WEB, REMUX
כלול קבוצת רליסהתג -GROUP בסוף.
הסר קובצי זבלפעיל כברירת מחדל. מוחק שאריות .par2, .nzb, .sfv, .nfo וקטעי דוגמה מתיקיות סרטים וסדרות שהסתיימו. לעולם לא את הווידאו או הכתוביות שלו.
שמור רק את קובץ המדיהכבוי כברירת מחדל, והרסני: מוחק לצמיתות כל מה שבתיקייה חוץ מהווידאו (או הווידאו־אים) והכתוביות. כל פרק בחבילת עונה נשמר. גובר על הסר קובצי זבל כששניהם פעילים.
Keep the other words in the nameמופעל כברירת מחדל. ספורט, מרוצים ואירועים אחרים הם לעיתים קרובות אותה כותרת שחוזרת על עצמה לאורך כל העונה, במרחק מילה או שתיים - "Round11 Hungary Race" מול "Round11 Hungary Qualifying". שמירת המילים האלה היא מה שמונע מעונה שלמה להתמוטט לאותו שם. חל רק במקומות שבהם לא ניתן היה לסדר את השם בדרך אחרת, כך שסרטים ופרקים רגילים אינם נוגעים.

הקבוצה כולה פועלת אחרי התיקון והפריסה ולפני העבר את שהושלמו אל, ומדולגת לגמרי עבור משימה שעדיין ממתינה לסיסמה. שני שלבי המחיקה חלים רק על רליסים שזוהו כסרט או כסדרה: מטען תוכנה או מערך שלא ניתן לסווג (מעורפל) לעולם אינו מנוקה.

קבצים שנמחקים עוברים לאשפה קובע מה פירוש "מחיקה" למעלה. כשהוא פעיל, הניקוי מעביר קבצים לאשפה של המערכת או לסל המיחזור, כך שניחוש שגוי לגבי מה שנחשב זבל ניתן לביטול; כשהוא כבוי הם נמחקים לצמיתות. הוא פעיל כברירת מחדל ב-macOS וב-Windows, שם האשפה נמצאת במקום שאפשר לראות ולרוקן, וכבוי כברירת מחדל ב-Linux, שם היא בדרך כלל לא.

ב-NAS או בקונטיינר, השאר את זה כבוי. כשההורדות שלך נמצאות על דיסק אחר מתיקיית הבית שלך - הסידור הרגיל ב-Unraid, Synology, seedbox או כל התקנת Docker עם שיתוף מחובר - כללי האשפה של Linux לא משתמשים כלל באשפה שולחנית. במקום זאת הם יוצרים תיקייה מוסתרת .Trash-1000 (המספר הוא מזהה המשתמש שלך) בראש דיסק ההורדות ומעבירים את הקבצים לשם. שום דבר לא מציג לך את התיקייה הזאת, שום דבר לא מרוקן אותה, והמקום שהיא תופסת לא חוזר לעולם.

אם הרצת גרסה מוקדמת של nzbfast על Linux כשההגדרה פעילה, חפש את התיקייה הזאת בשורש שיתוף ההורדות שלך. בטוח לרוקן אותה: כל מה שבתוכה הוא קובץ שהניקוי כבר החליט שלא רצית. nzbfast לא ירוקן אותה בשבילך, כי היא על הדיסק שלך והשיפוט הוא שלך.

תיקיות ועיבוד

תיקיית הורדות הפעלה מחדש, תיקיית מעקב, סקריפט עיבוד לאחר הורדה (רץ אחרי כל משימה עם ארגומנטים תואמי-SABnzbd וסביבת SAB_* - סקריפטי SAB קיימים עובדים ללא שינוי), סיומות ניקוי (קבצי זבל נמחקים לאחר השלמה), תיקיות חכמות ו-תיוק TV (ראה §10).

לשמור קובצי .nzb אחרי איסוף (כבוי כברירת מחדל) משאיר את קובץ ה-.nzb המקורי בתיקיית המעקב אחרי הוספתו לתור, במקום להעביר אותו לאשפה - לאספנים, ולמסירת הקובץ למישהו כשהורדה מתנהגת מוזר. קובץ שנשמר נזכר, גם בין הפעלות מחדש, ולא נוסף לתור שוב; שמור אותו מחדש כדי להוריד שוב. כך או כך, במגירה של כל משימה יש כפתור הורדת קובץ ה-.nzb, כך שעותק של ה-.nzb של כל משימה תמיד במרחק לחיצה אחת.

אינדוקס חי

האינדקסר המובנה כבוי כברירת מחדל. הוא מוצא פוסטים שפורסמו תחת שם קובץ אמיתי, וחלק גדול והולך וגדל מ-Usenet מפורסם בכוונה בלי כזה: נושא אקראי, שמות קבצים אקראיים בפנים, נזרק לקבוצה כללית שהכול מושלך אליה. השם האמיתי חי רק בקובץ NZB שהמעלה מפרסם במקום אחר, ולכן הוא מעולם לא היה על Usenet כדי שסורק כלשהו יקרא אותו. נמדד על האינדקס שלנו: 14.8 מיליון פוסטים סרוקים הניבו כ-31,000 רליסים לעיון, בערך אחד מתוך חמש מאות. המשך להשתמש באינדקסרים מסחריים, והוסף אותם תחת Settings → Search indexers כדי שתוכל לחפש בהם מהקיר. הפעל את זה אם אתה עוקב אחרי קבוצות מסוימות שבהן עדיין מפרסמים בשמות אמיתיים, או אם אתה רוצה לראות מה הספק שלך באמת נושא. כשהמתג כבוי דבר אינו נסרק או נמשך, לא נוצר מסד נתונים, והקיר, עיון, רשימת המעקב וערוץ ה-newznab מוסתרים.
הגדרהמה היא עושה
אינדקסר מובנההמתג הראשי, כבוי אלא אם תדליק אותו. כבוי פירושו בלי סריקה, בלי חיפושי מטא-נתונים, בלי דגימת זמינות ובלי ערוץ newznab; אינדקס שכבר נמצא על הדיסק נשמר (יש כפתור מחיקה), כך שהדלקה מחדש ממשיכה במקום לסרוק מחדש.
קבוצותקבוצות דיון שהאינדקסר המובנה סורק (לדוגמה alt.binaries.teevee).
מרווח סריקהשניות בין מעברים (ברירת מחדל 900).
מאמרי מילוי לאחורכותרות שמורדות בסריקה הראשונה של קבוצה.
העמקה בכל סריקהכל מעבר גם מאנדקס כמות זו של מאמרים ישנים יותר, ומגדיל את ההיסטוריה הניתנת לחיפוש ברקע עד שמגיעים לגיל מרבי (ברירת מחדל 200,000 לכל מעבר ≈ עשרות מיליוני מאמרים ליום פעילות).
גיל מרביהתעלם מפוסטים ישנים מזה (90d, 6m, 2y) - מגביל את גודל האינדקס וזמן הסריקה.
גיזום לחלון הגילפעיל כברירת מחדל. מוחק גם רליסים שכבר נשמרו ברגע שהם מזדקנים מעבר לגיל המרבי, כך שהאינדקס מחזיק בערך את החלון הזה במקום לגדול לנצח. כבוי = רק פוסטים חדשים מסוננים, ומה שנשמר נשאר. שברי זבל מתים (מוסתרים, עדיין חלקיים אחרי שבוע) נאספים כך או כך.
שערי קליטהכללי JSON המסננים מה נכנס לאינדקס: סוגים (זבל מעורפל נזרק כברירת מחדל), שנה/רזולוציה/שפה, גבולות גודל.
סרוק עכשיו / סריקה עמוקה מחדשהרץ מעבר מיד; עם עומק, סרוק מחדש כמות זו של כותרות אחרונות.
מפתח OMDb / רענון מטא-נתונים / מחיקהבקרות העשרת קיר (§6). מחיקה בונה מחדש את מסד הנתונים מאפס - נתיב השחזור אם הוא אי פעם נפגם.
הזנת preכבויה עד שתדליק אותה. העלאות רבות מתפרסמות בלי השם שלהן, ולסריקה אין מה לקרוא. ערוצי ממסר ציבוריים מכריזים על השם האמיתי, והדרך הפתוחה היחידה לקשר פרסומים כאלה. הדלקה שומרת חיבור פתוח לרשת IRC ומאזינה: דבר לא נשלח אי פעם ולא נוצר חשבון. דורשת שהמפתח יהיה דלוק, כי הזנה בלי מקום לאחסן את מה ששמעה היא שקע שנשאר פתוח לחינם.
שרת ממסר, ערוצי ממסררשת ה-IRC שנושאת את ההכרזות (מארח או מארח:פורט) והערוצים להאזנה, מופרדים בפסיקים. שינוי נכנס לתוקף בחיבור הבא: כבה והדלק את ההזנה כדי להחיל אותו מיד.
מתן שם לפי מתאםממסרי השידור החי הציבוריים אינם נושאים שמות קבצים, ולכן רוב הפרסומים המעורפלים אינם ניתנים לקישור ישיר. מה שהכרזה כן קובעת הוא מתי גרסה הופיעה וכמה היא גדולה. זה משווה זמן וגודל מוכרזים לפרסומים חסרי שם, וכשהם מתאימים מציע את השם האמיתי בעמוד העיון. הצעה מסומנת כהצעה, דורשת את הלחיצה שלך, ולעולם אינה משנה שמות של קבצים בדיסק.
החל התאמות חזקות אוטומטיתכבוי כברירת מחדל, ומחמיר כשהוא דלוק: הגודל חייב להתאים בהדוקות, שום הכרזה אחרת לא תתאים כמעט באותה מידה, וההכרזה חייבת לבחור את הפרסום הזה בחזרה בבדיקה ההפוכה. שם שהוחל משנה רק את אופן ההצגה, מסומן כמוסק, ויורד מעצמו אם הורדה שהסתיימה מפריכה אותו. כל מה שחלש יותר נשאר הצעה.
היסטוריית הכרזותההזנה החיה שומעת רק הכרזות שנעשו אחרי שהודלקה. זה מביא כשישה חודשים של הכרזות קודמות ממסד pre ציבורי, בנימוס ופעם אחת, כדי שגם פרסומים שכבר במפתח יוכלו להתקשר. רץ ברקע כחצי שעה.

ספרייה, אבטחה, ממשק

ספרייה: קטגוריות המטופלות כרשומות ספרייה מיידיות + מרווח בדיקה חוזרת. אבטחה: מפתח ה-API המלא (הכול) ומפתח ה-NZB (הוספה בלבד - בטוח לתת לאתרי אינדקסרים), שניהם ניתנים להחלפה חי. כל תיבה מחליפה את המפתח שהיא שייכת לו ברגע שאתה יוצא מהשדה, והשארת תיבה ריקה שומרת על המפתח שכבר יש לה. למפתח ה-API יש גם Show, שחושף ומעתיק את המפתח הנוכחי כדי שתדביק אותו ב-Sonarr, ב-Radarr או ב-NZB360 מתי שיתאים לך, ו-Create new, שמנפיק מפתח חלופי - הישן מפסיק לעבוד מיד, ולכן כל מה שכבר מחובר צריך לקבל את החדש. שניהם מותנים במפתח ה-API עצמו: מפתח ה-NZB להוספה בלבד אינו יכול לקרוא אותו, וזו כל הנקודה במפתח הזה. מהיכן מגיע המפתח בהתקנה חדשה, ראה §2. ממשק: צלילי לחיצה, התראות שולחן עבודה בהשלמה, מרווח מיון מחדש של ספקים.

יחידות מהירות live קובע כיצד מוצגת כל מהירות בלוח הבקרה: מגה-בייט (MB/s, המקובל במנהלי הורדות, ברירת המחדל) או מגה-ביט (Mb/s, כפי שספקיות מציינות קווים). גדלי קבצים נשארים בבתים בכל מקרה. זו תכונה של הדימון ולא של הדפדפן שלך, ולכן היא חלה על כל מכשיר שמביט בהתקנה הזאת.

מתקדם: כפתורי הכוונון שמאחורי המובנים מאליהם

שש הגדרות בלי דגל בשורת הפקודה. לכל אחת יש עכשיו שורה מתקדמת בכרטיס ההגדרות שאליו היא שייכת, והיא עדיין ניתנת לקביעה דרך ה-API (§16), למשל /api?mode=config&name=verify_mode&value=lean&apikey=…. כמו כל היתר הן נשמרות אל settings.json.

שםמה היא עושה
verify_modefull | fast | lean (ברירת מחדל fast). lean הוא הדחיפה למעבדים איטיים: כמו fast, אך מדלג גם על ה-CRC של yEnc לכל מאמר ברגע ש-PAR2 מכסה קובץ, ומשאיר שכבת CRC32 אחת במקום שתיים. הורדות ללא PAR2 שומרות על ה-CRC של המאמרים, והאימות והתיקון בסוף המשימה אינם משתנים בשני המקרים. הבורר בדיקה במהלך ההורדה שלמעלה הוא ההגדרה הזאת.
auto_retry_minsההמתנה לפני הניסיון החוזר האוטומטי היחיד שכישלון ראשון עם מאמרים חסרים מקבל (ברירת מחדל 20). השהיית התפוצה היא סיבה אמיתית למאמרים חסרים והיא נפתרת מעצמה; בזכות היומן, ההרצה החוזרת מביאה רק את מה שעדיין חסר. כישלונות בגלל סיסמה או הסרה לעולם אינם נכללים.
index_scan_parכמה קבוצות המאנדקס סורק במקביל (ברירת מחדל 3, מוגבל ל-1-8).
oracle_sampleתקציב ה-STAT בהמתנה של אורקל הזמינות (§13), בדיקות לשעה לכל שרת. ברירת מחדל 300, מקסימום 3600, 0 מכבה את הדגימה לחלוטין.
predb_max_rowsכמה הכרזות pre טבלת ההזנה שומרת (ברירת מחדל 250000, מוגבל לטווח 10000-5000000). הגיזום השעתי מקצר למספר הזה, והייבוא ההיסטורי מסרב להתחיל אם היה חורג ממנו, כך שייבוא לעולם אינו מוסיף שורות שהגיזום הבא ימחק.
predb_seed_daysעד כמה אחורה מגיע ייבוא היסטורי שהופעל בלי חלון משלו (ברירת מחדל 180 יום, לכל היותר 366). חלון גדול יותר פירושו יותר בקשות למקור ה-pre, שקצבו בקשה אחת לכל שתי שניות.

10 · אוטומציה

רשימת מעקב

האוטומציה הפשוטה ביותר: הוסף כותר בלוח המחוונים, קבע העדפות איכות, סיימת. רליסים חדשים נתפסים כשהם מופיעים בקבוצות המאונדקסות שלך; עותקים באיכות טובה יותר משדרגים תפיסות קודמות; תצוגת לוח שנה מציגה מה עומד להגיע.

פידי RSS

Settings → RSS: כל כתובת RSS של newznab/אינדקסר עם מרווח לכל פיד, קטגוריה ו כללי מסנן (תבניות כותר, גבולות גודל). פריטים מתאימים מורדים אוטומטית.

תיקיות חכמות

כללים המוערכים כשמשימה מתווספת: התאם לפי תבנית/מילות מפתח וגודל, הקצה קטגוריה (ההתאמה הראשונה מנצחת). עם תיוק TV פעיל, פרקי טלוויזיה שהסתיימו מקבלים שם חדש ומתויקים כ-Show/Season 01/Show - S01E02.mkv - מוכן ל-Plex/Jellyfin בלי כלי חיצוני.

מתזמן

התזמון השבועי (ראה §9) מבצע אוטומציה של השהיה/חידוש/מהירות לפי שעה ביום.

סקריפטים

סקריפט עיבוד לאחר הורדה מקבל את הארגומנטים המיקומיים של SABnzbd ו משתני סביבה SAB_* - המערכת האקולוגית הגדולה של סקריפטי SAB רצה כמות שהיא.

11 · Sonarr, Radarr וחברים

nzbfast דובר את ה-API של SABnzbd באופן מקורי, כך שכל *arr עובד מהקופסה - והוא יכול לשמש גם כאינדקסר שלהם.

כקליינט ההורדות

  1. ב-Sonarr/Radarr: Settings → Download Clients → הוסף SABnzbd.
  2. מארח: מכונת ה-nzbfast שלך · פורט: 6789 · מפתח API: מפתח ה-API המלא שלך (היכן למצוא אותו: §2).
  3. קטגוריה כרצונך (לדוגמה tv / movies). בדיקה → סימון ירוק → שמור.

תור, היסטוריה, סטטוס לכל משימה, "הסר ומחק", ניסיון חוזר וניתוב קטגוריות כולם מתנהגים כפי שה-*arrs מצפים.

כאינדקסר (newznab)

  1. Settings → Indexers → הוסף Newznab.
  2. כתובת: http://<host>:6789/ · נתיב API: /api · מפתח: מפתח ה-API שלך.
  3. nzbfast מגיש שאילתות caps, search, tvsearch ו movie מהאינדקס שלו עצמו של הקבוצות במעקב שלך, ו /getnzb/<id> מחזיר את ה-NZB.
הדלק קודם את האינדקסר המובנה (Settings → Indexing). הוא כבוי כברירת מחדל, וכל עוד הוא כבוי החזית הזו עונה לכל שאילתה ב-<error code="101"> במקום בתוצאה ריקה, כך שטעות מתגלה כשאתה מוסיף את האינדקסר ולא שבועות אחר כך.

למה בכלל? אינדקסר באירוח עצמי של בדיוק הקבוצות שמעניינות אותך: בלי חשבונות, בלי מגבלות קריאות API, שימור עמוק ככל שתיתן לו לסרוק. זו תוספת לאינדקסרים הרגילים שלך ולא תחליף, מפני שהוא מוצא רק את מה שפורסם תחת שם קובץ אמיתי.

12 · טלפון ואפליקציות מרחוק

nzbfast מיישם את שני פרוטוקולי השליטה-מרחוק המרכזיים, כך שכמעט כל אפליקציית נייד/טאבלט עובדת. בחר את הפרוטוקול שהאפליקציה שלך תומכת בו:

אפליקציות שדוברות NZBGet (nzb360, LunaSea, NZB Unity…)

שדה באפליקציהערך
סוגNZBGet
מארח / פורטהמכונה שלך : 6789
שם משתמשכל דבר (לדוגמה nzbfast)
סיסמהה-מפתח API שלך

כל משטח ה-JSON-RPC שהאפליקציות האלה משתמשות בו מוגש: סטטוס, תור עם סידור מחדש/השהיה/מחיקה, היסטוריה, הוספת-NZB, מגבלת מהירות, השהיה/חידוש, יומן.

אפליקציות שדוברות SABnzbd

שדה באפליקציהערך
סוגSABnzbd
מארח / פורטהמכונה שלך : 6789
מפתח APIמפתח ה-API שלך (או מפתח ה-NZB לגישת הוספה-בלבד)

לוח המחוונים בטלפון שלך

פשוט פתח את http://<machine>:6789 בדפדפן נייד - כל לוח המחוונים והקיר בעלי פריסת מגע. פאנל Settings → Remote access מציג את הכתובות המדויקות וקוד QR לסריקה.

גישה ל-nzbfast מחוץ לבית

אין דף התחברות, וזו בחירה מכוונת. התחברות מבוססת עוגיית הפעלה היא משטח אבטחה שצריך לתחזק לנצח, והיא עדיין תהיה המנעול החלש ביותר בכל דבר שחשוף לאינטרנט הפתוח. במקום זאת nzbfast מאמת באמצעות מפתח ה-API שלך, ומקבל את המפתח גם בכותרת של הבקשה וגם בכתובת (X-Api-Key, או Authorization: Bearer) - וזה בדיוק מה שמאפשר לשירות שנמצא לפניו לטפל בהתחברות כמו שצריך.

התשובה הפשוטה ביותר היא לא לפרסם אותו כלל. התקן Tailscale על המחשב הזה ועל הטלפון, ושניהם מצטרפים לרשת פרטית אחת: שום דבר לא נחשף, אין צורך בשינויי נתב או בתעודה, והגדרות ← גישה מרחוק מציגות כתובת שעובדת מכל מקום ברגע שהיא מזהה ש-Tailscale פועל. העדף את זה אלא אם אתה באמת זקוק לדומיין ציבורי.

אם אתה כן זקוק לו, הצב לפניו פרוקסי הפוך, תן לו את התעודה, ותן לו לבצע את האימות. הפעל את nzbfast עם --bind 127.0.0.1 כך שהפרוקסי יהיה הדרך היחידה פנימה, והפנה את הפרוקסי אל 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;
}

הוסף מעל מה שהפרוקסי שלך מציע: אימות basic, שירות forward-auth כמו Authelia או Authentik, או תעודות לקוח. דבר אחד תופס את כולם - Sonarr, ‏Radarr והאפליקציות בטלפון לא יכולות להשלים התחברות בדפדפן, אז השאר להן מעבר. רוב שרתי הפרוקסי יודעים להעביר בקשה שנושאת כותרת X-Api-Key תקפה ולדרוש אימות מכל השאר.

אל תעביר סתם את פורט 6789 בנתב. לוח הבקרה מדבר HTTP רגיל, כך שמפתח ה-API שלך וכל מה שתעשה איתו יחצו את האינטרנט קריאים לכל מי שנמצא בדרך, והתקנה ללא מפתח כלל פתוחה לכל מי שימצא אותה. אם בכל זאת אתה מעביר פורט, הגדר תחילה מפתח API.

13 · כלי ביצועים

בדיקת ביצועי מערכת

לחיצה אחת מודדת את שלוש התקרות שלך - תפוקת רשת (בדיקה אמיתית של 8 שניות מרובת-חיבורים), קצב אימות מעבד, ומהירות כתיבה לדיסק - ופותחת בתשובה: מהירות ההורדה המרבית הצפויה שלך ואיזו תקרה היא המגבלה. הפס הקצר ביותר הוא צוואר הבקבוק שלך; האחרים מציגים את המרווח שלהם. תזמן אותה (כל 6 שעות → שבועי) וכל הרצה נרשמת לטבלת היסטוריה, כך ש אתה יכול לראות מתי הספק, ה-ISP או החומרה שלך שינו התנהגות. הרצות מתוזמנות קורות רק כשהתור פנוי.

כוונון חיבורים

מודד ספק אחד במספרי חיבורים עולים וממליץ על ההגדרה - יותר שקעים עוזרים עד שהספק או הקו שלך רוויים, וחלק מהספקים מענישים על בקשת יתר. בדוק הכול משווה כל ספק, ואז מפרץ את כולם יחד כדי לבדוק שהמאגר מרווה את הקו שלך.

גיוון שרתים

דוגם STAT מאמרים לאורך גילאים בכל שרת ומקבץ ספקים לפי פערים משותפים: ספקים עם ~100% מאמרים חסרים משותפים הם אותו עמוד שדרה (כפולים לשחזור); עצמאיים באמת מרחיבים את הכיסוי שלך. מסתיים בהמלצה בשפה פשוטה.

אינטליגנציית תור אוטומטית

אורקל הזמינות

הסרות הן הסיבה העיקרית לכישלון הורדה ביוזנט, והן ניתנות לחיזוי: אותו רליס נעלם בעמוד שדרה אחד בעוד שאחר עדיין מחזיק אותו. nzbfast מנהל פנקס קטן של מה שהספקים שלך באמת סיפקו, ומוציא תקציב זעיר של בדיקות STAT בזמן המתנה (כמה מאות בשעה לכל שרת, לעולם לא במהלך הורדה) כדי לשמור אותו עדכני. הוא לעולם אינו מוריד מטען לשם כך.

מה יוצא לך מזה:

פסק הדין הוא חיזוי מתוך ראיות, לא ערובה. לתשובה חד-משמעית על NZB בודד, nzbfast check (§15) סופר את המאמרים בפועל.

תקציב זיכרון - ומה עולה זיכרון נמוך

כל מטמוני המנוע חולקים תקציב אחד (ברירת מחדל ¼ מה-RAM הפיזי, מהודק ל- 256 MB–16 GB). קבע אותו במפורש עם מגבלת זיכרון ב-Settings, או --mem-limit בשורת הפקודה.

nzbfast בנוי לספוג את הרשת שלך ואת הדיסק שלך בו-זמנית, וה-RAM הוא מה שמאפשר לו לעשות את שניהם במעבר יחיד: מאמרים מפוענחים, מאומתים ונכתבים ישר להיסטים הסופיים שלהם, כך שכרכי ארכיון לעולם לא צריכים לגעת בדיסק בכלל. הרעב אותו מזיכרון ושום דבר לא נשבר - לכל מטמון יש נתיב גלישה, והמנוע מתדרדר ליותר קלט/פלט דיסק במקום swap או כשל. אבל הגלישה הזו אינה חינם, ובמשימות גדולות אתה יכול למדוד אותה.

נמדד על מכונה אחת וקו אחד (M1 Ultra, 10 GbE), אותם קבצים בכל תקציב. כל הרצה הפיקה תוצאה נכונה, מאומתת במלואה, מחולצת:

גודל משימהשפע RAMתקציב 2 GB
≈ מכונת 8 GB
תקציב 1 GB
≈ מכונת 4 GB
תקציב 256 MB
≈ NAS של 2 GB
7 GB15 s15 s15 s15 s
35 GB65 s70 s70 s65 s
87 GB148 s206 s +39%196 s +32%180 s +22%
190 GB330 s427 s +29%402 s +22%411 s +25%

שיא הזיכרון עוקב אחר התקציב, לא אחר המשימה: אותה הורדת 190 GB מסתיימת בכ-1.1 GB של RAM. מה שאתה מוותר עליו תמורתו הוא זמן - ורק במשימות גדולות.

המלצהתן ל-nzbfast בערך 2 GB תקציב לכל 100 GB של המשימה הגדולה ביותר שאתה מוריד, והשאר את ברירת המחדל לבד אחרת - ¼ מה-RAM הוא כבר התשובה הנכונה ברוב המכונות. בפועל: 4 GB RAM מכסה משימות עד ~35 GB במהירות מלאה; 8–16 GB שומר גם משימות של 100 GB-פלוס שם; NAS של 2 GB יסיים כל דבר שתזרוק עליו, אבל התייחס אליו כאל מוריד ברקע ולא כאל משהו שירווה קו מהיר.

על NAS קטן, הורד גם את חיבורים (2–4) יחד עם התקציב. בתקציב 256 MB ו-2 חיבורים, שיא הזיכרון נשאר קרוב ל-190 MB - בנוחות בתוך מה שיש ל-NAS של 2 GB פנוי. שים לב שבנקודה הזו מספר החיבורים, לא הזיכרון, הוא מה שמגביל אותך: אותה משימת 35 GB לקחה 286 s במקום 65 s. זו הצורה הכנה של הפשרה - הוא תמיד יסיים, ויסיים נכון; הוא פשוט לא יספוג את הקו.

בדיקות ביצועים מורצות מחדש לכל מהדורה; השיטה והמספרים לכל מכונה מתפרסמים לצד התוצאות.

14 · עדכונים

עדכון בלי לאבד את ההגדרות

כלל אחד מכסה כל התקנה: עדכון מחליף את התוכנה, לעולם לא את ההגדרות שלך. כל מה שהגדרת - שרתים, נתיבים, מפתח ה-API, התור - חי בקומץ קבצים בתיקייה אחת (§17), ושום מתקין, משיכת אימג' או שדרוג חבילה לא נוגעים בתיקייה הזו. כשההגדרות בכל זאת נראות נעלמות אחרי עדכון, זה כמעט תמיד משום שההתקנה החדשה קוראת תיקייה אחרת, ריקה, לא משום שמשהו נמחק; הקבצים הישנים עדיין נמצאים היכן שתמיד היו. §18 מכיל את צעדי השחזור.

התקנהאיך מעדכנים
אפליקציית macOSפתח את ה-DMG החדש וגרור את NzbFast אל Applications, תוך החלפת הישן. תיקיית הנתונים שלך נפרדת ואינה נפגעת.
מתקין Windowsהרץ את תוכנית ההתקנה החדשה מעל ההתקנה הישנה. תיקיית הנתונים שלך נפרדת ואינה נפגעת.
Docker (שורת פקודה)docker pull nzbfast/nzbfast, הסר את הקונטיינר הישן, ואז הרץ את החדש עם בדיוק אותם מיפויי -v. האימג' הוא בר-החלפה; תיקיית ה-/config הממופה היא ההתקנה שלך. אם פקודת ההרצה שלך משתמשת בנתיב יחסי כמו -v ./config:/config, הרץ אותה מאותה תיקייה בכל פעם - מכל מקום אחר, ./config היא תיקייה אחרת, ריקה.
Docker Composedocker compose pull && docker compose up -d, עם אותו קובץ compose באותו מקום. ה-./config שבקובץ מעוגן לתיקייה של הקובץ עצמו, אז השאר את הקובץ היכן שהוא.
Watchtowerאין מה לעשות: הוא יוצר מחדש את הקונטיינר עם אותם מיפויים כשיוצא אימג' חדש.
Unraidלשונית Docker → Check for UpdatesApply Update. לעולם אל תסיר ותוסיף מחדש את האפליקציה כדי לעדכן אותה; אם אי פעם בכל זאת תתקין מחדש, שמור על אותו נתיב appdata כדי שהיא תמצא את ה-/config הקיים שלך.
Synology (Container Manager)הורד את האימג' החדש, עצור את הקונטיינר, וצור אותו מחדש עם אותן הגדרות אחסון - המדריך של Synology מלווה זאת קליק אחר קליק, כולל ביצוע לפי לוח זמנים.
Synology (חבילה)התקן את ה-.spk החדש ב-Package Center; הוא משתדרג במקומו.
Homebrewbrew upgrade nzbfast
קובץ בינארי רגילהחלף את הקובץ הבינארי. התצורה שלך נשארת היכן שיצרת אותה (§17).
טיפמשתמשי Docker שמחברים Sonarr או Radarr: שימו את מפתח ה-API בהגדרת הקונטיינר עצמה (-e NZBFAST_APIKEY=…, או בלוק ה-environment של קובץ ה-compose שלכם או של תבנית ה-Unraid). מפתח ששמור שם שורד כל תקלת קונטיינר, כי הוא חי על המארח, בתוך ההגדרה, ומוחל מחדש בכל הפעלה. מפתח שתקבעו מאוחר יותר בהגדרות עדיין גובר עליו.

15 · שורת הפקודה

כל מה שהדימון עושה ניתן גם לסקריפטינג. הפקודות היומיומיות:

פקודהמטרה
nzbfast setupהגדרת שרת אינטראקטיבית.
nzbfast serveהרץ את הדימון (לוח מחוונים + API + אוטומציה). --open פותח את הדפדפן; --apikey קובע את המפתח ידנית (§2); --bind בוחר את כתובת ההאזנה, ברירת המחדל 0.0.0.0 (כל ממשק), 127.0.0.1 למכונה זו בלבד. ראה --help לרשימת הדגלים המלאה - לכל הגדרת לוח מחוונים יש דגל תאום.
nzbfast get file.nzbהורד NZB אחד, צינור מלא, בלי דימון. --preflight מבטל מוקדם אם הפוסט לא יכול להסתיים; --password לסטים מוצפנים.
nzbfast check file.nzbפסק דין זמינות - שלם / ניתן לתיקון / בלתי אפשרי - בלי הורדת מטען.
nzbfast verify DIRאמת קבצים מול סט ה-PAR2 בתיקייה.
nzbfast sysbenchבדיקת ביצועי המערכת + דוח גיוון, בטרמינל.
nzbfast index / searchסרוק קבוצות לאינדקס / חפש בו, בלי הדימון.
nzbfast import-sabייבא שרתים מ-ini של SABnzbd.

זמינות גם: inspect, probe, bench, bench-cpu, soak, fetch, spots/spot-search/spot-get (Spotnet), predb-seed (ממלא את מסד ה-pre בתקופה שלפני הפעלת ההזנה), make-release-nzb/make-test-nzb (מתקני בדיקה). כל פקודה מקבלת --config ו---help. אליהם מצטרפת post: היא מעלה קבצים כמאמרי yEnc וכותבת את ה-NZB המתאים. כלי תפעול; היא דורשת --post-server מפורש ולעולם אינה בוחרת עבורך שרת.

16 · סקירת API

נקודת קצה בסיסית: http://host:6789/api?mode=…&apikey=…&output=json - תואם-SABnzbd, כך שאינטגרציות SAB קיימות עובדות ללא שינוי. שני מפתחות: מפתח ה-API (שליטה מלאה) ומפתח ה-NZB (הוספה בלבד: addfile/addurl). addnzblnk אינו נכלל בכוונה בקבוצת ההוספה בלבד: פענוח קישור עלול לצרוך מכסת אינדקסר נמדדת, וזה לא עניינו של אישור שנועד להוספה בלבד.

תחוםמצבים
תורqueue (עם name=delete/pause/resume/priority/switch), pause, resume, addfile, addurl, addnzblnk, retry, set_password
מידעhistory, status/fullstatus, stats, version, server_stats, usage, log, warnings, ובנוסף /jobnzb/<nzo_id> (מחזיר את קובץ ה-.nzb השמור של המשימה עצמה, מהתור או מההיסטוריה; מפתח API מלא בלבד)
תצורהget_config, config&name=<setting>&value=… (כל שדה הגדרות), server_save/delete/test/enable/reorder, import_probe/apply
אינדקס וקירindex_search, index_get, index_stats, index_scan_now, wall, wall_search/fix/refresh/art, בתוספת newznab ב-/api?t=caps|search|tvsearch|movie ו-/getnzb/<id>
אוטומציהwatchlist, watchlist_check_now, watch_calendar, feeds, smart_folders, schedule
אבחוןsysbench, bench_history, connladder, pooltest, diversity, update_check, update_apply
NZBGet JSON-RPC/jsonrpc - status, listgroups, history, append, editqueue, rate, pause, log (אימות Basic: כל משתמש, מפתח API כסיסמה)
תצוגה מקדימה / ניגון/stream/<nzo_id> (טווחי HTTP; הפעלת משימת ספרייה חונה דורשת אסימון ?t= או מפתח), /m3u/<id> (דורש מפתח; יוצר את האסימון), /wall, /art/…

17 · קבצים ומיקומים

היכן נמצאת תיקיית ההגדרות תלוי באופן שבו nzbfast הותקן. התיקייה האחת הזו מכילה את כל מה ששווה לגבות:

התקנהתיקיית ההגדרות
אפליקציית macOS~/Library/Application Support/nzbfast/
Windows%LOCALAPPDATA%\nzbfast\
קונטיינרים של Docker / NAS/config בתוך הקונטיינר, שהיא תיקיית המארח שמיפית אליו. ב-Unraid זו תיקיית ה-appdata של האפליקציה.
חבילת Synology/var/packages/nzbfast/var/
טרמינלהתיקייה שבה הרצת nzbfast setup, או לאן ש---config / $NZBFAST_CONFIG מצביע.

ומה נמצא בתוכה:

קובץתוכן
config.local.jsonאישורי שרת ואפשרויות לכל שרת. נוצר על ידי האשף; ניתן לעריכה ב-Settings. שמור אותו פרטי. הסיסמאות מעורפלות, לא מוצפנות.
settings.jsonכל הגדרה ששונתה בלוח המחוונים. חי ליד התצורה; ערכי הממשק עוקפים דגלי שורת-פקודה. מחק מפתח (או את הקובץ) כדי לחזור לדגלים/ברירות מחדל.
apikeyמפתח ה-API ש-nzbfast יצר לעצמו בהרצה ראשונה (§2). חי ליד התצורה; קריא רק לחשבון שמריץ את nzbfast ב-macOS וב-Linux. אל תמחק אותו כדי לקבל מפתח חדש: בהתקנה שכבר רצה, שום דבר לא מחליף אותו והדימון עולה בחזרה בלי מפתח כלל. קבע מפתח חדש ב-Settings → Security במקום זאת.
index.dbאינדקס הרליסים (SQLite) + מטא-נתוני הקיר. בטוח למחיקה - הוא נבנה מחדש מסריקה (Settings → Indexing → Wipe עושה זאת עבורך).
<config>/.spool/מצב התור (שורד הפעלות מחדש), קובצי NZB לכל משימה, יומן שימוש, היסטוריית בדיקות ביצועים, מטמון אמנות פוסטרים.
יומן מאמריםבתוך תיקיית הפלט של כל משימה בזמן שהיא לא שלמה - מפעיל חידוש לאחר קריסה וניסיון חוזר. מוסר בהצלחה.
כלים חיצונייםאין צורך בשום דבר - חילוץ RAR ותיקון PAR2 מקוריים. אם סט אקזוטי אי פעם צריך unrar או par2 חיצוני כנפילה לאחור, nzbfast מחפש ליד קובץ ההפעלה שלו, ואז ב-$PATH.

18 · פתרון תקלות

תסמיןבדוק
הורדות איטיותהרץ בדיקת ביצועי מערכת - היא נוקבת בצוואר הבקבוק במפורש. אם זו רשת: הרץ כוונון חיבורים, בדוק מספרי חיבורים לכל שרת, וודא שהספקים שלך אינם כולם עמוד שדרה אחד (גיוון שרתים).
איטי רק במשימות גדולות מאוד
(NAS או מכונת RAM-נמוך)
צפוי, וניתן למדידה: תקציב זיכרון מורעב מגלים מטמונים לדיסק ועולה 20–40% מעבר ל-~87 GB. ראה תקציב זיכרון למספרים וכמה RAM לתת לו. משימות קטנות יותר לא מושפעות.
הורדה נכשלת "מאמרים חסרים"הפוסט פג או הוסר אצל הספקים שלך. ספק שני על עמוד שדרה אחר מציל את רובם. nzbfast check חוזה זאת לפני ההורדה. והקיר מסמן מראש את אלה שקרוב לוודאי נעלמו, באמצעות נקודת הזמינות שלו (§13). כישלון ראשון מסוג זה חוזר על עצמו פעם אחת מאליו אחרי המתנה, משום שהשהיית תפוצה נראית בדיוק אותו הדבר ונפתרת מעצמה.
ארכיון שהסתיים רוצה סיסמהשורת ההיסטוריה מציגה 🔑 - הזן את הסיסמה שם; המשימה מסתיימת במקום.
ארכיון לא נחלץכשלי סיסמה ותיקון מציגים את עצמם בשורת ההיסטוריה. לכל השאר יש פתח מילוט: הגדרות → תיקיית מעקב ועיבוד לאחר הורדה → חילוץ עם unrar חיצוני (הגדרה מתקדמת) מוסר את החילוץ לתוכנת unrar המותקנת במחשב שלך במקום המחלץ המובנה. אחרת השאירו כבוי: הנתיב המובנה מהיר יותר בכל צורה שמדדנו, ופרסומים מוסווים עם שמות hash תמיד משתמשים בו ממילא, כי unrar אינו יכול לעקוב אחר שינויי השמות שלהם. אותו מתג עבור הרצות nzbfast get הוא משתנה הסביבה NZBFAST_NO_NATIVE_UNRAR=1. אם unrar חילץ ארכיון שהמחלץ המובנה סירב לו, אנא דווחו כדי שנתקן את הנתיב המובנה.
Sonarr/Radarr לא מצליחים להתחברפורט 6789 נגיש? מפתח API נכון (מפתח מלא, לא מפתח NZB)? סוג הקליינט מוגדר ל-SABnzbd?
לוח המחוונים מבקש מפתח API שמעולם לא קבעתיהתקנה חדשה יוצרת אחד לעצמה ומדפיסה אותו פעם אחת בהפעלה (§2). הוא נמצא בקובץ apikey ליד התצורה שלך, וגם בפלט ההפעלה. או הקלד מפתח משלך ב-Settings → Security מדפדפן שכבר מחובר.
כל ההגדרות שלי נראות נעלמות אחרי עדכון
(שרתים, נתיבים, מפתח API)
שום דבר בעדכון לא מוחק הגדרות; זה אומר ש-nzbfast קורא תיקייה אחרת, ריקה. ראשית: שדה מפתח ה-API בהגדרות מוצג ריק בכוונה - לחץ Show לפני שתסיק שהוא אבד. ב-Docker, השווה את מיפוי ה-/config של הקונטיינר החדש לזה של הישן: נתיב מארח ששונה, נתיב יחסי שהורץ מתיקייה אחרת, או תיקיית appdata טרייה - כולם מתחילים את nzbfast מאפס בעוד ההגדרות האמיתיות שלך יושבות ללא פגע בנתיב הקודם. מצא את התיקייה הישנה (חפש את settings.json, את קובץ התצורה שלך ואת apikey - המיקומים ב-§17), ואז הפנה את המיפוי חזרה אליה, או העתק את הקבצים האלה לתיקייה החדשה והפעל מחדש. יומן ההפעלה נוקב בקובץ ההגדרות המדויק שבשימוש: [settings] applying saved settings from …
שום דבר ברשת לא מצליח להגיע לדימוןבדוק את --bind: 127.0.0.1 משרת רק את המכונה שעליה nzbfast רץ. ברירת המחדל, 0.0.0.0, משרתת כל ממשק. אחר כך בדוק את חומת האש של המכונה עצמה עבור פורט 6789.
כרטיס העיון נשאר קטןהאינדקסר גדל ברקע - בדוק שקבוצות Settings → Indexing מוגדרות, ותן ל-העמקה בכל סריקה זמן לצבור היסטוריה. "סרוק עכשיו" מכריח מעבר; שורת הסטטוס מציגה התקדמות חיה.
הקיר מציג אמנות שגויה/חסרהגיליון פרטים → ✎ תקן התאמה או ↻ רענן מטא-נתונים. חיפושי סרטים משתפרים עם מפתח OMDb חינמי.
macOS אומר שאי אפשר לפתוח את היישום "nzbfast"שתי סיבות, שתיהן נפתרות מהר. אם אתה משתמש ב--macos-universal.zip הפשוט, לחץ לחיצה כפולה על Start nzbfast.command ולא על הקובץ nzbfast שלידו: זו התוכנית עצמה, ו-Finder עונה ללחיצה כפולה עליה בדיוק בהודעה הזאת. המשגר הוא מה שמכין ומפעיל הכול. אם גם המשגר נותן את אותה הודעה, העותק איבד בדרך אליך את סיבית ההרצה של יוניקס: macOS שומר את הסיבית הזאת בתוך קובץ ה-.zip, אבל אפליקציות צ'אט, כונני ענן ודחיסה מחדש לא שומרים אותה, ולכן עותק שהועבר מיד ליד מגיע בלי הרשאת הרצה. הורד את ה-.dmg או ה-.zip ישירות מדף ה-releases וזה לא יקרה. כדי להציל את העותק שכבר יש לך: פתח את הטרמינל, הקלד chmod +x עם רווח בסוף, גרור את Start nzbfast.command ואת הקובץ nzbfast אל החלון ולחץ Return, ואז לחץ שוב לחיצה כפולה על המשגר.
הדימון לא מתחיל: פורט בשימושמופע אחר רץ - או שנה את --port.
איפה היומנים?כרטיס היומן בלוח המחוונים, או הטרמינל/קובץ היומן שאיתו הפעלת serve.
עדיין תקוע?כרטיס היומן בדרך כלל נוקב באשם - כלול את הזנב שלו כשאתה מדווח על בעיה, יחד עם nzbfast --version שלך.

nzbfast - מדריך זה נשלח עם כל מהדורה. הגדרות, נקודות קצה וברירות מחדל שמוזכרות כאן תואמות את הגרסה שאיתה נשלח.