Heroku
bond//РАБОТА С ХЕРОКУ
//нужно установить Heroku CLI (command line interface)
//Набор инструкций ЗАМЕНИТЬ ЗНАЧЕНИЯ ДЛЯ ОПЕРАЦИОННОЙ СИСТЕМЫ, РАЗРЯДНОСТИ и НОМЕР АКТУАЛЬНОЙ ВЕРСИИ (посмотреть после команды tar на втором шаге)
// replace REPLACE_ME_OS/REPLACE_ME_ARCH with values as noted below
// Where REPLACE_ME_OS is one of “linux”, “darwin”, “windows” and REPLACE_ME_ARCH is one of “x64”, “x86”, or “arm”
// You also must replace “6.x.x” with the actual version. !!!!!!!!!!!!!!!!!!
// Скачиваем архив
wget https://cli-assets.heroku.com/heroku-cli/channels/stable/heroku-cli-linux-x64.tar.gz -O heroku.tar.gz
//создаем директорию под распаковку дистрибутива
mkdir -p /usr/local/lib /usr/local/bin
//распаковываем дистрибутив в созданную папку (НА САЙТЕ КРИВАЯ ИНСТРУКЦИЯ)
sudo tar -xvzf heroku.tar.gz
//Перемещаем разахивированную папку (ВНИМАНИЕ НАЗВАНИЕ ПАПКИ ОТЛИЧАЕТСЯ ОТ heroku-cli-v6.14.36-darwin-64 ЗАМЕНИТЬ НА РЕАЛЬНОЕ)
//в результате папка после перемещения просто называется Heroku
//заменить название архива на то, что получилось после разархивации (heroku-cli-v6.14.36-15f8a25-linux-x64)
sudo mv heroku-cli-v6.14.36-xxxxxx-linux-64 /usr/local/lib/heroku
//это вообще непонятно что делает (создает какую-то символьную ссылку) ВЫДАЕТ ОШИБКУ (ФАЙЛ СУЩЕСТВУЕТ)
sudo ln -s /usr/local/lib/heroku/bin/heroku /usr/local/bin/heroku
//можно запустить хероку ????? не нужно
sudo /usr/local/bin/heroku
//проверяем версию
heroku --version
//Если возникли ошибки, проблемы с доступом, то выполняем обновление прав для текущего пользователя
sudo chown -R bond ~/.cache/heroku
//В результате по запросу версии получаем
heroku-cli/6.14.36-15f8a25 (linux-x64) node-v8.7.0
//ПЕРЕД ПУБЛИКАЦИЕЙ НА ХЕРОКУ !!!!!
//НУЖНО ИЗМЕНИТЬ гем-файл приложения, убрав sqlite3 в группу девелопмент, а в продакшн добавить
gem 'pg'
//Также нужно вверху этого файла указать версию руби под которой работает приложение
ruby '2.4.1'
//Также нужно забандлить снова проект но без продакшна
bundle install --without production
//снова проверить гит, чтобы все файлы были в репозитории
//после этого можно заливать на хероку в ветку master
git push heroku master
//если все без ошибок прошло, то можно открыть сайт в браузере
heroku open
//переименовать приложение
heroku apps:rename newname
//либо переименовать без проверки
heroku apps:rename newname --app oldname
//ЕСЛИ ВОЗНИКЛИ ПРОБЛЕМЫ (ошибка 500), то можно попробовать пересобрать базу
heroku run rake db:migrate
//ЗАЛИВАЕМ НА ХЕРОКУ
//переходим в папку приложения, логинимся в хероку
heroku login
//создаем новое приложение на удаленном сервере хероку и привязываем к текущему локальному гит-репозиторию текущего приложения
heroku create
//проверяем репозиторий
get status
//если в папке приложения оказался архив heroku.tar.gz его нужно удалить, незачем кидать его на хостинг