דילוג לתוכן
תיעוד Nodaro
תיעודמדריך הרכיביםמודליםתבניותסוכני AI (MCP)מפתחיםאירוח עצמימחקרהשוואות

תצורה

כל משתני הסביבה של Nodaro באירוח עצמי לפי נושא: ברירת המחדל, אם אפשר להגדיר אותם בקובץ ‎.env במערך השירותים של Compose, ומה הם משנים.

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

איך מגדירים משתנה

במערך השירותים של Compose, מגדירים משתנה באחד משני מקומות:

  • ב-.env, ליד docker-compose.community.yml. השיטה הזו עובדת למשתנים שקובץ ה-Compose מעביר לאפליקציה. בטבלאות שלמטה, בעמודה .env של המשתנים האלה כתוב כן.
  • בקובץ ה-Compose, לכל משתנה אחר. הוסיפו אותו תחת environment: של השירות nodaro:
  nodaro:
    environment:
      # ...the variables already listed...
      MCP_ENABLED: "true"
      MCP_PUBLIC_URL: https://mcp.nodaro.example.com

ואז החילו את השינוי:

docker compose -f docker-compose.community.yml up -d

Nodaro קורא את הסביבה שלו באתחול. החריג היחיד הוא מפתחות הספק שמדביקים בדף /setup, שנכנסים לתוקף מיד. מחוץ למערך השירותים של Compose, הגדירו את המשתנים בהגדרות הסביבה של הפלטפורמה שלכם.

חובה מחוץ למערך השירותים של Compose: SUPABASE_URL, SUPABASE_SERVICE_ROLE_KEY ו-INTERNAL_ORCHESTRATOR_SECRET. בלעדיהם ה-API לא מוכן לעלות, ומציג את רשימת המשתנים החסרים או השגויים.

המופע

משתנהברירת מחדל.envמה הוא עושה
EDITIONcommunityלאcommunity, business או cloud. קובץ ה-Compose קובע אותו ל-community. ראו את הדף מהדורות ופרופילי ממשק.
PUBLIC_URLhttp://localhost:3000כןה-origin הציבורי של ההתקנה: לכתובות ההפניה של ההתחברות ושל OAuth, לכתובות המדיה ולבדיקת ה-CORS.
PUBLIC_URL_SAME_ORIGINלא מוגדרלאהערך true נותן לדפדפן את / ככתובת ה-API במקום PUBLIC_URL, כך שההזרמות נשארות על שם המארח שהמבקר פתח. מיועד להתקנות שעונות בכמה שמות מארח. רק הערך המדויק true מפעיל את האפשרות.
CORS_ORIGINריקכןorigins נוספים של דפדפן, מופרדים בפסיקים. ה-origin שב-PUBLIC_URL תמיד מורשה. במארחים האלה, ההפניה לדף הנחיתה אחרי SSO היא כתובת יחסית.
DEFAULT_LOCALEריק (שפת הדפדפן)כןהשפה שמבקר חדש מתחיל בה. ראו את הסעיף שפת ברירת המחדל.
NODARO_SURFACE_PROFILEריק (הממשק המלא)כןמצמצם את הממשק של התקנת Business. ראו את הסעיף פרופילי ממשק בדף מהדורות ופרופילי ממשק.
NODARO_TUTORIAL_PACKSריק (רק המדריכים המובנים)כןתיקיות של חבילות מדריכים נוספות, מופרדות בפסיקים. ראו את הסעיף חבילות מדריכים.
RUNTIME_ENVlocalלאנותן שם להתקנה כששתי התקנות חולקות מסד נתונים אחד אבל לא Redis אחד. ראו את הדף הרחבת קיבולת. ב-Railway, המשתנה RAILWAY_ENVIRONMENT_NAME קובע אותו. נקודת קצה של Webhook שייכת להתקנה שיצרה אותה, ולכן שינוי השם ב-RUNTIME_ENV מסתיר את נקודות הקצה שנוצרו תחת השם הישן.
PORT, HOST8000, 0.0.0.0לאהפורט והכתובת שה-API מאזין בהם. באימג׳, ה-API מאזין בפורט 9000, מאחורי שרת הווב בפורט 3000.
NODE_ENVdevelopmentלאבכל אימג׳ הערך הוא production.

סודות

משתנהברירת מחדל.envמה הוא עושה
INTERNAL_ORCHESTRATOR_SECRETנוצר באתחול במערך השירותים של Composeכןמאמת את ה-orchestrator מול ה-API. לפחות 32 תווים. חובה מחוץ למערך השירותים של Compose.
NODARO_ENCRYPTION_KEYנוצר באתחול הראשון במערך השירותים של Compose, ונשמר ב-volume app-dataכןמפתח הקסדצימלי באורך 64 תווים שמצפין פרטי גישה שמורים: מפתחות ספק שהודבקו, אסימוני התחברות לרשתות חברתיות, פרטי הגישה ל-HTTP שנשמרו לרכיב פלט Webhook וסודות החתימה של נקודות קצה של Webhook. בלעדיו, רישום של נקודת קצה של Webhook נדחה עם 503 encryption_key_missing.
SOCIAL_ENCRYPTION_KEYריקכןהשם הישן של NODARO_ENCRYPTION_KEY. שני השמות עובדים.

צרו סוד עם openssl rand -hex 32. גבו את מפתח ההצפנה יחד עם מסד הנתונים: ראו את הדף גיבוי ושחזור.

מסד נתונים והתחברות

משתנהברירת מחדל.envמה הוא עושה
SUPABASE_URLhttp://localhost:3000/supabase במערך השירותים של Composeכןכתובת ה-Supabase שה-API משתמש בה. חובה מחוץ למערך השירותים של Compose.
SUPABASE_SERVICE_ROLE_KEYמפתח ברירת מחדל ציבורי במערך השירותים של Composeכןמפתח ה-service role שה-API משתמש בו. חובה מחוץ למערך השירותים של Compose.
SUPABASE_ANON_KEYמפתח ברירת מחדל ציבורי במערך השירותים של Composeכןמפתח ה-anon שנמסר לדפדפן ולשירות ההתחברות.
FRONTEND_SUPABASE_URLPUBLIC_URL/supabase במערך השירותים המובנהכןכתובת ה-Supabase שהדפדפן משתמש בה, שנכתבת ל-/config.js באתחול. הגדירו אותו כשמשתמשים בפרויקט Supabase מנוהל.
SUPABASE_JWT_SECRETסוד ברירת מחדל ציבוריכןהסוד שחותם על מפתחות ה-anon וה-service role במערך השירותים המובנה. צרו את שלושתם עם node tools/generate-selfhost-keys.mjs.
POSTGRES_PASSWORDnodaro-postgres-pwכןהסיסמה של מסד הנתונים המובנה. הסיסמאות של התפקידים הפנימיים נגזרות ממנה רק בהפעלה הראשונה של מסד הנתונים.
DATABASE_URLpostgres://postgres:nodaro-postgres-pw@db:5432/postgresכןכתובת ישירה ל-Postgres, שמשמשת רק להחלת מיגרציות באתחול. שמרו על הסיסמה שבה תואמת ל-POSTGRES_PASSWORD.
RUN_MIGRATIONS_ON_BOOTfalse, ובמערך השירותים של Compose trueכןמחיל את supabase/migrations/ לפני שה-API עולה. הגדירו false כשמשתמשים בפרויקט Supabase מנוהל.
SUPABASE_MANAGED_PROXYלא מוגדרלאהערך true מגיש פרויקט Supabase מנוהל דרך ה-origin של האפליקציה עצמה. ראו את הדף מסד נתונים.
SUPABASE_PROXY_UPSTREAMלא מוגדרלאה-origin של הפרויקט המנוהל, בלי נתיב, לפרוקסי שלמעלה.

תורים

משתנהברירת מחדל.envמה הוא עושה
REDIS_URLredis://localhost:6379, ובמערך השירותים של Compose redis://redis:6379לאה-Redis של התורים והמטמונים המשותפים. גם כתובת של Redis Cluster או של Sentinel עובדת.

אחסון

משתנהברירת מחדל.envמה הוא עושה
R2_ENDPOINThttp://minio:9000 במערך השירותים של Composeכןכתובת ה-S3 API של שירות האחסון. במערך השירותים של Compose, בערך ריק נעשה שימוש ב-MinIO.
R2_FORCE_PATH_STYLEtrue במערך השירותים של Composeכןכתובות מסוג path-style, שרוב שירותי האחסון באירוח עצמי צריכים.
R2_ACCOUNT_IDריקכןמזהה החשבון ב-Cloudflare. מחוץ למערך השירותים של Compose, כשהמשתנה R2_ENDPOINT לא מוגדר, נקודת הקצה של R2 נגזרת ממנו.
R2_ACCESS_KEY_ID, R2_SECRET_ACCESS_KEYפרטי הגישה של ה-MinIO המובנהכןפרטי הגישה לאחסון. במערך השירותים של Compose, הם גם פרטי הגישה של משתמש ה-root ב-MinIO.
R2_BUCKET_NAMEnodaro-assets במערך השירותים של Composeכןה-bucket. מחוץ למערך השירותים של Compose ברירת המחדל היא scenenode-assets, ולכן תמיד הגדירו אותו.
R2_PUBLIC_URLhttp://localhost:3000/storage/nodaro-assets במערך השירותים של Composeכןהכתובת הציבורית של ה-bucket.
R2_REGIONautoכןהאזור של S3. הגדירו אזור אמיתי ל-AWS, ל-DigitalOcean Spaces (nyc3 ועוד) ול-Supabase מקומי (local).
STORAGE_OBJECT_ACLריק (בלי כותרת ACL)כןערך ACL מוכן מראש לכל אובייקט שמועלה, לשירותי אחסון שלא מקבלים מדיניות bucket. ראו את הדף התקנה.
R2_PUBLIC_FALLBACK_DOMAINריקלאמארח ציבורי נוסף למדיה, למשל הכתובת הגולמית של r2.dev לצד דומיין של CDN.
R2_SHARED_WITH_RELAY_TARGETfalseלאהגדירו true רק כשהמשתנה R2_PUBLIC_URL מצביע על אותו bucket שהשרת של Nodaro Cloud שלכם כותב אליו. ראו את הדף חיבור ל-Nodaro Cloud.

ספקי מודלים

את כל אחד מהמפתחות האלה אפשר גם להדביק בדף /setup. מפתח שמוגדר בסביבה גובר. ראו את הדף מפתחות ספק.

משתנהברירת מחדל.envלמה הוא משמש
NODARO_API_KEYריקכןNodaro Cloud כספק, עם אסימון API אישי.
KIE_API_KEYריקכןהכיסוי הרחב ביותר של מודלי מדיה וטקסט.
KIE_API_BASE_URLשרת ה-API של הספק עצמוכןמעביר את התעבורה לספק הזה דרך פרוקסי משלכם. הוא מעביר גם את תעבורת הטקסט של Claude ושל Gemini שרצה על KIE_API_KEY.
REPLICATE_API_TOKENריקכןקטלוג חלופי, כולל מודלי Flux 2.
ANTHROPIC_API_KEYריקכןClaude ישירות, לרכיבי הטקסט.
GEMINI_API_KEYריקכןGemini ישירות. ראו את הסעיף מודלי Gemini בדף מפתחות ספק.
ELEVENLABS_API_KEYריקכןדיבור, קולות ודיבוב.
ELEVENLABS_BASE_URLhttps://api.elevenlabs.ioכןמעביר את התעבורה ל-ElevenLabs דרך פרוקסי משלכם.
FAL_KEYריקכןמודלים כמו Sync Lipsync v3.
HEYGEN_API_KEYריקכןאווטאר AI ואווטאר קולנועי.
BEEBLE_API_KEYריקכןתאורה מחדש והחלפה.
APIFY_API_TOKENריקכןגריפת אתר וצילום אתר.
SITE_CAPTURE_ENABLEDמופעללאהערך false מכבה בהתקנה הזו את רכיב צילום אתר, את POST /v1/site-capture ואת כלי ה-MCP capture_site.
HEYGEN_CATALOG_REFRESH_HOURS24לאכל כמה שעות מתרעננת הרשימה המשותפת של האווטארים והקולות של HeyGen.

החיבור ל-Nodaro Cloud

משתנהברירת מחדל.envמה הוא עושה
NODARO_CLOUD_URLhttps://app.nodaro.aiכןהשרת של Nodaro Cloud שההתקנה נרשמת אליו כשלוחצים על חיבור nodaro.ai, ואליו נשלחות קריאות עם NODARO_API_KEY. שנו אותו רק כשההתקנה שלכם שייכת לפריסה ייעודית של Nodaro. נקרא באתחול.

גם המשתנים NODARO_API_KEY ו-R2_SHARED_WITH_RELAY_TARGET שייכים לחיבור. ראו את הדף חיבור ל-Nodaro Cloud.

Workers וביצועים

משתנהברירת מחדל.envמה הוא עושה
MAX_CONCURRENT_NODES_PER_EXECUTION6, לכל היותר 20לאכמה רכיבים הרצה אחת של תהליך יכולה להריץ בו־זמנית.
VIDEO_WORKER_CONCURRENCY50לאמשימות מקבילות ב-worker של המדיה, שרוב הזמן ממתין לספקים.
ORCHESTRATOR_CONCURRENCY20לאמשימות מקבילות ב-orchestrator.
RENDER_WORKER_CONCURRENCY2, לכל היותר 10לארינדורים מקבילים. כל רינדור מריץ Chrome ללא ממשק.
REMOTION_CONCURRENCY2 לסצנות תלת־ממד; מחצית מליבות ה-CPU לרינדורים אחריםלאכרטיסיות דפדפן לכל רינדור. ערך שאתם מגדירים חל על שני המקרים. השאירו אותו נמוך כשרצות כמה משימות תלת־ממד: כל כרטיסיית WebGL מוסיפה threads ונספרת במגבלת הפרוססים של הקונטיינר.
FFMPEG_CONCURRENCY4, לכל היותר 32לאמספר פרוססי ffmpeg בו־זמנית, בכל רכיבי עריכת הווידאו והאודיו יחד.
RAILWAY_DEPLOYMENT_DRAINING_SECONDSלא מוגדרלאב-Railway בלבד: הזמן בין אות העצירה לעצירה הכפויה של קונטיינר שמוחלף. ה-worker של המדיה ממשיך לסיים את המשימות שבטיפולו במשך הזמן הזה פחות 5 שניות. כשהמשתנה לא מוגדר, הוא מסיים אותן במשך 25 שניות.

ראו את הדף הרחבת קיבולת לפני שאתם מעלים את הערכים האלה.

עורכים

משתנהברירת מחדל.envמה הוא עושה
FREECUT_URLריק (העורך ש-Nodaro מארח)כןעורך הווידאו שמאחורי הכפתור עריכה ב-NodarCut על הקנבס ומאחורי הכפתור עריכה בתוצאת וידאו באפליקציה. הערך off מכבה את העורך: הכפתורים נשארים, אבל שום עורך לא נפתח.
AUDIOMASS_URLריק (אין עורך אודיו)כןעורך האודיו שמאחורי הכפתור עריכה בתוצאת אודיו באפליקציה. הערך off מתנהג כמו ערך ריק.

ראו את הסעיף עורכי וידאו ואודיו.

עדכונים

משתנהברירת מחדל.envמה הוא עושה
NODARO_IMAGEghcr.io/nodaroai/nodaro-community:latestכןהאימג׳ של האפליקציה שקובץ ה-Compose מריץ. כאן מקבעים את ההתקנה על תג של גרסה.
NODARO_UPDATE_CHECKמופעללאהערך off עוצר את הבדיקה היומית של עדכונים: שום בקשה לא יוצאת מההתקנה. מיועד להתקנות שמנותקות מהאינטרנט.
NODARO_UPDATE_CHECK_TOKENריק (אנונימי)לאאסימון GitHub לבדיקת העדכונים, בלי הרשאות.

ראו את הדף עדכון גרסה.

MCP

משתנהברירת מחדל.envמה הוא עושה
MCP_ENABLEDכבוילאהערך true או 1 מפעיל את נקודת הקצה של MCP.
MCP_PUBLIC_URLריק (שרת ה-MCP של Nodaro Cloud)לאהכתובת הציבורית של שרת ה-MCP שלכם.
MCP_DYNAMIC_REGISTRATIONallowlistלארישום דינמי של לקוחות MCP: allowlist, open או off.
MCP_DCR_ALLOWLIST14 לקוחות מוכריםלאשמות הלקוחות שמורשים להירשם במצב allowlist.

ראו את הדף MCP בהתקנה באירוח עצמי.

התחברות ותפקידים

משתנהברירת מחדל.envמה הוא עושה
EXTERNAL_SSO_PROVIDERSריק (SSO כבוי)לאספקי זהות מהימנים, כ-JSON ישירות בערך או כ-@/path/to/file.json. ערך פגום עוצר את האתחול.
EXTERNAL_SSO_LINK_EXISTINGfalseלאהאם כניסה מאוחדת יכולה לקשר לחשבון מקומי קיים.
PLATFORM_OWNER_EMAILריקלאבמהדורת Business: חשבון הבעלים, שאף מנהל אחר לא יכול לשנות את התפקיד שלו.

ראו את הדפים כניסה מאוחדת (SSO) והמשתמש הראשון והמנהל.

אינטגרציות

משתנהברירת מחדל.envמה הוא עושה
FIGMA_PLUGIN_OAUTH_CLIENT_IDריק (החיבור של התוסף כבוי)לאמזהה הלקוח של יישום המפתחים שהתוסף ל-Figma מתחבר דרכו.
משתנים של רשתות חברתיותריקלאראו את הסעיף אפליקציות לרשתות חברתיות.

לתוסף ל-Figma, רשמו בהתקנה שלכם יישום מפתחים עם <PUBLIC_URL>/v1/oauth/plugin/callback ככתובת הפניה ועם ההרשאות jobs:read, assets:read, assets:write ו-credits:read. אחר כך הגדירו כאן את מזהה הלקוח שלו. כשהמשתנה ריק, נתיבי החיבור של התוסף מחזירים 503, ושום דבר אחר לא משתנה. ראו את הדף אפליקציות OAuth.

הגדרות בזמן הבנייה

ההגדרות האלה נקבעות כשבונים את האימג׳. שנו אותן תחת build: args: בקובץ ה-Compose ובנו מחדש.

ארגומנט בנייהברירת מחדלמה הוא עושה
VITE_EDITIONcommunity בקובץ ה-Composeהמהדורה שהעורך מציג. הבנייה לא מקבלת ערך ריק או לא מוכר.
VITE_STUDIO_URLhttps://studio.nodaro.aiהכתובת של הקישורים פתיחה ב-Studio.
VITE_PERSON_URLhttps://person.nodaro.aiהכתובת של הכרטיס פתיחת Person בדף הבית.

עורכי וידאו ואודיו

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

  • וידאו. כשהמשתנה FREECUT_URL ריק, העורך נטען מ-freecut.nodaro.ai, שמאפשר הטמעה רק מ-http://localhost:3000. ב-origin אחר, כמו כתובת ברשת המקומית או דומיין, הדפדפן חוסם אותו והחלונית מסבירה למה. כדי שהכתובת שלכם תאושר, פתחו Issue ב-GitHub עם הכתובת שבה ההתקנה שלכם זמינה, או הריצו FreeCut משלכם. FreeCut ציבורי, ברישיון MIT, ומגיע עם Dockerfile. אחר כך הגדירו FREECUT_URL=https://freecut.example.internal.
  • אודיו. Nodaro לא מארח גרסה ציבורית של AudioMass, ולכן עד שתגדירו אותו, הכפתור עריכה בתוצאת אודיו לא פותח שום עורך. בלשונית מצגת הוא לא עושה כלום, ומחוץ לעורך הוא מציג חלונית שמסבירה מה להגדיר. הריצו את ה-fork של Nodaro, AudioMass, שתומך בהעברה בתוך הדפדפן שחסרה ב-AudioMass המקורי. אחר כך הגדירו AUDIOMASS_URL=https://audiomass.example.internal.

אחרי שינוי, הפעילו מחדש את מערך השירותים. אין צורך לבנות מחדש.

לוגואים של יצרני מודלים

הנתיב GET /v1/models מציין את היצרן של כל מודל, ויכול לכלול את הלוגו של היצרן ב-logoUrl, עבור אפליקציות שמציגות תפריט בחירת מודל. הלוגו של חברה הוא סימן מסחר שלה, ולכן Nodaro לא מגיע עם אף לוגו. התקנה מפרסמת רק את הלוגואים שיש לה זכות להציג. לכל יצרן אחר, השדה logoUrl הוא null, והאפליקציות מציגות אז את שם היצרן. התקנה שלא מפרסמת אף לוגו לא צריכה שום הגדרה.

כדי לפרסם לוגו של יצרן:

  1. העלו את הקובץ ל-bucket שמאחורי R2_PUBLIC_URL, לנתיב brand/makers/<maker id>.svg, עם סוג התוכן image/svg+xml. השתמשו בלוגו הרשמי של החברה כקובץ SVG בלי סקריפטים. מזהי היצרנים הם ערכי maker.id שהנתיב GET /v1/models מחזיר.
  2. הצהירו על מזהי היצרנים בהגדרת המופע model_maker_logos, רשימה כמו ["google", "openai"]. בהתקנת Business, מנהל השרת מגדיר אותה עם PUT /v1/admin/settings/model_maker_logos ועם גוף הבקשה {"value": ["google", "openai"]}. במהדורת Community, שאין בה ממשק ניהול, כתבו את אותה הגדרת מופע ישירות במסד הנתונים.
  • השרת בודק קודם את הקובץ. יצרן שהוצהר מקבל logoUrl רק כשהקובץ שלו נמצא ב-bucket כ-SVG, ולכן אפשר לבצע את שני השלבים בכל סדר. כשהקובץ חסר או מסוג שגוי, הערך הוא null, אף פעם לא כתובת שבורה.
  • אל תפתחו את הכתובת בדפדפן כדי לבדוק העלאה. ה-CDN, ו-Caddy במערך השירותים המובנה, שומרים במטמון תשובת "not found" (לא נמצא) למשך שנה. בדקו את הקובץ בקונסולת האחסון או בבקשת HEAD, כמו curl -I.
  • תזמון. לוגו חדש מופיע בתוך כעשר דקות. כדי להחליף לוגו, העלו את הקובץ החדש במקום הישן: הכתובת משתנה יחד עם הקובץ. כדי להסיר לוגו, הסירו את המזהה שלו מההגדרה או מחקו את הקובץ.
  • Nodaro אף פעם לא מוחק את הקבצים האלה. כשאתם רוצים להסיר לוגו, הסירו אותו מקונסולת האחסון.

שפת ברירת המחדל

המשתנה DEFAULT_LOCALE קובע את השפה שמבקר חדש מתחיל בה. הערכים האפשריים: he, ar, de, fr, es, hi, ja, ko, pt-BR, ru, zh-CN ו-en. הבחירה השמורה של המשתמש עצמו תמיד גוברת. בערך ריק, בערך של רווחים בלבד או בערך לא מוכר, נעשה שימוש בשפת הדפדפן של המבקר. כדי שהשינוי ייכנס לתוקף, הפעילו מחדש. ראו את הדף שפות.

חבילות מדריכים

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

  • manifest.json — ה-name של החבילה וה-categories שהמדריכים שלה משתמשים בהם. לכל קטגוריה יש slug ו-name, ואפשר להוסיף לה גם sortOrder ו-description. המפתחות האופציונליים הם locale, version, forbiddenPromptTerms ו-creatorDisplayName, שם היוצר שמוצג בכל כרטיס של החבילה.
  • קובץ *.json אחד לכל מדריך — תמונת מצב של תהליך, עם הרכיבים, החיבורים והתוצאות שכבר נוצרו, כך שעותק משוכפל נפתח ומציג את ההרצה המוגמרת. נתוני הכרטיס האופציונליים הם estimatedCredits, הקרדיטים שהרצה עולה, ו-estimatedPerMinuteCredits למדריך שהמחיר שלו נקבע לפי אורך ההקלטה שהוא מקבל. מדריך כזה מגדיר ב-estimatedCredits את החלק הקבוע וב-estimatedPerMinuteCredits את הקרדיטים לכל דקת הקלטה. עוד שדות אופציונליים הם nodeTypesUsed ו-providersUsed לתגיות בכרטיס, creatorDisplayName לכל מדריך בנפרד ו-listedIn. הערך של listedIn הוא ["tutorial"] ללשונית מדריכים, ברירת המחדל, או ["marketplace"] לשוק התבניות. הוא חל רק בטעינה הראשונה של הנתונים.

כל קובץ מדיה שמדריך משתמש בו חייב להיות כתובת https:// ציבורית. הקטגוריה של כל מדריך חייבת להיות מוצהרת ב-manifest.json, והיא נוצרת באתחול הראשון.

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

  nodaro:
    volumes:
      - ./tutorials/acme:/data/tutorials/acme:ro
NODARO_TUTORIAL_PACKS=/data/tutorials/acme

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

אפליקציות לרשתות חברתיות

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

רשתמשתנים
אינסטגרםMETA_APP_ID, META_APP_SECRET. אופציונלי: המשתנה META_INSTAGRAM_CONFIG_ID ל-Facebook Login for Business.
אינסטגרם, בלי דף פייסבוקINSTAGRAM_APP_ID, INSTAGRAM_APP_SECRET. Meta מנפיקה אותם בנפרד מאפליקציית פייסבוק. האסימונים מתרעננים מעצמם, בערך כל 60 ימים.
פייסבוקMETA_APP_ID, META_APP_SECRET. אופציונלי: המשתנה META_FACEBOOK_CONFIG_ID.
טיקטוקTIKTOK_CLIENT_KEY, TIKTOK_CLIENT_SECRET
יוטיובGOOGLE_CLIENT_ID, GOOGLE_CLIENT_SECRET
לינקדאיןLINKEDIN_CLIENT_ID, LINKEDIN_CLIENT_SECRET
XX_CLIENT_ID, X_CLIENT_SECRET
RedditREDDIT_CLIENT_ID, REDDIT_CLIENT_SECRET
PinterestPINTEREST_CLIENT_ID, PINTEREST_CLIENT_SECRET
DiscordDISCORD_CLIENT_ID, DISCORD_CLIENT_SECRET, DISCORD_BOT_TOKEN
TwitchTWITCH_CLIENT_ID, TWITCH_CLIENT_SECRET
ThreadsTHREADS_APP_ID, THREADS_APP_SECRET
MastodonMASTODON_CLIENT_ID, MASTODON_CLIENT_SECRET. אופציונלי: המשתנה MASTODON_URL, ברירת מחדל mastodon.social.
טלגרםאין: המשתמשים מדביקים אסימון בוט משלהם.
Blueskyאין: המשתמשים מתחברים עם שם משתמש וסיסמת אפליקציה.
Dev.to, Hashnode, Mediumאין: המשתמשים מתחברים עם מפתח API או אסימון משלהם.
WordPressאין: המשתמשים מתחברים עם כתובת האתר וסיסמת אפליקציה.
Lemmyאין: המשתמשים מתחברים עם מופע, פרטי התחברות וקהילה.

כל אפליקציית OAuth חייבת לאשר את כתובת ההפניה https://<your-domain>/v1/social/callback/<network>. כשהתחברות לפייסבוק או לאינסטגרם מנהלת יותר מדף אחד או מחשבון אחד, חלון החיבור שואל את המשתמש איזה מהם לחבר. ראו את המדריך פרסום ברשתות החברתיות.

שאלות נפוצות

למה משתנה בקובץ ‎.env שלי לא משפיע?

משתנה בקובץ ‎.env משפיע רק אם קובץ ה-Compose מעביר אותו לאפליקציה, והקובץ מעביר רק את המשתנים שרשומים בבלוק environment של השירות nodaro. הוסיפו כל משתנה אחר לבלוק הזה ב-docker-compose.community.yml, ואז הריצו docker compose up -d.

אילו משתני סביבה הם חובה?

במערך השירותים המובנה של Compose אין משתני חובה, כי המערך מגדיר או מייצר אותם. מחוץ לו, ה-API לא מוכן לעלות בלי SUPABASE_URL, בלי SUPABASE_SERVICE_ROLE_KEY ובלי INTERNAL_ORCHESTRATOR_SECRET באורך 32 תווים לפחות.

האם צריך להפעיל מחדש אחרי שמשנים משתנה?

כן. Nodaro קורא את הסביבה שלו באתחול, ולכן הריצו docker compose up -d כדי ליצור מחדש את הקונטיינר עם הערכים החדשים. מפתחות ספק שמודבקים בדף ‎/setup הם החריג: הם נכנסים לתוקף בלי הפעלה מחדש.

איך משנים את שפת ברירת המחדל של ההתקנה?

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

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

כדי להוסיף מדריכים משלכם, שימו כל חבילת מדריכים בתיקייה עם manifest.json וקובץ JSON אחד לכל מדריך, מפו את התיקייה לתוך הקונטיינר ורשמו את התיקיות ב-NODARO_TUTORIAL_PACKS. הפעילו מחדש כדי לטעון אותן.

עודכן לאחרונה

בדף הזה