Обновление: Слегка модифицированная версия этой статьи теперь доступна на официальных документах! Проверьте их здесь
Этот учебник покажет, как настроить приложение, написанное в 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»