Как запустить сайт на Ruby on Rails

Как запустить сайт на Ruby on Rails

В хостинге некоторые решения могут показаться вам нестандартными.
Поэтому перед началом работы мы бы рекомендовали ознакомиться с вводной статьей.

1. Работа с ruby
2. Установка зависимостей
3. Работа с готовым Ruby on Rails приложением на примере redmine

Если вы планируете перенести готовый проект на Ruby на хостинг, то основная особенность облачного хостинга заключается в том, что вашему сайту потребуется прикрепиться на IP и порт, указанные в переменных окружения APP_IP и APP_PORT.

Для этого достаточно создать файл имясайта/app/config.rb со следующим содержимым (содержимое изменять не требуется):

app_dir = ENV["APP_PATH"]
app_port = ENV["APP_PORT"]
app_ip = ENV["APP_IP"]
working_directory app_dir

# Set unicorn options
worker_processes 4
preload_app true
timeout 30

# Set up socket location
listen "#{app_ip}:#{app_port}"

Такой config.rb будет автоматически использоваться вебсервером unicorn.

1. Запуск Ruby on rails

При создании сайта необходимо выбрать, что сайт работает на Ruby on Rails:

Настройки

Загрузить файлы сайта можно подключившись по SFTP.

Файлы вашего приложения можно расположить в каталоге sitename/app, а статические файлы (.html, .css, .jpg, .png и другие) - в каталоге sitename/www.


2. Установка зависимостей

Управлять проектом можно подключившись по SSH.

После входа на сервер по SSH можно, например, установить необходимые для работы вашего сайта пакеты.

Для каждого сайта уже создано индивидуальное виртуальное окружение. Свое собственное виртуальное окружение создавать не требуется.

При установке пакетов через bundle install сначала перейдите в каталог с сайтом и виртуальное окружение активируется автоматически:

@h2:~$
c3087@h2:~$ cd mydomain-ror.com/app
(ruby 2.5)c3087@h2:~/mydomain-ror.com/app$

Если в каталоге mydomain-ror.com/app существует файл Gemfile, то можно автоматически установить нужные расширения:

(ruby 2.5)c3087@h2:~/mydomain-ror.com/app$ bundle install

3. Работа с готовым приложением на примере redmine

В качестве примера установки Rails приложения развернем redmine из git репозитория на github.

Показать инструкции по установке redmine

При создании сайта необходимо выбрать, что сайт работает на Ruby on rails:

Настройки

Подключитесь по SSH

Удалите содержимое тестового сайта:

rm -rf имя_сайта/app

Далее перейдите в каталог с сайтом:

cd имя_сайта

Клонируйте репозиторий redmine в каталог app

git clone https://github.com/redmine/redmine.git app

Настройте подключение к базе данных MySQL.

Перейдите в каталог app/config:

cd app/config

Переименуйте файл database.yml.example в database.yml

mv database.yml.example database.yml

Теперь нам потребуются реквизиты для подключения к MySQL. Узнать мы их можем из переменной окружения DB_CONNECTION_STRING

(ruby 2.5)c3087@h2:~/mydomain-ror.com/app$ echo $DB_CONNECTION_STRING
mysql2://c3087_mydomain_ru:phaeC0otee2oomi@localhost/c3087_mydomain_ru

Здесь все нужные нам данные в формате mysql2://имяпользователя:пароль@сервер/имябазы

Отредактируйте database.yml:

mcedit database.yml

И внесите в него полученные данные

production:
  adapter: mysql2
  database: c3087_mydomain_ru
  host: localhost
  username: c3087_mydomain_ru
  password: "phaeC0otee2oomi"
  encoding: utf8

Для сохранения нажмите на клавиатуре F2.

Перейдите в каталог выше:

cd ..

Создайте файл config.rb

mcedit config.rb

И заполните его следующим содержимым (содержимое изменять не требуется):

app_dir = ENV["APP_PATH"]
app_port = ENV["APP_PORT"]
app_ip = ENV["APP_IP"]
working_directory app_dir

# Set unicorn options
worker_processes 4
preload_app true
timeout 30

# Set up socket location
listen "#{app_ip}:#{app_port}"

Для сохранения нажмите на клавиатуре F2.

Установите зависимости:

bundle install

Далее выполните последовательно выполните 3 команды, необходимые для завершения установки redmine

bundle exec rake generate_secret_token
RAILS_ENV=production bundle exec rake db:migrate
RAILS_ENV=production bundle exec rake redmine:load_default_data

Перезапустите Ruby

image_2023-10-24_13-49-30.png

Готово!

Хостинг
Хостинг
Хостинг
Создавайте неограниченное количество сайтов в изолированных контейнерах
С 2003 года
Надежность.
Нам доверяют десятки тысяч компаний и разработчиков
20 лет
Предоставляем услуги профессионального хостинга
35 000
Клиентов доверяют нам размещение своих сайтов
99.99%
Подтвержденный uptime
наших серверов хостинга
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
ВК49865