deployment एक उल्का आवेदन कैसे अपने सर्वर पर तैनात करने के लिए?




hosting meteor (6)

मैं एक अलग तैनाती सर्वर के साथ स्वाद दो की सिफारिश करेंगे। चिंताओं का पृथक्करण आपके कोड के लिए एक और अधिक स्थिर वातावरण की ओर जाता है और इसे डीबग करना आसान होता है।

ऐसा करने के लिए, उत्कृष्ट Meteoric बैश स्क्रिप्ट है जो आपको अमेज़ॅन के ईसी 2 या अपने सर्वर पर तैनात करने में मदद करती है।

अपने स्वयं के meteor.com को कैसे रोल करें, मेरा सुझाव है कि आप इसे अपने स्वयं के स्टैक ओवरफ्लो प्रश्न में तोड़ दें क्योंकि यह संबंधित नहीं है। इसके अलावा, मैं इसका जवाब नहीं दे सकता :)

एक उल्का आवेदन कैसे अपने सर्वर पर तैनात करने के लिए?

स्वाद 1: विकास और तैनाती सर्वर समान हैं;

स्वाद 2: विकास सर्वर एक है (शायद मेरा लोकहोस्ट) और तैनाती सर्वर एक और है (शायद क्लाउड में एक वीपीएस);

स्वाद 3: मैं "meteor.com" की तरह, "उल्का होस्टिंग" डोमेन बनाना चाहता हूं। क्या यह संभव है? कैसे?

अपडेट करें :

मैं उबंटू चला रहा हूं और मैं एप्लिकेशन को "demeteorize" नहीं करना चाहता। धन्यवाद।


मैंने कुछ दिन पहले इसके साथ किया था। मैंने डिजिटल मौसम पर अपने सर्वर पर अपने मीटरी एप्लिकेशन को तैनात किया। मैंने ऐप की सेवा के लिए सर्वर पर तैनाती और Nginx प्रबंधन के लिए मीटरी अप टूल का उपयोग किया।

इसका उपयोग करना बहुत आसान है। आपको कमांड के साथ उल्का स्थापित करना चाहिए:

npm install -g mup

फिर तैनाती विन्यास के लिए फ़ोल्डर बनाएँ और बनाई गई निर्देशिका पर जाएं। फिर meteor init कमांड meteor init । यह दो विन्यास फाइलों का निर्माण करेगा। हम mup.json फ़ाइल के लिए रुचि रखते हैं। इसमें तैनाती प्रक्रिया के लिए विन्यास है। ऐसा लगता है:

{
  // Server authentication info
  "servers": [
    {
      "host": "hostname",
      "username": "root",
      "password": "password",
      // or pem file (ssh based authentication)
      //"pem": "~/.ssh/id_rsa",
      // Also, for non-standard ssh port use this
      //"sshOptions": { "port" : 49154 },
      // server specific environment variables
      "env": {}
    }
  ],

  // Install MongoDB on the server. Does not destroy the local MongoDB on future setups
  "setupMongo": true,

  // WARNING: Node.js is required! Only skip if you already have Node.js installed on server.
  "setupNode": true,

  // WARNING: nodeVersion defaults to 0.10.36 if omitted. Do not use v, just the version number.
  "nodeVersion": "0.10.36",

  // Install PhantomJS on the server
  "setupPhantom": true,

  // Show a progress bar during the upload of the bundle to the server.
  // Might cause an error in some rare cases if set to true, for instance in Shippable CI
  "enableUploadProgressBar": true,

  // Application name (no spaces).
  "appName": "meteor",

  // Location of app (local directory). This can reference '~' as the users home directory.
  // i.e., "app": "~/Meteor/my-app",
  // This is the same as the line below.
  "app": "/Users/arunoda/Meteor/my-app",

  // Configure environment
  // ROOT_URL must be set to https://YOURDOMAIN.com when using the spiderable package & force SSL
  // your NGINX proxy or Cloudflare. When using just Meteor on SSL without spiderable this is not necessary
  "env": {
    "PORT": 80,
    "ROOT_URL": "http://myapp.com",
    "MONGO_URL": "mongodb://arunoda:[email protected]:10023/MyApp",
    "MAIL_URL": "smtp://postmaster%40myapp.mailgun.org:[email protected]:587/"
  },

  // Meteor Up checks if the app comes online just after the deployment.
  // Before mup checks that, it will wait for the number of seconds configured below.
  "deployCheckWaitTime": 15
}

सभी डेटा फ़ील्ड भरने के बाद आप कमांड mup setup साथ सेटअप प्रक्रिया शुरू कर सकते हैं। यह आपके सर्वर को स्थापित करेगा।

सशक्त सेटअप के बाद आप अपना ऐप तैनात कर सकते हैं। बस कंसोल में mup deploy टाइप करें।


मुझे उल्का के साथ बहुत परेशानी थी, इसलिए मैंने अपनी खुद की तैनाती लिपि लिखने का फैसला किया। मैंने nginx या mongodb को सेट अप करने के लिए अतिरिक्त जानकारी भी जोड़ा। आशा करता हूँ की ये काम करेगा!

भंडार में फ़ोल्डर देखें /sh

स्क्रिप्ट meteor-deploy.sh क्या करता है:

  1. उत्पादन के लिए पर्यावरण ( ./meteor-deploy.sh चयन करें, ./meteor-deploy.sh prod प्रोडक्शन के लिए ./meteor-deploy.sh prod )
  2. उल्का ऐप के उत्पादन संस्करण का निर्माण और बंडल करें
  3. सर्वर पर बंडल कॉपी करें
  4. सर्वर में एसएसएच
  5. बैकअप डेटाबेस के लिए एक mongodump करो
  6. चल रहे ऐप को रोकें
  7. अनपैक बंडल
  8. ऐप फ़ाइलों को ओवरराइट करें
  9. ऐप नोड पैकेज निर्भरताओं को दोबारा स्थापित करें
  10. ऐप शुरू करें (हमेशा के लिए उपयोग करता है)

निम्न सर्वर कॉन्फ़िगरेशन के लिए परीक्षण किया गया:

  • उबंटू 14.04.4 एलटीएस
  • उल्का - संस्करण 1.3.2.4
  • नोड --वर्जन v0.10.41
  • एनपीएम - संस्करण 3.10.3

उल्का दस्तावेज वर्तमान में कहता है:

"[...] आपको Node.js 0.8 और एक मोंगोडीबी सर्वर प्रदान करने की आवश्यकता है। फिर आप नोड का आविष्कार करके एप्लिकेशन को चला सकते हैं, एप्लिकेशन को सुनने के लिए HTTP पोर्ट निर्दिष्ट कर सकते हैं, और मोंगोडीबी एंडपॉइंट।"


तो, Node.js को स्थापित करने के कई तरीकों में से, मैंने इसे प्राप्त किया और मुझे मिली सबसे अच्छी सलाह के बाद चल रहा है , जो मूल रूप से आधिकारिक नोड.जेएस वेबसाइट में उपलब्ध नवीनतम संस्करण को अनपॅक कर रहा है , जो पहले ही लिनक्स के लिए संकलित है (64 बिट्स, मेरे मामले में):

# Does NOT need to be root user:

# create directory
mkdir -p ~/.nodes && cd ~/.nodes

# download latest Node.js distribution
curl -O http://nodejs.org/dist/v0.10.13/node-v0.10.13-linux-x64.tar.gz

# unpack it
tar -xzf node-v0.10.13-linux-x64.tar.gz

# discard it
rm node-v0.10.13-linux-x64.tar.gz

# rename unpacked folder
mv node-v0.10.13-linux-x64 0.10.13

# create symlink
ln -s 0.10.13 current

# add path to PATH
export PATH="~/.nodes/current/bin:$PATH"

# check
node --version
npm --version


और मोंगो डीबी स्थापित करने के लिए, मैंने बस अपनी आधिकारिक वेबसाइट के प्रलेखन अनुभाग में उपलब्ध मोंगोडीबी मैनुअल में निर्देशों का पालन किया :

# Needs to be root user (apply "sudo" if not at root shell)

apt-key adv --keyserver keyserver.ubuntu.com --recv 7F0CEB10
echo 'deb http://downloads-distro.mongodb.org/repo/ubuntu-upstart dist 10gen' | tee /etc/apt/sources.list.d/10gen.list
apt-get update
apt-get install mongodb-10gen


सर्वर उल्का अनुप्रयोग चलाने के लिए तैयार है! तैनाती के लिए, मुख्य "मुद्दा" वह जगह है जहां " बंडल " ऑपरेशन होता है। हमें एप्लिकेशन स्रोत फाइल पेड़ के अंदर से meteor bundle कमांड चलाने की आवश्यकता है। उदाहरण के लिए:

cd ~/leaderboard
meteor bundle leaderboard.tar.gz


यदि तैनाती किसी अन्य सर्वर ( स्वाद 2 ) में होगी, तो हमें sftp , ftp , या किसी अन्य फ़ाइल स्थानांतरण विधि का उपयोग करके बंडल tar.gz फ़ाइल अपलोड करने की आवश्यकता है। एक बार फ़ाइल होने के बाद, हम उल्का दस्तावेज और रीडमे फ़ाइल दोनों का पालन करते हैं जो बंडल पेड़ की जड़ में जादुई रूप से शामिल है:

# unpack the bundle
tar -xvzf leaderboard.tar.gz

# discard tar.gz file
rm leaderboard.tar.gz

# rebuild native packages
pushd bundle/programs/server/node_modules
rm -r fibers
npm install [email protected]
popd

# setup environment variables
export MONGO_URL='mongodb://localhost'
export ROOT_URL='http://example.com'
export PORT=3000

# start the server
node main.js


यदि तैनाती एक ही सर्वर ( स्वाद 1 ) में होगी, तो बंडल tar.gz फ़ाइल पहले से मौजूद है, और हमें मूल पैकेजों को पुन: संकलित करने की आवश्यकता नहीं है। (बस ऊपर दिए गए खंड को कूदें।)


ठंडा! इन चरणों के साथ, मुझे "लीडरबोर्ड" उदाहरण मिला है जो मेरे कस्टम सर्वर पर तैनात है, न कि "meteor.com" ... (केवल उनकी सेवाओं को सीखने और मूल्यवान करने के लिए!)

मुझे अभी भी इसे पोर्ट 80 पर चलाने की ज़रूरत है ( मैं इसके लिए एनजिनएक्स का उपयोग करने की योजना बना रहा हूं ), पर्यावरण चर बने रहें, नोड शुरू करें। जेएस टर्मिनल से अलग हो गया है, और कैटर ... मैं इस सेटअप को "मुश्किल से नग्न" में जानता हूं। .. बस आधार, पहला कदम, बुनियादी नींव पत्थरों।

सभी meteor deploy कमांड जादू सुविधाओं का लाभ meteor.sh बिना एप्लिकेशन को "मैन्युअल रूप से" तैनात किया गया है ... मैंने लोगों को अपना " meteor.sh " और " meteor.sh " प्रकाशित किया है और मैं एक ही पथ का अनुसरण कर रहा हूं ... "एकल कमांड तैनाती" सुविधा का अनुकरण करने के लिए एक स्क्रिप्ट बनाएं ... जागरूक है कि निकट भविष्य में यह सब सामान केवल अग्रणी उल्का खोजकर्ताओं का हिस्सा होगा, क्योंकि यह पूरे गैलेक्सी में बढ़ेगा! और इनमें से अधिकतर मुद्दे अतीत की पुरातन बात होगी।

वैसे भी, मुझे यह देखने में बहुत खुशी है कि सबसे सस्ता वीपीएस में तैनात एप्लिकेशन कितनी तेजी से चलता है, आश्चर्यजनक रूप से कम विलंबता और कई अलग-अलग ब्राउज़रों में लगभग तत्काल एक साथ अद्यतन। बहुत खुबस!

धन्यवाद!!!


उल्का ऊपर भी कोशिश करें

इसके साथ आप किसी भी उबंटू सर्वर में तैनात कर सकते हैं। यह आंतरिक रूप से meteor build आदेश का उपयोग करता है। और उत्पादन ऐप्स को तैनात करने के लिए कई लोगों द्वारा उपयोग किया जाता है।

मैंने डेवलपर को उत्पादन गुणवत्ता को तैनात करने की अनुमति देने के लिए उल्का बनाया है जब तक गैलेक्सी आता है।






meteor