web-dev-qa-db-ja.com

Meteorアプリケーションを自分のサーバーにデプロイする方法は?

Meteorアプリケーションを自分のサーバーにデプロイする方法は?

フレーバー1:開発および展開サーバーは同じです。

フレーバー2:開発サーバーは1つ(多分私のlocalhost)であり、展開サーバーはもう1つ(おそらくクラウド内のVPS)です。

フレーバー3:「meteor.com」のように「meteor hosting」ドメインを作成したい。出来ますか?どうやって?

更新

私はUbuntuを実行していますが、アプリケーションを「demetorize」したくありません。ありがとうございました。

66
J. Bruni

Meteor documentation は次のように述べています:

「[...] Node.js 0.8とMongoDBサーバーを提供する必要があります。その後、ノードを呼び出して、リッスンするアプリケーションのHTTPポートとMongoDBエンドポイントを指定して、アプリケーションを実行できます。」


したがって、Node.jsのインストールのいくつかの方法の中で、 見つけた最良のアドバイス 、これは基本的に official Node.JS Webサイト で直接利用可能な最新バージョンを解凍し、すでにLinux用にコンパイルされています(私の場合は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


そしてMongoDBのインストールには、 の公式WebサイトのドキュメントセクションにあるMongoDBマニュアルの指示 に従いました。

# 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アプリケーションを実行する準備ができています!展開の場合、主要な「問題」はwhereで、 "bundle"操作が発生します。アプリケーションのソースファイルツリー内からmeteor bundleコマンドを実行する必要があります。例えば:

cd ~/leaderboard
meteor bundle leaderboard.tar.gz


展開が別のサーバー( flavour 2 )で行われる場合は、sftpftp、またはその他を使用して、バンドルtar.gzファイルをアップロードする必要があります。ファイル転送方法。ファイルが作成されたら、Meteorの両方のドキュメントに従いますand README=バンドルツリーのルートに魔法のように含まれているファイル:

# 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


デプロイメントが同じサーバー( flavour 1 )にある場合、バンドルtar.gzファイルはすでに存在しているため、ネイティブを再コンパイルする必要はありません。パッケージ。 (上記の対応するセクションをジャンプするだけです。)



クール!これらの手順により、「リーダーボード」のサンプルが「meteor.com」ではなく、my custom serverにデプロイされました...(サービスの学習と評価のみを目的としています!)

ポート80で実行する必要があります( これにNginXを使用する予定です )、環境変数を保持し、ターミナルなどから切り離されたNode.JSを起動します。 。私はこの設定を「ほとんど裸の」ものに気づいています...ただのベース、最初のステップ、基本的な基礎石。

アプリケーションは、すべてのmeteor deployコマンドのマジック機能を利用せずに「手動で」デプロイされています...「 meteor.sh 「および「 meteoric.sh 」と同じパスに従っています...「単一コマンドのデプロイ」機能をエミュレートするスクリプトを作成します...近い将来、これらはすべてパイオニアメテオエクスプローラーの一部になり、ギャラクシー全体に成長します!これらの問題のほとんどは過去の古風なものです。

とにかく、デプロイされたアプリケーションが 史上最も安いVPS でどれだけ速く実行されるかを見ることができて非常に嬉しいです。素晴らしい!

ありがとうございました!!!

87
J. Bruni

試してください 流星

これにより、任意のUbuntuサーバーにデプロイできます。これは内部でmeteor buildコマンドを使用します。また、多くの人が本番アプリを展開するために使用します。

開発者がGalaxyが登場するまでプロダクション品質のMeteorアプリを展開できるように、Meteor Upを作成しました。

14

フレーバー2は、別個の展開サーバーを使用することをお勧めします。懸念事項を分離することで、コードの環境がより安定し、デバッグが容易になります。

これを行うには、AmazonのEC2または独自のサーバーにデプロイするのに役立つ優れた 流星 bashスクリプトがあります。

独自のmeteor.comを展開する方法については、関連していないため、それを独自のStackOverflowの質問に分解することをお勧めします。さらに、私はそれに答えることができません:)

8
Jonatan Littke

数日前にそれを使いました。 MeteorアプリケーションをDigitalOcean上の自分のサーバーにデプロイしました。 Meteor Up ツールを使用して、アプリを提供するサーバー上のデプロイとNginxを管理しました。

使い方はとても簡単です。次のコマンドでmeteorをインストールする必要があります。

npm install -g mup

次に、展開構成用のフォルダーを作成し、作成したディレクトリに移動します。次に、meteor initコマンドを実行します。 2つの構成ファイルが作成されます。 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と入力するだけです。

6
Dmytro Medvid

別の選択肢は、自分のサーバーで開発を開始することです。デジタルオーシャンボックスを作成し、Cloud9 IDEアカウントを接続しました。

これで、クラウドIDEのマシン上で開発することができ、ファイルをコピーするだけで展開が簡単になりました。

セットアップの動作を正確に示すチュートリアルを作成しました。

5
John Sonmez

CentOS 7 VPSでMeteorを実行するための手順 です。他のLinux環境に適用する必要があります。

2
Kamal

私は流星で多くの問題を抱えていたので、自分のデプロイスクリプトを書くことにしました。また、nginxまたはmongodbの設定方法に関する追加情報も追加しました。それが役に立てば幸い!

- 見る /shリポジトリ内のフォルダー

スクリプトmeteor-deploy.shは:

  1. 環境を選択(./meteor-deploy.shステージング、./meteor-deploy.sh prod生産用)
  2. Meteorアプリのプロダクションバージョンをビルドしてバンドルする
  3. バンドルをサーバーにコピー
  4. サーバーへのSSH
  5. Mongodumpを実行してデータベースをバックアップします
  6. 実行中のアプリを停止します
  7. バンドルを開梱
  8. アプリファイルを上書きする
  9. アプリノードパッケージの依存関係を再インストールする
  10. アプリを起動します(永久に使用します)

次のサーバー構成でテスト済み:

  • Ubuntu 14.04.4 LTS
  • meteor-バージョン1.3.2.4
  • node-バージョンv0.10.41
  • npm-バージョン3.10.3
2
Samuel