Овај чланак ће вас провести кроз примену ваше Метеор апликације на Вултр ВПС који користи Убунту 14.04. Такође може да ради на другим дистрибуцијама Линука (покушајте на сопствени ризик).
Генијални колега по имену Арунода Сусирипала, који је прилично активан у Метеор заједници, развио је алатку за примену под називом мупк (скраћено од „Метеор Уп Кс“), што чини изузетно лаким постављање ваше Метеор апликације на удаљени сервер преко ссх-а. Мупк је наследник мупа. Провешћемо вас кроз процес од почетка до краја. Муп обавља већину тешког дизања, на срећу, тако да ће ово бити лак!
Наш први корак је да инсталирамо мупк. Ово ћете радити на својој радној станици за развој, а не на ВПС серверу! Уверите се да имате Ноде.јс већ инсталиран и покрените:
$ npm install -g mupx
Након што је инсталација завршена, идите у фасциклу свог Метеор пројекта, нпр. /projects/myApp, и покрените следеће команде:
$ mkdir .deploy
$ cd $_
$ mupx init
За оне који нису упознати са $_синтаксом, то је пречица за последњи аргумент који се користи у команди. Дакле, у овом случају, cd $_извршава се као cd .deploy.
Видећете следећи излаз:
Meteor Up: Production Quality Meteor Deployments
------------------------------------------------
Configuration file : mup.json
Settings file : settings.json
Empty Project Initialized!
Процес иницијализације креира две датотеке mup.jsonи settings.json. Оставићемо овај други фајл на миру. Само напред и отвори mup.json. У време писања овог чланка, подразумевана вредност mup.jsonизгледа овако:
{
// Server authentication info
"servers": [
{
"host": "hostname",
"username": "root",
"password": "password",
// or pem file (ssh based authentication)
// WARNING: Keys protected by a passphrase are not supported
//"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,
// 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": "/path/to/the/app",
// Configure environment
// ROOT_URL must be set to your correct domain (https or http)
"env": {
"PORT": 80,
"ROOT_URL": "http://myapp.com"
},
// 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,
// show a progress bar while uploading.
// Make it false when you deploy using a CI box.
"enableUploadProgressBar": true
}
Морамо да променимо неколико ствари да би процес подешавања функционисао.
Прво, обавезно подесите hostсвоју ВПС ИП адресу, на пример:
"host": "123.123.123.123",
Ако треба да користите број порта који није подразумевани 22, то можете учинити помоћу sshOptionsпоља, на пример:
"host": "123.123.123.123",
"sshOptions": { "port": 9876 },
Подесите usernameвредност било ком кориснику коме желите да поседује инсталацију ваше Метеор апликације. Препоручујем да уклоните ред за лозинку и уместо тога користите ССХ кључ, из безбедносних разлога. Одкоментирајте ред са pemвредношћу и уверите се да показује на ваш ССХ тајни кључ који одговара ССХ јавном кључу који сте инсталирали на свој ВПС (у /root/.ssh/authorized_keys). Обавезно додајте зарез после реда лозинке! Ако ваш ССХ кључ има приложену приступну фразу, у pemпотпуности уклоните ред и уверите се да је ваш ССХ приватни кључ кеширан у ссх агенту (нпр. на Мац-у, ssh-add <path to ssh private key>).
Оставите setupMongoподешену на подразумевану вредност.
Промените appNameназив своје апликације Метеор. у нашем случају:
"appName": "myApp",
... и поставите локацију апликације у односу на ову фасциклу за примену:
"app": "..",
На крају, подесите на ROOT_URLназначени УРЛ за своју апликацију. Експлицитно поставите број порта на стандардни ХТТП порт.
// Configure environment
"env": {
"ROOT_URL": "http://myapp.com",
"PORT": 80
},
То је то! Сачувајте mup.jsonдатотеку, а затим покрените:
$ mupx setup
У овом тренутку мупк ће ссх ући у ваш ВПС, инсталирати Доцкер, подесити окружење и повући одговарајуће Доцкер слике. Сада примените своју апликацију:
$ mupx deploy
Сада ако одете на http://123.123.123.123, ваша апликација ће се приказати када се страница учита.
Подршка за више језгара
Ако ваш ВПС има више језгара, ваша Метеор апликација то може искористити. Мораћемо само да направимо неколико брзих подешавања.
Прво, мораћете да инсталирате кластер пакет. Идите у фасциклу своје Метеор апликације (у овом примеру, /projects/myApp) и откуцајте:
$ meteor add meteorhacks:cluster
Сада уредите своју mup.jsonдатотеку и измените одељак променљиве окружења на следећи начин:
// Configure environment
"env": {
"ROOT_URL": "http://myapp.com",
"PORT": 80,
"CLUSTER_WORKERS_COUNT": "auto"
},
Пошто смо вашој апликацији додали нови пакет, мораћете да га поново примените.
$ mupx setup && mupx deploy
Ако икада пожелите да промените своје променљиве окружења mup.jsonбез потребе за постављањем целе апликације, једноставно користите команду рецонфигуре. Ово је корисно када није било промена у апликацији.
$ mupx reconfig
Честитамо, ваша апликација Метеор је сада покренута и ради! Такође, ваша апликација ће се аутоматски покренути сваки пут када се ваш ВПС поново покрене. Обратите пажњу на будуће чланке о примени и управљању Метеором.