Marinara Engine को अपडेट करना
Marinara Engine को नए वर्ज़न पर अपडेट करें, ऐप के अंदर अपडेट जाँचें, और कुछ टूट जाए तो पुराने वर्ज़न पर लौटें। अपडेट करने पर आपकी चैट और सेटिंग्स बनी रहती हैं।
मेरे लिए कौन सा अपडेट तरीका सही है?
| आपने कैसे इंस्टॉल किया | कैसे अपडेट करें |
Windows इंस्टॉलर या start.bat | Marinara बंद करके दोबारा खोलें। देखें Windows। |
| macOS या Linux | ./start.sh दोबारा चलाएँ। देखें macOS और Linux। |
| Docker या Podman | नई इमेज पुल करें और रीस्टार्ट करें। देखें Docker या Podman। |
| Android ऐप | APK अपडेट करें, फिर Install / Start Marinara पर टैप करें। देखें Android (Termux)। |
| iPhone या iPad | सर्वर वाला डिवाइस अपडेट करें। देखें iPhone और iPad। |
पहले बैकअप लें
वर्ज़न में किसी भी बड़ी छलाँग से पहले बैकअप बना लें। अगर आगे चलकर पुराने वर्ज़न पर लौटना पड़ सकता है, तो बैकअप हमेशा बनाएँ।
- Settings (सेटिंग्स) खोलें।
- Advanced (एडवांस्ड) टैब पर जाएँ।
- Backup & Export (बैकअप और एक्सपोर्ट) सेक्शन ढूँढें।
- Download Backup (बैकअप डाउनलोड) पर क्लिक करें।
.zipफ़ाइल किसी सुरक्षित जगह सेव करें।
काम चलने के दौरान बटन पर Creating backup… दिखता है। पूरा होने पर ब्राउज़र आपके डेटा की एक .zip फ़ाइल सेव कर देता है। रिस्टोर करने के लिए देखें Marinara का बैकअप और रिस्टोर।
प्लैटफ़ॉर्म के हिसाब से अपडेट
वह सेक्शन चुनें जो आपके Marinara इंस्टॉल करने के तरीके से मेल खाता हो। git कॉपी यानी Git टूल से इंस्टॉल की गई कॉपी। Windows इंस्टॉलर और हर git clone इसी में आते हैं।
Windows
Marinara शुरू करते ही लॉन्चर उसे अपडेट कर देता है।
- Marinara Engine बंद करें।
- इसे डेस्कटॉप या Start Menu शॉर्टकट से दोबारा खोलें, या
start.batचलाएँ।
लॉन्चर सबसे नया कोड लाता है, जो बदला है उसे दोबारा इंस्टॉल करता है, ऐप फिर से बनाता है और नया वर्ज़न शुरू कर देता है। अगर आपने कोड में खुद बदलाव किए हैं, तो वह उन्हें अलग रख देता है और अपडेट के बाद वापस लगा देता है। ऐसा न हो पाए, तो वह आपका मौजूदा वर्ज़न ही रहने देता है और एक नोट दिखाता है। अपडेट से पहले वह आपके डेटा की कॉपी बना लेता है, और ऐसा अपडेट छोड़ देता है जो आपको आपके डेटा से पुराने वर्ज़न पर ले जाए (देखें पुराने वर्ज़न पर वापस जाना)।
एक बार अपडेट छोड़ने के लिए start.bat --skip-update चलाएँ। हर बार शुरू करने पर इंस्टॉल किया हुआ वर्ज़न बनाए रखना हो, तो प्रोजेक्ट के .env में AUTO_UPDATE_ENABLED=false सेट करें। इससे सिर्फ़ अपने आप होने वाले अपडेट बंद होते हैं। मैन्युअल कमांड और Settings → Advanced → Check for Updates (सेटिंग्स → एडवांस्ड → अपडेट जाँचें) फिर भी काम करते हैं।
लॉन्चर कहे कि Node.js बहुत पुराना है, तो Node.js 24 LTS (Long Term Support, यानी सुझाया गया स्थिर रिलीज़) इंस्टॉल करें, फिर Marinara दोबारा शुरू करें। चाहें तो GitHub Releases पेज से सबसे नया इंस्टॉलर डाउनलोड करके भी चला सकते हैं।
macOS और Linux
- Marinara Engine बंद करें।
- अपने Marinara फ़ोल्डर से लॉन्चर चलाएँ।
./start.shलॉन्चर सबसे नया कोड लाता है, बदली हुई डिपेंडेंसी दोबारा इंस्टॉल करता है, ऐप फिर से बनाता है और नया वर्ज़न शुरू कर देता है। एक बार अपडेट छोड़ने के लिए ./start.sh --skip-update इस्तेमाल करें, या अपने आप होने वाले अपडेट बंद करने के लिए .env में AUTO_UPDATE_ENABLED=false सेट करें। Node.js बहुत पुराना हो, तो Node.js 24 LTS इंस्टॉल करें और लॉन्चर दोबारा चलाएँ।
Docker या Podman
कंटेनर नई इमेज पुल करके अपडेट होते हैं, लॉन्चर से नहीं। बैकअप बनाएँ, फिर यह कमांड उस फ़ोल्डर से चलाएँ जिसमें आपकी Compose फ़ाइल है।
docker compose pull && docker compose up -dPodman के साथ इसकी जगह podman compose इस्तेमाल करें। रिलीज़ इमेज ghcr.io/pasta-devs/marinara-engine:X.Y.Z और :latest हैं, साथ में उनसे मिलते -lite टैग भी। पुल करने से marinara-data वॉल्यूम में रखा आपका डेटा छुआ तक नहीं जाता। देखें कंटेनर इंस्टॉलेशन।
Android (Termux)
Termux वह Android ऐप है जो Marinara के लिए एक छोटा Linux सिस्टम चलाता है। इसका लॉन्चर हर बार चलाने पर Marinara को अपडेट कर देता है।
- Termux खोलें।
- लॉन्चर चलाएँ।
cd Marinara-Engine
./start-termux.shलॉन्चर कोड अपडेट करता है, ज़रूरत पड़ने पर Node.js अपग्रेड करता है, ऐप फिर से बनाता है और सर्वर शुरू कर देता है। कोई अपडेट कुछ बिगाड़ दे और आपको अपनी मौजूदा कॉपी पर ही रहना हो, तो --skip-update जोड़ें। अपने आप होने वाले अपडेट बंद करने के लिए प्रोजेक्ट के .env में AUTO_UPDATE_ENABLED=false सेट करें।
Android ऐप (APK) इस्तेमाल करते हैं, तो नया APK डाउनलोड करें और उसे खोलें, ताकि Android ऐप को अपडेट कर दे। फिर Marinara Engine खोलें और Termux कॉपी को अपडेट करके शुरू करने के लिए Install / Start Marinara पर टैप करें। अपडेट कभी आपसे साइनिंग क्रेडेंशियल या कोई सीक्रेट नहीं माँगता।
iPhone और iPad
इन डिवाइस पर सर्वर नहीं चलता। Home Screen वाला आइकन एक PWA है, यानी Home Screen पर सेव की गई वेबसाइट जो ऐप की तरह खुलती है।
- वह कंप्यूटर, कंटेनर होस्ट या Android डिवाइस अपडेट करें जिस पर आपका Marinara सर्वर चलता है। उसका ऊपर वाला सेक्शन देखें।
- Home Screen वाला ऐप या Safari टैब दोबारा लोड करें।
Safari पुराना बिल्ड दिखाता रहे, तो PWA दोबारा इंस्टॉल करें। देखें PWA हटाकर दोबारा इंस्टॉल करना।
मैन्युअल अपडेट (git कॉपी, बिना लॉन्चर)
अगर आप लॉन्चर की जगह pnpm start से git कॉपी चलाते हैं, तो यह तरीका अपनाएँ। ये कमांड Marinara फ़ोल्डर से चलाएँ।
- सबसे नया स्थिर कोड लाएँ।
git fetch origin +refs/heads/main:refs/remotes/origin/main- उस पर जाएँ।
git merge --ff-only origin/main || git checkout --detach origin/main- डिपेंडेंसी दोबारा इंस्टॉल करें, ऐप फिर से बनाएँ और शुरू करें।
pnpm install --force --frozen-lockfile
pnpm build
pnpm startstaging (टेस्टर) वर्ज़न के लिए स्टेप 1 और 2 की जगह ये दो कमांड चलाएँ:
git fetch origin +refs/heads/staging:refs/remotes/origin/staging
git checkout -B staging origin/stagingWarning: Staging बिल्ड टेस्टर के लिए बने प्री-रिलीज़ बिल्ड हैं। इन्हें इस्तेमाल करने से पहले अपना डेटा बैकअप कर लें।
ऐप के अंदर से अपडेट करना
Marinara, GitHub पर नया वर्ज़न जाँच सकता है। कुछ इंस्टॉल ब्राउज़र से ही अपडेट लागू भी कर सकते हैं।
- Settings खोलें।
- Advanced टैब पर जाएँ।
- Updates (अपडेट) सेक्शन ढूँढें।
रिलीज़ चैनल चुनें
Release Channel (रिलीज़ चैनल) तय करता है कि आप कौन से बिल्ड फ़ॉलो करेंगे।
- Latest Stable:
vX.Y.Zटैग वाले रिलीज़। आम तौर पर यही चुना जाता है। - Staging/UAT: टेस्टर के लिए बने प्री-रिलीज़ बिल्ड, जो अधूरे हो सकते हैं। इसे चुनने पर यह चेतावनी दिखती है: "Staging builds are pre-release tester builds. Back up your app data before applying them."
सर्वर वाले कंप्यूटर के ही ब्राउज़र में कोई दूसरा चैनल चुनने पर अपडेट बटन पर Switch to और उसके आगे चैनल का नाम लिखा आता है। यह तब भी काम करता है जब ऐप के अंदर के सामान्य अपडेट बंद हों, और चलते समय Switching… दिखाता है। रिमोट डिवाइस यह तभी कर सकते हैं जब वे नीचे दी गई Apply Update (अपडेट लागू करें) वाली शर्तें पूरी करें।
Check for Updates
Check for Updates पर क्लिक करें। काम चलने के दौरान बटन Checking… दिखाता है। बटन के नीचे आपका Release वर्ज़न, Build कमिट कोड और, पता हो तो, आपकी Branch दिखती है।
- आप सबसे नए वर्ज़न पर हों, तो एक हरी पंक्ति आपके वर्ज़न के साथ "You're on the latest" कहती है।
- नया रिलीज़ मौजूद हो, तो एक कार्ड Release notes लिंक के साथ "vX.Y.Z available" दिखाता है।
- git कॉपी पीछे हो, तो कार्ड "N commits behind" दिखाता है। कमिट यानी कोड में सेव किया गया एक बदलाव, इसलिए इस गिनती में बिना रिलीज़ हुआ काम भी शामिल हो सकता है।
रिलीज़ की जाँच लगभग 15 मिनट तक और कमिट की गिनती लगभग 5 मिनट तक कैश रहती है, इसलिए तुरंत दोबारा क्लिक करने पर वही नंबर दिख सकते हैं।
जाँच फ़ेल हो जाए, तो दिखता है: "Could not check for updates. Try again later." इसकी वजह आम तौर पर नेटवर्क या GitHub की कोई दिक्कत होती है।
Apply Update
Apply Update ब्राउज़र से ही git कॉपी को अपडेट करता है। यह सिर्फ़ तभी दिखता है जब ये सारी बातें सच हों:
- इंस्टॉल git कॉपी हो। कंटेनर और दूसरे इंस्टॉल इस तरह अपडेट लागू नहीं कर सकते।
- ब्रांच
main,masterयाstagingहो, या डिटैच्ड चेकआउट हो। किसी दूसरी ब्रांच वाली कॉपी डेवलपमेंट चेकआउट गिनी जाती है और Marinara मना कर देता है। - सर्वर के मालिक ने सर्वर की
.envफ़ाइल मेंUPDATES_APPLY_ENABLED=trueसेट किया हो। UPDATES_APPLY_DISABLEDसेट न हो। यह हर तरह का अपडेट लागू करना रोक देता है, चैनल बदलना भी, और डेवलपर लॉन्चर इसे सेट करते हैं।
सर्वर चलाने वाले कंप्यूटर से अपडेट लागू करने के लिए एडमिन सीक्रेट की ज़रूरत नहीं है। वहाँ Marinara को http://127.0.0.1:7860 या http://localhost:7860 पर खोलें।
दो सेटिंग्स इसे बदल देती हैं:
- रिवर्स प्रॉक्सी या टनल से मिलने वाला पता दूसरा डिवाइस गिना जाता है।
REQUIRE_AUTH_FOR_LOOPBACK_PROXY=falseऐसे विज़िटर को लोकल मान लेता है, एडमिन सीक्रेट की लोकल छूट समेत। सार्वजनिक प्रॉक्सी या टनल के लिए इसे चालू ही रखें। MARINARA_REQUIRE_ADMIN_SECRET_ON_LOOPBACK=trueसेट करने पर लोकल रिक्वेस्ट को भी सीक्रेट चाहिए होता है।
किसी दूसरे डिवाइस से अपडेट लागू करना डिफ़ॉल्ट रूप से बंद रहता है। इसके लिए ये तीनों बातें ज़रूरी हैं:
- सर्वर के
.envमेंUPDATES_ALLOW_REMOTE_APPLY=trueहो। - सर्वर के
.envमेंADMIN_SECRETसेट हो। यह जोखिम वाले कामों के लिए एक दूसरा पासवर्ड है। - वही सीक्रेट आपके डिवाइस पर Settings → Advanced → Admin Access (सेटिंग्स → एडवांस्ड → एडमिन एक्सेस) में सेव हो।
Apply Update पर क्लिक करें। जब तक सर्वर कोड लाता है, दोबारा इंस्टॉल करता है, ऐप फिर से बनाता है और बंद होता है, बटन Updating… दिखाता है। फिर यह संदेश दिखता है: "Update applied successfully. Please relaunch the app to use the new version." काम पूरा करने के लिए Marinara दोबारा शुरू करें।
अगर यह काम नहीं किया: Apply Update न दिखे, तो Marinara उसकी वजह बताता है।
- कंटेनर वाले इंस्टॉल इमेज टैग और होस्ट पर चलाने के लिए
docker compose pull && docker compose up -dकमांड दिखाते हैं। - जिन git कॉपी में अपडेट लागू करना बंद है, वे एक मैन्युअल कमांड दिखाती हैं जिसे आप कॉपी कर सकते हैं।
- बाकी इंस्टॉल GitHub रिलीज़ का Download लिंक दिखाते हैं।
ब्राउज़र में ऐप रिफ़्रेश करना
Refresh App (ऐप रिफ़्रेश करें) उसी Updates सेक्शन में है। यह सर्वर को अपडेट नहीं करता। यह सर्विस वर्कर (एक छोटी स्क्रिप्ट, जिससे ब्राउज़र ऐप को तेज़ी से लोड करता है) हटाता है और ब्राउज़र के कैश साफ़ करता है, फिर पेज दोबारा लोड कर देता है। आपकी चैट और सेटिंग्स बनी रहती हैं।
इसे तब इस्तेमाल करें जब सर्वर अपडेट हो जाने के बाद भी ऐप पुराना या खाली दिखे। काम चलने के दौरान बटन Refreshing… दिखाता है।
आपका डेटा और वैकल्पिक डाउनलोड
अपडेट करने से ऐप का कोड बदलता है, आपका डेटा फ़ोल्डर या marinara-data वॉल्यूम नहीं। आपकी चैट, कैरेक्टर, पर्सोना, लोरबुक, प्रीसेट, कनेक्शन और सेटिंग्स अपनी जगह बनी रहती हैं। डेटा कहाँ रहता है, यह जानने के लिए Marinara का बैकअप और रिस्टोर पढ़ें।
- वैकल्पिक पैकेज। अगर आप ऐसे वर्ज़न से अपडेट करते हैं जिसमें फ़र्स्ट-पार्टी एजेंट, मैप, कॉल या Conversation गेम साथ आते थे, तो पहली शुरुआत पर उनसे मिलते वैकल्पिक पैकेज डाउनलोड हो जाते हैं। आपके चुनाव, सेटिंग्स और हिस्ट्री बनी रहती हैं। उस पहली शुरुआत के समय सर्वर को ऑनलाइन रखें। डाउनलोड सोर्स तक पहुँच न बने, तो Marinara अगली शुरुआत पर दोबारा कोशिश करता है और कुछ भी डिलीट नहीं करता।
- गाइड की भाषा। अगर आप कोई डाउनलोड की हुई डॉक्यूमेंटेशन भाषा इस्तेमाल करते हैं (Settings → General → Documentation Language), तो अपडेट के बाद पहली शुरुआत पर वह रिफ़्रेश हो जाती है। सोर्स तक पहुँच न बने, तो Marinara आपका इंस्टॉल किया हुआ पैक बनाए रखता है, जो गाइड उसमें नहीं हैं उन्हें अंग्रेज़ी में दिखाता है और अगली शुरुआत पर दोबारा कोशिश करता है।
- इंटरफ़ेस की भाषा। UI भाषा पैक अलग से, हाथ से डाउनलोड होते हैं। साथ आने वाले अनुवादों वाले वर्ज़न से पहली बार अपडेट करने पर इंटरफ़ेस अंग्रेज़ी में लौट आता है। Settings → General → Language (सेटिंग्स → जनरल → भाषा) में अपनी भाषा दोबारा चुनें। बाद के अपडेट डाउनलोड किए गए पैक बनाए रखते हैं। नए अनुवादों के लिए Refresh language pack (भाषा पैक रिफ़्रेश करें) इस्तेमाल करें। जिनका अनुवाद नहीं है, वे अंग्रेज़ी में दिखते हैं।
2.5.0 से अपडेट करना
ऊपर दिए स्टेप वही रहते हैं। कुछ बदलाव ऐसे सर्वर पर असर डालते हैं जिसे दूसरे डिवाइस या दूसरे लोग इस्तेमाल करते हैं। आपका सर्वर ऐसा है, तो ब्योरा खोलें।
- उसी कंप्यूटर पर रिवर्स प्रॉक्सी या टनल। nginx, Caddy, Cloudflare Tunnel, Tailscale Serve या ngrok जिन विज़िटर को Marinara तक पहुँचाते हैं, वे अब रिमोट गिने जाते हैं। लॉगिन के बिना उन्हें सेटअप पेज दिखता है, और बैकअप और दूसरे सुरक्षित कामों के लिए एडमिन सीक्रेट चाहिए। देखें उसी कंप्यूटर पर रिवर्स प्रॉक्सी और टनल।
- Tailscale लॉगिन बायपास। इस कंप्यूटर के Tailscale पते से सीधे कनेक्शन अब भी लॉगिन छोड़ देते हैं।
100.64.0.0/10से आने वाले बाकी कनेक्शन अब लॉगिन नहीं छोड़ते, और Tailscale Serve और Funnel से आने वाले विज़िटर को लॉगिन करना पड़ता है। देखें Tailscale और Docker बायपास। - पासवर्ड या अलाउलिस्ट के साथ Docker। लॉगिन सेट होने पर (ऐप का लॉगिन या Basic Auth) होस्ट कंप्यूटर के ब्राउज़र से भी अब वह माँगा जाता है।
TRUSTED_AUTH_PROXYके साथ भी यही होता है, जब तक कनेक्ट करने वाली खुद वही प्रॉक्सी न हो। सिर्फ़IP_ALLOWLISTसेट हो, तो होस्ट का ब्राउज़र तब तक मना कर दिया जाता है जब तक आप लिस्ट में कंटेनर का गेटवे न जोड़ें, इसलिए लॉगिन इस्तेमाल करें। देखें Tailscale और Docker बायपास। - दूसरे इंस्टॉल पर ले जाई गई चैट और प्रोफ़ाइल। चैट लॉग, सेटिंग्स प्रोफ़ाइल या पूरी प्रोफ़ाइल अब अपना Discord Mirror, DeepLX URL, DeepL API Key या Intiface URL किसी दूसरे इंस्टॉल पर नहीं ले जाती। वहाँ इन्हें दोबारा डालें। आपकी अपनी प्रोफ़ाइल, और उसी इंस्टॉल पर रिस्टोर की गई पूरी प्रोफ़ाइल, इन्हें बनाए रखती हैं।
- अपडेट के बाद लॉक आउट हो गए? देखें अपडेट के बाद लॉक आउट हो जाना।
पुराने वर्ज़न पर वापस जाना
पीछे जाना हमेशा संभव नहीं होता। नए वर्ज़न डेटा को नए स्टोरेज फ़ॉर्मैट में सेव करते हैं, और कोई भी बिल्ड ऐसे फ़ॉर्मैट वाला डेटा नहीं लेता जो उसके जाने-पहचाने फ़ॉर्मैट से नया हो। मौजूदा बिल्ड स्टोरेज फ़ॉर्मैट 10 इस्तेमाल करते हैं। फ़ॉर्मैट 8, 9 और 10 ने MMD अवतार, कनेक्शन के अकाउंट लिंक और GLB/FBX अवतार जोड़े। जो बिल्ड सिर्फ़ कोई पुराना फ़ॉर्मैट जानता है, वह इन फ़ॉर्मैट में सेव किया गया डेटा नहीं खोल सकता।
लॉन्चर ऐसा अपने आप होने वाला अपडेट छोड़ देता है जो असंगत वर्ज़न पर ले जाए, और इन-ऐप अपडेटर ऐसा अपडेट लागू करने से मना कर देता है। किसी पुराने बिल्ड पर वापस जाने के लिए Marinara को रोकें और अपडेट से पहले बनाया गया पूरा बैकअप रिस्टोर करें। नीचे बताई गई, चैट फ़ाइलें बदलने वाली कमांड MMD अवतार की सेटिंग्स नहीं बदल सकती। फ़ॉर्मैट का नंबर हाथ से न बदलें।
अगर आपका डेटा स्टोरेज फ़ॉर्मैट 8 से पुराना है, तो एक ही कमांड से चैट फ़ाइलें पुराने लेआउट में वापस बदली जा सकती हैं। देखें पुराने वर्ज़न पर जाने के बाद चैट में संदेश नहीं दिखते।
2.5.0 पर वापस जाना
वर्ज़न 2.5.0 स्टोरेज फ़ॉर्मैट 8 या उससे नए फ़ॉर्मैट में अपग्रेड हुआ डेटा नहीं खोल सकता। अपग्रेड से पहले बना बैकअप इस्तेमाल करें।
जो पुराना डेटा 2.5.0 खोल सकता है, उसमें भी यह नई सुविधाओं का जोड़ा हुआ डेटा नहीं पहचानता: कुछ कनेक्शन सेटिंग्स, चैट इमेज दोबारा बनाने में काम आने वाला ब्योरा, और गेम चेकपॉइंट, रूलसेट क्लॉक और सीन वीडियो के कुछ हिस्से। जब 2.5.0 कोई चैट या कनेक्शन सेव करता है, जैसे संदेश भेजते, गेम का टर्न खेलते, इमेज बनाते या कनेक्शन बदलते समय, तो वह पूरी चैट या पूरे कनेक्शन से यह नया डेटा हटा देता है। दोबारा अपडेट करने से यह वापस नहीं आता।
ठीक उसी जगह लौट पाने के लिए जहाँ आप थे, अपडेट करने से पहले बैकअप बनाएँ। देखें पहले बैकअप लें।
अपडेट फ़ेल हो जाए तो
ज़्यादातर दिक्कतें पुराने Node.js, अधूरे डाउनलोड या ब्राउज़र के पुराने कैश से आती हैं।
- लॉन्चर कहे कि Node.js बहुत पुराना है, तो Node.js 24 LTS इंस्टॉल करें और दोबारा शुरू करें।
- सर्वर अपडेट होने के बाद ऐप टूटा हुआ दिखे, तो Refresh App पर क्लिक करें।
- git कॉपी साफ़-सुथरे तरीके से अपडेट न हो पाए, तो मैन्युअल अपडेट वाली कमांड इस्तेमाल करें।
एरर संदेशों और उनके हल के लिए देखें Marinara Engine की समस्याएँ सुलझाना।
मिलती-जुलती गाइड
- Marinara का बैकअप और रिस्टोर
- Marinara Engine की समस्याएँ सुलझाना
- Windows इंस्टॉलेशन गाइड
- macOS / Linux इंस्टॉलेशन गाइड
- कंटेनर से चलाना (Docker / Podman)
- Android (Termux) इंस्टॉलेशन गाइड
- iOS / iPadOS PWA गाइड