Вы можете делать всё, что вам нужно, с помощью Meteor, и вы можете делать это легко. Такой подход вдохновил разработчиков на добавление команды meteor deploy
, которая должна была волшебным образом закрыть все потребности в развёртывании приложений. Но не закрыла.
meteor deploy
работает, только если вы используете облачное решение Galaxy (от 0.035 $ в час) или бесплатный
Запустить приложение на своём сервере можно: нужно собрать его под выбранную платформу, отправить на сервер и запустить как обыкновенное Node.js-приложение. Правда, вместо запуска посыпятся сообщения об ошибках. Чтобы всё прошло хорошо, важно использовать правильную версию Node.js. Вот гарантированно работоспособная инструкция.
Настройка сервера
Вам понадобится сервер с Ubuntu 14.04 LTS. Например, дроплет в DigitalOcean. Настройте к нему доступ по ssh с ключом без пароля и установите Node.js 0.10.x.
curl -sL https://deb.nodesource.com/setup_0.10 | sudo bash -
apt-get install nodejs
Установите Mongo из репозитория.
apt-get install mongodb-server
Установите Forever, чтобы приложение перезапускалось в случае возникновения проблем.
npm install -g forever
Если нужен пакет spiderable, установите PhantomJS.
apt-get install phantomjs
Деплой приложения
Соберите приложение на своей локальной машине.
meteor build --architecture os.linux.x86_64
Скопируйте meteor.tar.gz на сервер (например, в /home/meteor).
scp /tmp/meteor.tar.gz sashagrey:/home/meteor
Распакуйте тарбол на сервере и установите все нужные пакеты.
tar -xf meteor.tar.gz
cd /home/meteor/bundle/programs/server && npm install
Настройте переменные окружения.
export PORT=80
export MONGO_URL=mongodb://localhost:27017/meteor
export ROOT_URL=http://example.com
Запустите приложение.
forever start /home/meteor/bundle/main.js
Единая команда
Обычно весь meteor-код я храню в отдельной папке meteor
внутри проекта. В package.json я добавляю скрипт, который выполняет все описанные выше шаги и запускает приложение на сервере (предполагается, что вы можете доступиться до своего сервера командой ssh sashagrey
).
{
"scripts": {
"deploy": "cd meteor && meteor build /tmp --architecture os.linux.x86_64 && scp /tmp/meteor.tar.gz sashagrey:/home/meteor && rm /tmp/meteor.tar.gz && ssh sashagrey 'forever stopall && cd /home/meteor && tar -xf meteor.tar.gz && rm meteor.tar.gz && cd /home/meteor/bundle/programs/server && npm install && export PORT=80 && export MONGO_URL=mongodb://localhost:27017/meteor && export ROOT_URL=http://dev.34377.ru && forever start /home/meteor/bundle/main.js'",
}
}
Готово. Теперь, чтобы отправить приложение на собственный сервер и запустить его там, достаточно одной команды.
npm run deploy
Автор: maggg