Исторически сложилось так, что развертывание приложений Meteor было довольно сложным. Получение SSL, веб-сокетов и липких сессий может быть непростым делом.
К счастью, с такими вещами, как Docker и Caddy, развертывание приложений производственного качества становится проще.
Я собираюсь развернуть Rocket Chat на приставке Digital Ocean за 5 долларов, и в ней будут веб-узлы, липкие сеансы, SSL, и это займет менее 10 минут.
Минута 1: Цифровая капля океана
Я собираюсь предоставить Ubuntu 16.04, 5 долларов США, SFO-1.

Минута 2: установка Docker
SSH в поле DO и вставьте следующее:
curl -fsSL https://get.docker.com/ | sh
Это заняло около 1 минуты.
Минута 3: Добавьте свои записи DNS
Я собираюсь использовать домен rocket-chat.paytagz.com (paytagz.com - это домен, которым я уже владею)
Просто создайте новую запись A, указывающую на ваш IP-адрес DO (я использую Route53).

Минуты 4–7: запуск док-контейнера Rocket Chat.
Rocket Chat поставляется с официальным образом докера, который можно найти здесь.
Вернитесь к своему терминалу, в котором находится ваш SSH, и создайте контейнер Rocket Chat следующим образом:
docker run --name rocketchat \ -p 3000:3000 \ --env ROOT_URL=https://rocket-chat.paytagz.com \ --env MONGO_URL=mongodb://<your mongo here> \ -d rocket.chat
Я немного схитрил на этом этапе, потому что у меня уже есть mongodb, настроенный на compose.io (который я настоятельно рекомендую для производственных развертываний Meteor, потому что это намного проще, чем размещение вашей собственной БД).
Итак, теперь вы можете посетить IP-адрес вашего DO-бокса на порту 3000 и увидеть, как работает ваше приложение.

Минуту 8: Создание файла Caddyfile
Теперь вам нужно создать то, что называется Caddyfile. По сути, это файл nginx.conf, который проще создавать и понимать.
В вашем терминале создайте Caddyfile
touch Caddyfile
Затем отредактируйте это
vim Caddyfile
Ваш должен выглядеть примерно так (замените мой IP и домен на свои).
rocket-chat.paytagz.com {
proxy / {
policy ip_hash
websocket
transparent
upstream http://162.243.130.9:3000
}
Минута 9: Запуск Кэдди в контейнере
Выполните следующую команду в том же каталоге, что и Caddyfile, который вы создали выше.
docker run -d \
-v $(pwd)/Caddyfile:/etc/Caddyfile \
-v $HOME/.caddy:/root/.caddy \
-v /etc/ssl/certs:/etc/ssl/certs \
-p 80:80 -p 443:443 \
khamoud/caddy
Теперь, если я захожу на https://rocket-chat.paytagz.com, я увижу, что мой ракетный чат полностью настроен с использованием веб-сокетов, SSL и закрепленных сеансов.

Если вы хотите узнать, как докеризовать свое собственное приложение Meteor, вы можете ознакомиться с моими руководствами по добавлению метеора ниже.
Если вы ищете еще более простой хостинг для докеров, вам следует рассмотреть https://www.rompli.com;)