Лёгкий деплой Meteor-приложения на собственный сервер

от автора

Вы можете делать всё, что вам нужно, с помощью Meteor, и вы можете делать это легко. Такой подход вдохновил разработчиков на добавление команды meteor deploy, которая должна была волшебным образом закрыть все потребности в развёртывании приложений. Но не закрыла.

meteor deploy работает, только если вы используете облачное решение Galaxy (от 0.035 $ в час) или бесплатный хостинг на Meteor.com (который закрывается уже 25 марта).

Запустить приложение на своём сервере можно: нужно собрать его под выбранную платформу, отправить на сервер и запустить как обыкновенное 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 

ссылка на оригинал статьи https://habrahabr.ru/post/279103/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *