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