תצורה
כל משתני הסביבה של 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 -dNodaro קורא את הסביבה שלו באתחול. החריג היחיד הוא מפתחות הספק שמדביקים בדף /setup, שנכנסים לתוקף מיד. מחוץ למערך השירותים של Compose, הגדירו את המשתנים בהגדרות הסביבה של הפלטפורמה שלכם.
חובה מחוץ למערך השירותים של Compose: SUPABASE_URL, SUPABASE_SERVICE_ROLE_KEY ו-INTERNAL_ORCHESTRATOR_SECRET. בלעדיהם ה-API לא מוכן לעלות, ומציג את רשימת המשתנים החסרים או השגויים.
המופע
| משתנה | ברירת מחדל | .env | מה הוא עושה |
|---|---|---|---|
EDITION | community | לא | community, business או cloud. קובץ ה-Compose קובע אותו ל-community. ראו את הדף מהדורות ופרופילי ממשק. |
PUBLIC_URL | http://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_ENV | local | לא | נותן שם להתקנה כששתי התקנות חולקות מסד נתונים אחד אבל לא Redis אחד. ראו את הדף הרחבת קיבולת. ב-Railway, המשתנה RAILWAY_ENVIRONMENT_NAME קובע אותו. נקודת קצה של Webhook שייכת להתקנה שיצרה אותה, ולכן שינוי השם ב-RUNTIME_ENV מסתיר את נקודות הקצה שנוצרו תחת השם הישן. |
PORT, HOST | 8000, 0.0.0.0 | לא | הפורט והכתובת שה-API מאזין בהם. באימג׳, ה-API מאזין בפורט 9000, מאחורי שרת הווב בפורט 3000. |
NODE_ENV | development | לא | בכל אימג׳ הערך הוא 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_URL | http://localhost:3000/supabase במערך השירותים של Compose | כן | כתובת ה-Supabase שה-API משתמש בה. חובה מחוץ למערך השירותים של Compose. |
SUPABASE_SERVICE_ROLE_KEY | מפתח ברירת מחדל ציבורי במערך השירותים של Compose | כן | מפתח ה-service role שה-API משתמש בו. חובה מחוץ למערך השירותים של Compose. |
SUPABASE_ANON_KEY | מפתח ברירת מחדל ציבורי במערך השירותים של Compose | כן | מפתח ה-anon שנמסר לדפדפן ולשירות ההתחברות. |
FRONTEND_SUPABASE_URL | PUBLIC_URL/supabase במערך השירותים המובנה | כן | כתובת ה-Supabase שהדפדפן משתמש בה, שנכתבת ל-/config.js באתחול. הגדירו אותו כשמשתמשים בפרויקט Supabase מנוהל. |
SUPABASE_JWT_SECRET | סוד ברירת מחדל ציבורי | כן | הסוד שחותם על מפתחות ה-anon וה-service role במערך השירותים המובנה. צרו את שלושתם עם node tools/generate-selfhost-keys.mjs. |
POSTGRES_PASSWORD | nodaro-postgres-pw | כן | הסיסמה של מסד הנתונים המובנה. הסיסמאות של התפקידים הפנימיים נגזרות ממנה רק בהפעלה הראשונה של מסד הנתונים. |
DATABASE_URL | postgres://postgres:nodaro-postgres-pw@db:5432/postgres | כן | כתובת ישירה ל-Postgres, שמשמשת רק להחלת מיגרציות באתחול. שמרו על הסיסמה שבה תואמת ל-POSTGRES_PASSWORD. |
RUN_MIGRATIONS_ON_BOOT | false, ובמערך השירותים של Compose true | כן | מחיל את supabase/migrations/ לפני שה-API עולה. הגדירו false כשמשתמשים בפרויקט Supabase מנוהל. |
SUPABASE_MANAGED_PROXY | לא מוגדר | לא | הערך true מגיש פרויקט Supabase מנוהל דרך ה-origin של האפליקציה עצמה. ראו את הדף מסד נתונים. |
SUPABASE_PROXY_UPSTREAM | לא מוגדר | לא | ה-origin של הפרויקט המנוהל, בלי נתיב, לפרוקסי שלמעלה. |
תורים
| משתנה | ברירת מחדל | .env | מה הוא עושה |
|---|---|---|---|
REDIS_URL | redis://localhost:6379, ובמערך השירותים של Compose redis://redis:6379 | לא | ה-Redis של התורים והמטמונים המשותפים. גם כתובת של Redis Cluster או של Sentinel עובדת. |
אחסון
| משתנה | ברירת מחדל | .env | מה הוא עושה |
|---|---|---|---|
R2_ENDPOINT | http://minio:9000 במערך השירותים של Compose | כן | כתובת ה-S3 API של שירות האחסון. במערך השירותים של Compose, בערך ריק נעשה שימוש ב-MinIO. |
R2_FORCE_PATH_STYLE | true במערך השירותים של 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_NAME | nodaro-assets במערך השירותים של Compose | כן | ה-bucket. מחוץ למערך השירותים של Compose ברירת המחדל היא scenenode-assets, ולכן תמיד הגדירו אותו. |
R2_PUBLIC_URL | http://localhost:3000/storage/nodaro-assets במערך השירותים של Compose | כן | הכתובת הציבורית של ה-bucket. |
R2_REGION | auto | כן | האזור של S3. הגדירו אזור אמיתי ל-AWS, ל-DigitalOcean Spaces (nyc3 ועוד) ול-Supabase מקומי (local). |
STORAGE_OBJECT_ACL | ריק (בלי כותרת ACL) | כן | ערך ACL מוכן מראש לכל אובייקט שמועלה, לשירותי אחסון שלא מקבלים מדיניות bucket. ראו את הדף התקנה. |
R2_PUBLIC_FALLBACK_DOMAIN | ריק | לא | מארח ציבורי נוסף למדיה, למשל הכתובת הגולמית של r2.dev לצד דומיין של CDN. |
R2_SHARED_WITH_RELAY_TARGET | false | לא | הגדירו 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_URL | https://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_HOURS | 24 | לא | כל כמה שעות מתרעננת הרשימה המשותפת של האווטארים והקולות של HeyGen. |
החיבור ל-Nodaro Cloud
| משתנה | ברירת מחדל | .env | מה הוא עושה |
|---|---|---|---|
NODARO_CLOUD_URL | https://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_EXECUTION | 6, לכל היותר 20 | לא | כמה רכיבים הרצה אחת של תהליך יכולה להריץ בו־זמנית. |
VIDEO_WORKER_CONCURRENCY | 50 | לא | משימות מקבילות ב-worker של המדיה, שרוב הזמן ממתין לספקים. |
ORCHESTRATOR_CONCURRENCY | 20 | לא | משימות מקבילות ב-orchestrator. |
RENDER_WORKER_CONCURRENCY | 2, לכל היותר 10 | לא | רינדורים מקבילים. כל רינדור מריץ Chrome ללא ממשק. |
REMOTION_CONCURRENCY | 2 לסצנות תלת־ממד; מחצית מליבות ה-CPU לרינדורים אחרים | לא | כרטיסיות דפדפן לכל רינדור. ערך שאתם מגדירים חל על שני המקרים. השאירו אותו נמוך כשרצות כמה משימות תלת־ממד: כל כרטיסיית WebGL מוסיפה threads ונספרת במגבלת הפרוססים של הקונטיינר. |
FFMPEG_CONCURRENCY | 4, לכל היותר 32 | לא | מספר פרוססי ffmpeg בו־זמנית, בכל רכיבי עריכת הווידאו והאודיו יחד. |
RAILWAY_DEPLOYMENT_DRAINING_SECONDS | לא מוגדר | לא | ב-Railway בלבד: הזמן בין אות העצירה לעצירה הכפויה של קונטיינר שמוחלף. ה-worker של המדיה ממשיך לסיים את המשימות שבטיפולו במשך הזמן הזה פחות 5 שניות. כשהמשתנה לא מוגדר, הוא מסיים אותן במשך 25 שניות. |
ראו את הדף הרחבת קיבולת לפני שאתם מעלים את הערכים האלה.
עורכים
| משתנה | ברירת מחדל | .env | מה הוא עושה |
|---|---|---|---|
FREECUT_URL | ריק (העורך ש-Nodaro מארח) | כן | עורך הווידאו שמאחורי הכפתור עריכה ב-NodarCut על הקנבס ומאחורי הכפתור עריכה בתוצאת וידאו באפליקציה. הערך off מכבה את העורך: הכפתורים נשארים, אבל שום עורך לא נפתח. |
AUDIOMASS_URL | ריק (אין עורך אודיו) | כן | עורך האודיו שמאחורי הכפתור עריכה בתוצאת אודיו באפליקציה. הערך off מתנהג כמו ערך ריק. |
ראו את הסעיף עורכי וידאו ואודיו.
עדכונים
| משתנה | ברירת מחדל | .env | מה הוא עושה |
|---|---|---|---|
NODARO_IMAGE | ghcr.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_REGISTRATION | allowlist | לא | רישום דינמי של לקוחות MCP: allowlist, open או off. |
MCP_DCR_ALLOWLIST | 14 לקוחות מוכרים | לא | שמות הלקוחות שמורשים להירשם במצב allowlist. |
ראו את הדף MCP בהתקנה באירוח עצמי.
התחברות ותפקידים
| משתנה | ברירת מחדל | .env | מה הוא עושה |
|---|---|---|---|
EXTERNAL_SSO_PROVIDERS | ריק (SSO כבוי) | לא | ספקי זהות מהימנים, כ-JSON ישירות בערך או כ-@/path/to/file.json. ערך פגום עוצר את האתחול. |
EXTERNAL_SSO_LINK_EXISTING | false | לא | האם כניסה מאוחדת יכולה לקשר לחשבון מקומי קיים. |
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_EDITION | community בקובץ ה-Compose | המהדורה שהעורך מציג. הבנייה לא מקבלת ערך ריק או לא מוכר. |
VITE_STUDIO_URL | https://studio.nodaro.ai | הכתובת של הקישורים פתיחה ב-Studio. |
VITE_PERSON_URL | https://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, והאפליקציות מציגות אז את שם היצרן. התקנה שלא מפרסמת אף לוגו לא צריכה שום הגדרה.
כדי לפרסם לוגו של יצרן:
- העלו את הקובץ ל-bucket שמאחורי
R2_PUBLIC_URL, לנתיבbrand/makers/<maker id>.svg, עם סוג התוכןimage/svg+xml. השתמשו בלוגו הרשמי של החברה כקובץ SVG בלי סקריפטים. מזהי היצרנים הם ערכיmaker.idשהנתיבGET /v1/modelsמחזיר. - הצהירו על מזהי היצרנים בהגדרת המופע
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:roNODARO_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 |
| X | X_CLIENT_ID, X_CLIENT_SECRET |
REDDIT_CLIENT_ID, REDDIT_CLIENT_SECRET | |
PINTEREST_CLIENT_ID, PINTEREST_CLIENT_SECRET | |
| Discord | DISCORD_CLIENT_ID, DISCORD_CLIENT_SECRET, DISCORD_BOT_TOKEN |
| Twitch | TWITCH_CLIENT_ID, TWITCH_CLIENT_SECRET |
| Threads | THREADS_APP_ID, THREADS_APP_SECRET |
| Mastodon | MASTODON_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. הפעילו מחדש כדי לטעון אותן.
דפים קשורים
התקנה
מפתחות ספק
מהדורות ופרופילי ממשק
מסד נתונים
פתרון בעיות
עודכן לאחרונה