פרוקסי הפוך ו-HTTPS
הגישו את Nodaro באירוח עצמי בדומיין שלכם ב-HTTPS, עם nginx או Caddy לפני פורט 3000, הגדירו את PUBLIC_URL ואת CORS_ORIGIN והפעילו מחדש.
פרוקסי הפוך מאפשר להגיש את Nodaro שלכם באירוח עצמי בדומיין אמיתי, עם HTTPS. הקונטיינר של Nodaro כבר מריץ שרת ווב, Caddy, בפורט 3000, ולכן מוסיפים לפני הפורט הזה פרוקסי אחד שמסיים את חיבור ה-TLS, ומגדירים ב-Nodaro את הכתובת הציבורית שלו. גם nginx וגם Caddy מתאימים.
מה פורט 3000 מגיש
שרת הווב בתוך הקונטיינר מגיש הכול באותו origin:
| נתיב | מי עונה |
|---|---|
/ | העורך והאפליקציות, כקבצים סטטיים |
/v1/* | ה-API, שמאזין בפורט 9000 בתוך הקונטיינר |
/storage/* | המדיה ב-MinIO המובנה |
/supabase/* | שירות ההתחברות המובנה וה-API של הנתונים |
/config.js | הגדרות זמן הריצה שהדפדפן קורא לפני שהאפליקציה עולה |
הפרוקסי שלכם צריך רק להעביר כל בקשה לפורט 3000.
אפשרות א׳: nginx
מתאים כשכבר מריצים nginx או פרוקסי אחר.
server {
listen 443 ssl http2;
server_name nodaro.example.com;
ssl_certificate /etc/letsencrypt/live/nodaro.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/nodaro.example.com/privkey.pem;
client_max_body_size 100M;
proxy_buffering off; # important for SSE
location / {
proxy_pass http://127.0.0.1:3000;
proxy_http_version 1.1;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}- ההגדרה
client_max_body_size 100Mמאפשרת להעלאות לעבור. - ההגדרה
proxy_buffering offשומרת על הזרימה של אירועי השרת (SSE). Nodaro משתמש בהם כדי להזרים פלט טקסט ואת התקדמות ההרצה.
אפשרות ב׳: Caddy על המארח
Caddy משיג בשבילכם תעודה של Let's Encrypt:
nodaro.example.com {
reverse_proxy 127.0.0.1:3000 {
flush_interval -1
}
}פתחו את הפורטים 80 ו-443, וכוונו את רשומות ה-A או ה-AAAA של הדומיין אל המארח. ההגדרה flush_interval -1 שומרת על הזרימה של אירועי השרת (SSE).
הגדרת הכתובת הציבורית של Nodaro
אחרי כל אחת מהאפשרויות, הגדירו בקובץ .env:
PUBLIC_URL=https://nodaro.example.com
CORS_ORIGIN=https://nodaro.example.com
# On the bundled MinIO, serve the media from the same domain:
R2_PUBLIC_URL=https://nodaro.example.com/storage/nodaro-assetsואז החילו אותם:
docker compose -f docker-compose.community.yml up -dאין צורך בבנייה מחדש. באתחול, הקונטיינר כותב לקובץ /config.js את הכתובת הציבורית, את כתובת ההתחברות של הדפדפן ואת מפתח ה-anon, והדפדפן קורא את הקובץ הזה לפני שהאפליקציה עולה.
המשתנה PUBLIC_URL הוא הכתובת של ההתקנה בכל מקום: בקריאות החוזרות של ההתחברות ושל OAuth, בכתובות ה-URL של המדיה ובבדיקת ה-CORS. הכתובות http://localhost:3000 ו-PUBLIC_URL מותרות תמיד כ-origins של הדפדפן.
הגשה ביותר משם מארח אחד
- origins נוספים. רשמו אותם ב-
CORS_ORIGIN, מופרדים בפסיקים, למשלCORS_ORIGIN=https://nodaro.example.com,http://192.168.1.20:3000. - זרמים בשם המארח של המבקר. כשה-API חולק את ה-origin של האפליקציה, כמו בקונטיינר ברירת המחדל, הגדירו
PUBLIC_URL_SAME_ORIGIN=true. אז הקובץ/config.jsנותן לדפדפן את/ככתובת ה-API במקום אתPUBLIC_URL, כך שהזרמים נשארים בשם המארח שהמבקר פתח. רק הערך המדויקtrueמפעיל את ההגדרה. אל תגדירו אותה כשה-API באמת נמצא במארח אחר.
קובץ ה-Compose לא מעביר את PUBLIC_URL_SAME_ORIGIN מהקובץ .env. הוסיפו אותו תחת environment: של השירות nodaro. ראו את הסעיף איך מגדירים משתנה בדף תצורה.
שינוי הפורט
כדי להגיש את האפליקציה בפורט אחר של המארח, שנו את צד המארח במיפוי בקובץ docker-compose.community.yml, למשל "3001:3000". אחר כך הגדירו את PUBLIC_URL בהתאם, למשל http://localhost:3001.
איך נרשמות כתובות הלקוחות
שרת הווב בקונטיינר מקבל כותרות X-Forwarded-* רק מפרוקסי בכתובות פרטיות: 127.0.0.1/8, 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16, fd00::/8 ו-::1.
- מפרוקסי מהימן, שרת הווב מצמצם את
X-Forwarded-Forלכתובת לקוח אחת: הכתובת הימנית ביותר ברשימה שהיא לא בעצמה פרוקסי מהימן. הוא מדלג על כתובת שלקוח כתב בעצמו בכותרת. - מפרוקסי בכתובת ציבורית, שרת הווב מחליף את הכותרות האלה בערכים שהוא עצמו ראה.
ברשת פנימית, אותו כלל מדלג גם על הכתובות של המשתמשים שלכם, כשגם הן פרטיות. אז לקוח ברשת המקומית יכול לבחור את הכתובת שה-API רושם, למשל לצורך מגבלות קצב.
העורכים המוטמעים בדומיין שלכם
הכפתור עריכה ב-NodarCut, או הכפתור עריכה בתוצאת וידאו באפליקציה, פותח את עורך הווידאו ש-Nodaro מארח בכתובת freecut.nodaro.ai, שמאפשר הטמעה רק מ-http://localhost:3000. בכל origin אחר, כמו דומיין או כתובת ברשת המקומית, הדפדפן מסרב להטמיע אותו, והחלונית מסבירה למה. אפשר לפתוח Issue ב-GitHub עם הכתובת שבה אתם מגישים את ההתקנה, או להריץ עורך משלכם ולהגדיר את FREECUT_URL. ראו את הסעיף עורכי וידאו ואודיו בדף תצורה.
MCP צריך שם מארח משלו
לקוחות MCP חייבים להגיע ישירות ל-API בפורט 9000: שרת הווב בפורט 3000 דוחה בקשות MCP. ראו את הדף MCP בהתקנה באירוח עצמי.
שאלות נפוצות
האם הקונטיינר של Nodaro כבר כולל שרת ווב?
כן. הקונטיינר של Nodaro מריץ את Caddy בפורט 3000. Caddy מגיש את העורך, מעביר את /v1 ל-API בפורט 9000, ומגיש את המדיה ואת שירות ההתחברות המובנה באותו origin. כדי לקבל HTTPS, הציבו לפני פורט 3000 פרוקסי שמסיים את חיבור ה-TLS.
מה צריך לשנות אחרי שמעבירים את Nodaro לדומיין?
הגדירו את PUBLIC_URL ואת CORS_ORIGIN לכתובת ה-HTTPS שלכם, וב-MinIO המובנה הגדירו את R2_PUBLIC_URL לכתובת https://your-domain/storage/nodaro-assets. אחר כך הריצו docker compose up -d. אין צורך בבנייה מחדש.
למה פרוקסי ה-nginx שלי שובר את הזרמת הפלט?
כברירת מחדל, nginx אוגר תגובות, ולכן הוא מעכב את אירועי השרת (SSE). הגדירו proxy_buffering off. עם Caddy על המארח, הגדירו flush_interval -1 בבלוק reverse_proxy.
האם Nodaro יכול לענות ביותר משם מארח אחד?
כן. רשמו את ה-origins הנוספים ב-CORS_ORIGIN, מופרדים בפסיקים. אם ה-API חולק את ה-origin של האפליקציה, כמו בקונטיינר ברירת המחדל, הגדירו גם PUBLIC_URL_SAME_ORIGIN=true, כדי שהזרמים יישארו בשם המארח שהמבקר משתמש בו.
דפים קשורים
התקנה
תצורה
MCP בהתקנה באירוח עצמי
פתרון בעיות
עודכן לאחרונה