Sign in

Зарегистрируйтесь, чтобы стать полноправным участником сообщества Masterpro.ws.

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

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

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

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

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