Воскресенье, 03 января 2021 22:53

Деплоим Blog on Rails на Heroku

Оцените материал
(0 голосов)
Deploy Blog on Rails to Heroku
Deploy Blog on Rails to Heroku

 

Этот небольшой док написан с той целью, чтобы все без исключения его читатели, независимо от наличия либо отсутствия технического бэкграунда - сумели, при желании, развернуть Blog on Rails на хостинге, используя бесплатный тарифный план Heroku. Понадобятся самые элементарные навыки работы с персональным компьютером, установленные git и скрипты Heroku, подробнее об этом см. здесь.

 

 

Взглянуть Blog on Rails на Heroku.

Увидеть на гитхабе.

 

Также понадобятся "Access key ID" и "Secret access key" Амазона. Если, конечно, собираетесь использовать Amazon S3 с Active Storage; процедура получения ключей многажды описана в Сети, и короткой строкой даже в этом блоге. Впрочем, для совсем быстрого эксперимента можно попробовать отключить Amazon S3 в качестве хранилища, изменив ':amazon' на ':local':

 

# config/environments/production.rb
config.active_storage.service = :amazon

 

Итак, начинаем. Клонируем репо и переходим во вновь созданную директорию:

 

$ git clone https://github.com/cmirnow/CRUD-Blog.git
$ cd CRUD-Blog

 

Удаляем или комментируем эти строки; вы вернете их на место следующим пушем, сразу после деплоя. Собсно, можно  и не возвращать, если некритично: конфиг удаляет из базы данных всю статистику визитов старше недели:

 

Примечание: данная ремарка устарела. В код добавлено условие, позволяющее не останавливаться на этом моменте, впервые разворачивая Blog on Rails. В дальнейшем конфигурируйте очистку так, как посчитаете нужным.

 

# config/initializers/ahoy.rb
Ahoy::Visit.where("started_at < ?", 1.week.ago).find_in_batches do |visits|
  visit_ids = visits.map(&:id)
  Ahoy::Event.where(visit_id: visit_ids).delete_all
  Ahoy::Visit.where(id: visit_ids).delete_all
end

 

и также это:

 

# config/application.rb
# https://github.com/rails/rails/issues/35817
config.active_storage.replace_on_assign_to_many = false

 

Далее открываем db/seeds.rb, где пишем (вместо моих) свои email и password для входа в панель управления.

Теперь:

 

$ git add .
$ git commit -m "my first commit"
$ heroku create
$ git push heroku master
$ heroku run rake db:migrate
$ heroku run rake db:seed

 

Открываем в вебе панель управления Heroku, Personal => Your_App => Settings => Reveal Config Vars, где вводим:

 

RECAPTCHA_SITE_KEY: "*************************"
RECAPTCHA_SECRET_KEY: "**************************"
GMAIL_USER_NAME: '****@***********'
GMAIL_PASSWORD: '************'
DOMAIN_NAME: 'https://mstp.herokuapp.com' #For example
SEND_EMAIL_TO: '****@*********'
SUBJECT_EMAIL: 'Hurray! You got a new form!'
SUBJECT_COMMENT_EMAIL: 'You got a new comment!'
KEY_OPENWEATHERMAP: '*******************************'
GOOGLE_MAP_KEY: '*************************************'
AWS_ACCESS_KEY_ID: '********************'
AWS_SECRET_ACCESS_KEY: '*********************************'

 

Основное - два последних в списке ключа AWS, но отсутствие остальных также способно вызвать проблемы. Расшифровывать, думаю, нет необходимости? - это все общедоступные API, без проблем предоставляющие бесплатные ключи доступа.

Пожалуй, это все; уже можно логиниться your_domain/admin и начинать работать с блогом. Первым делом создайте одну или несколько категорий, т. к. любой ваш материал должен принадлежать одной из них (впрочем, если категория не нужна - вы можете ее не публиковать, все материалы после публикации будут отображаться вне категорий).

Подробнее о свойствах Blog on Rails в этом материале. В случае любых проблем с деплоем -

 

heroku run rails console

Последнее изменение Четверг, 16 декабря 2021 21:22

Оставить комментарий

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

Комментарии в блоге