Как создать и настроить свой веб-сервер на VDS (05 сен 2024)

Осенью самое время заняться установкой и тюнингом своего веб-сервера. Не правда ли?

Памятка. Как опубликовать rails-приложение на Heroku

Больше
7 года 5 мес. назад - 7 года 5 мес. назад #1 от serge
Уточняю сходу: не просто
как опубликовать rails-приложение на Heroku
, а -
как бесплатно опубликовать rails-приложение на Heroku

Вы ведь искали именно это? Вам сюда. ;)

Прежде всего понадобится установленный локально git, без него тут как без рук. Хотя в Introduction - Getting Started on Heroku with Ruby - вроде как и не требуется. Устанавливаем git, подробнее по теме в материале Ruby on Rails и Git . Еще очень хорошо бы иметь на своей локальной машине установленный (и настроенный) PostgreSQL, объясню это чуть позже.

Далее идем на Heroku , внимательно читаем условия и регим себе Free аккаунт. Главное сделано (это если предположить, что Ruby, а то и Ruby on Rails у вас уже давно установлены, коли пришли на Heroku!).

Переходим с "Introduction" на следующую ступеньку, "Set up". Внимание, крайне ответственный момент: здесь придется "Download the Heroku CLI for" вашей операционной системы и архитектуры. Для любого другого линукса, кроме Debian/Ubuntu, выбираем Standalone и выполняем ЦУ (увидите). Все в общем несложно: нужно скачать именно то что нужно, распаковать, создать символическую ссылку:

Code:
# Run this from your terminal. # Replace OS with one of “linux”, “darwin”, “windows”, “freebsd”, “openbsd” # Replace ARCH with one of “amd64”, “386” or “arm” wget https://cli-assets.heroku.com/branches/stable/heroku-OS-ARCH.tar.gz mkdir -p /usr/local/lib /usr/local/bin tar -xvzf heroku-OS-ARCH.tar.gz -C /usr/local/lib ln -s /usr/local/lib/heroku/bin/heroku /usr/local/bin/heroku # ensure that /usr/local/bin is in the PATH environment variable


И затем можно не торопясь спускаться по пунктам меню, проходя КМБ: страничка "Prepare the app" показывает как клонировать с гитхаба первое приложение, потом "Deploy the app", и т.д. и т.п. -

Code:
$ heroku create $ git push heroku master


Все работает без сучка и задоринки, пробуйте. Но хотелось бы обратить ваше внимание на два-три момента.

1. Heroku не понимает принятого по дефолту в Rails SQLite, здесь только PostgreSQL, кто не знает, придется осваивать. В помощь материал PostgreSQL для Ruby on Rails . Соответственно, при создании Rails-приложения локально используем следующий синтаксис, вместо

Code:
rails new appname


вводим

Code:
rails new appname -d postgresql


Если клонировали с гитхаба приложение, построенное на SQLite, придется отредактировать Gemfile и database.yml, заменив gem 'sqlite3' на gem 'pg' и adapter: sqlite3 на adapter: postgresql. Думаю, несложно, тем более примеры всегда под рукой, возьмете на гитхабе или сгенерите сами, это ведь несколько секунд.

2. Если создали Rails-приложение самостоятельно, а репозиторий git для него не поднимали, скрипты Heroku выдадут ошибку при попытке залить приложение на хостинг. В этом случае инициализируем git, добавляем и комитим, только после чего клонируем созданный реп на Heroku:

Code:
$ git init $ git add . $ git commit -m "first commit" $ git push heroku master

3. И не забываем про миграцию БД. В вашем локальном Rails это делается так:

Code:
$ rake db:migrate


а в Heroku так:

Code:
$ heroku run rake db:migrate

А я смогу! - А поглядим! - А я упрямый!
Последнее редактирование: 7 года 5 мес. назад пользователем p.rishard.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Dev banner 2
Больше
7 года 5 мес. назад #2 от Aleksej
Дополню:
если удалили приложение из Heroku, затем заново создвли:

Code:
$ heroku create

, то теперь "пушить" так просто не получится:

Code:
$ git push heroku master remote: ! No such app as ********************. fatal: repository 'https://git.heroku.com/**********************/' not found

Решение:

Выполните, подставив новый URL репозитория, полученный в результате heroku create:

Code:
$ git remote set-url heroku https://git.heroku.com/********************.git


И теперь уже можно:

Code:
$ git push heroku master

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Больше
7 года 5 мес. назад #3 от serge
Просмотреть историю релизов:
Code:
$ heroku releases $ heroku releases info v7 # например

и откатиться:
Code:
$ heroku rollback # к последней версии $ heroku rollback v40 # к любому другому релизу

А я смогу! - А поглядим! - А я упрямый!

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Больше
4 года 7 мес. назад #4 от serge
Code:
remote: Verifying deploy... done. fatal: protocol error: bad line length character: fata error: error in sideband demultiplexer

Разрешение этой ошибки, вернувшейся после благополучного деплоя:
Code:
$ Upgrade GIT on your local machine $ heroku plugins:install heroku-repo $ heroku repo:reset -a <app-name> $ git commit --allow-empty -m "Reset repo" $ git push heroku master

Отсюда . Отлично работает.

А я смогу! - А поглядим! - А я упрямый!

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Больше
4 года 2 мес. назад #5 от Вебмастер
Как откатить конкретную миграцию на бесплатном аккаунте? не последнюю, в середине....

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Больше
4 года 2 мес. назад - 4 года 2 мес. назад #6 от evgenij

Вебмастер пишет: Как откатить конкретную миграцию на бесплатном аккаунте? не последнюю, в середине....


Вот так можно обнулить... черт, то есть откатить взад и в ноль.... всю db:
Code:
heroku pg:reset DATABASE_URL

После чего придется, разумеется, заново:
Code:
heroku run rake db:migrate

А можно ли откатить на бесплатном тарифном плане Heroku ту или иную миграцию (одну), не знаю. Присоединяюсь к вопросу.

Have a lot of fun!
Последнее редактирование: 4 года 2 мес. назад пользователем evgenij.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Больше
3 года 11 мес. назад #7 от Вебмастер
а посмотреть размер базы данных???

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Больше
3 года 11 мес. назад #8 от serge

Вебмастер пишет: а посмотреть размер базы данных???

Code:
heroku info

А я смогу! - А поглядим! - А я упрямый!

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Больше
3 года 11 мес. назад #9 от Aleksej

Вебмастер пишет: а посмотреть размер базы данных???
 

Code:
$ heroku pg:info                                  === DATABASE_URL Plan:                  Hobby-dev Status:                Available Connections:           1/20 PG Version:            12.5 Created:               2020-11-25 04:16 UTC Data Size:             13.3 MB Tables:                16 Rows:                  2852/10000 (In compliance) Fork/Follow:           Unsupported Rollback:              Unsupported Continuous Protection: Off Add-on:                postgresql-concentric-16363

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Работает на Kunena форум