Рубрики
Uncategorized

Как развернуть кристалл счастливое приложение с докку на Ubuntu 18.04

Обновление: Слегка модифицированная версия этой статьи теперь доступна на официальных документах! Проверь их… Теги с кристаллом, докку, DevOps, учебником.

Обновление: Слегка модифицированная версия этой статьи теперь доступна на официальных документах! Проверьте их здесь

Этот учебник покажет, как настроить приложение, написанное в Crystal Web Framework Lucky С докку на Ubuntu 18.04.

Вы можете запустить эту настройку на большинстве небольших коробок. Например. Цифровая капель в размере 5 долларов США, или в моем случае, $ 2.50 Hetzner Cloud Server Отказ

К концу учебного пособия вы будете знать, как развернуть свои счастливые приложения и иметь возможность легко управлять их всеми на одном сервере.

Что повезло?

Lucky — это веб-каркас, написанные в Кристалл Отказ Кристалл — это язык программирования с синтаксисом, вдохновленный Ruby, но со скоростью, аналогичными для C. C.

Что такое докку?

Dokku — это небольшая служба PAAS, работающая на Docker, которую вы можете запустить на своих собственных серверах. Подумайте об этом как о самоуверенной команде Heroku Отказ

Предварительные условия

  • Crystal 0.34.0 установлен локально
  • Свежее счастливое приложение установлено и работает на месте.
  • Основные знания о Git.
  • Сервер с Докку установлена Используя Ubuntu 18.04.
  • Домен или поддомен, чтобы указать на сервер.

Вам понадобится счастливое приложение для развертывания. Если у вас нет ни одного, без проблем! Свежее счастливое приложение поставляется с несколькими вкусами из коробки, домашней страницы и системы аутентификации, связанной с базой данных. Это более чем достаточно, чтобы работать с. Посмотреть Начало работы и Начиная счастливый проект Отказ Убедитесь, что у вас есть проект, съезжающий в Git и готов к первому развертыванию.

Шаг 1 — Настройка конфигурации докку

SSH на ваш сервер, чтобы получить его готов к развертыванию.

ssh root@ip

В следующих командах замените app.example.com с вашим доменом или поддомен. Заменить Exkpledb с вашим предпочтительным именем базы данных.

Это создаст начальный контейнер приложений в Докку, создает базу данных и связывает их как вместе. Последние три линии устанавливают переменные среды для счастливого приложения. Первый скажет повезло, чтобы запустить приложение в Производство Режим, второй скажет повезло, что такое URL-адрес приложения, и третий будет сообщить приложению работать на порту 5000, которые Dokku будет подключаться к Nginx, чтобы открыть мир.

dokku apps:create app.example.com
dokku postgres:create exampledb
dokku postgres:link exampledb app.example.com
dokku config:set app.example.com LUCKY_ENV=production
dokku config:set app.example.com APP_DOMAIN=app.example.com
dokku config:set app.example.com PORT=5000

Есть еще несколько деталей конфигурации, которые необходимо установить. Во-первых, вам нужно будет сообщить счастливые детали базы данных, которые устанавливаются в Докку. Запустите команду ниже, чтобы получить URL-адрес базы данных.

dokku postgres:info exampledb

Установите База данных_URL Переменная среды от вышеуказанного выхода.

dokku config:set app.example.com DATABASE_URL=postgres://...

Далее повезло нуждается в секретной ключевой среде. В вашем каталоге приложений на вашем локальном компьютере запустите следующую команду, которая будет генерировать безопасный ключ.

lucky gen.secret_key

Затем, обратно на ваш удаленный сервер докку добавьте его в Secret_key_base Переменная среды.

dokku config:set app.example.com SECRET_KEY_BASE=...

Если вы планируете отправлять электронные письма через приложение, вам также нужно установить Send_grid_key ключ, иначе, изменить config/email.cr использовать Углерод:: Devadapter.new в производстве (и обязательно совершить!)

dokku config:set app.example.com SEND_GRID_KEY=...

Ваш сервер почти готов к развертыванию. Если вы используете сервер с 2 ГБ ОЗУ или меньше, вам нужно будет настроить своп. Без этого процесс развертывания, скорее всего, будет работать в вопросах памяти. Оформить заказ в этом руководстве для настройки свопа Отказ Обменение 1G должно быть более чем достаточно.

Шаг 2 — Готовное приложение для развертывания

Вернуться в ваше местное приложение добавить новый файл под названием .buildpacks со следующим содержанием

https://github.com/heroku/heroku-buildpack-nodejs
https://github.com/luckyframework/heroku-buildpack-crystal

Шаг — 3 Развертывание

Сделать новый коммит. Наконец, вы готовы развернуть. Запустите следующие команды локально. Первый добавит ваш сервер как удаленный источник для вашего Git Repo. Второй будет нажать код на сервер.

git remote add dokku dokku@ip:app.example.com
git push dokku master 

Шаг 4 — Настройка SSL

Докку позволяет легко настроить A, позволяет шифровать сертификат SSL. Запустите следующие команды, чтобы сделать это

dokku config:set --no-restart app.example.com DOKKU_LETSENCRYPT_EMAIL=your.email@example.com
dokku letsencrypt app.example.com

Это все, что есть к этому! Каждый раз, когда вы нажимаете на ваш сервер Dokku, ваше приложение будет обновлять, и миграции будут автоматически работать автоматически.

Оригинал: «https://dev.to/mitchartemis/how-to-deploy-a-crystal-lucky-application-with-dokku-on-ubuntu-18-04-2dmj»