Как развернуть сайт локально с бэком на Ruby?

Получил сайт состоящий из фронта на React и бэка на Ruby. Фронт развернуть вроде как получилось, открывается на localhost:3000, но выдает ошибку 500. Получается нужно как-то настроить локальную среду. Сталкиваюсь с таким впервые, пытаюсь разобраться.

Понимаю, что нужно для начала установить Ruby через терминал, но что дальше? Необходимо также накатить базу данных (так понимаю в папке db)? Как будут связаны фронт и бэк? (на самом сайте админка на поддомене)

Подскажите, какие команды прописать в терминал, куда копать? Прилагаю скрины содержимого папки с фронтом и папки с бэком.

Фронт:

Фронт

Бэк:

Бэк

Update:

Добавляю скрины терминала после команды "npm run start" и ошибок в консоли браузера. Замечу, что страница с ошибкой 500 открывается стилизованной, значит стили фронта и шаблон страницы он видит.

Терминал:

Терминал 1 Терминал 2

Браузер:

Ошибки в браузере


Ответы (1 шт):

Автор решения: Sergey Fedorov

Файле readme.md ничего полезного не содержит?


Сначала давайте поймем, что за зверь под капотом. Скорее всего в бэкенде использовался какой-то какой-то фреймворк, нужно понять какой именно. Под Ruby их не так много, поэтому задача не особенно сложная.

По скриншотам непонятно, что именно (скорее всего это Ruby On Rails), поэтому ответ может дать содержимое файла Gemfile — конфиг менеджера пакетов Bundler. В нем содержится перечень внешних устанавливаемых модулей (аналог package.json), которые в экосистеме Ruby называются Gem (гемы).

Внутри Gemfile вы обнаружите примерно такое содержание:

source 'http://rubygems.org'

git_source(:github) do |repo_name|
  repo_name = "#{repo_name}/#{repo_name}" unless repo_name.include?("/")
  "https://github.com/#{repo_name}.git"
end

# Bundle edge Rails instead: gem 'rails', github: 'rails/rails'
gem 'rails', '~> 6.0.0'
# Use postgresql as the database for Active Record
gem 'pg', '~> 0.18'
# Use Puma as the app server
gem 'puma', '~> 3.7'

Модули указываются c префиксом gem, то есть строка gem 'rails', '~> 6.0.0' означает, что в приложении используется гем rails (фреймворк Ruby On Rails) версии 6.0.*, где * — любая цифра минорной версии.

В файле Gemfile вам нужно найти совпадение названия фреймворка (список вариантов) и одного из гемов. Учитывайте, что название гема и название фреймворка может различаться, но обычно название гема присутствует в названии фреймворка.

Как только нашли совпадение идете на сайт фреймворка (или репозиторий в Github) и ищете раздел, описывающий запуск. Будем надеяться, что разработчик придерживался общепринятых практик и вам не придется разбираться в изменениях в бутстрапе.

С фреймворком разобрались, теперь нужно выяснить, какая база данных используется. Возвращаетесь к Gemfile и ищете драйвер к базе данных аналогично тому, как вы искали фреймворк. Скорее всего это будет PostgreSQL, но лучше убедиться в этом.

Окей, давайте засетапим окружение, в котором бэкенд должен жить:

Пояснение: я много лет не работал под Windows и не знаю, как сейчас дружит Ruby и Windows (раньше было плохо), поэтому можете попробовать https://rubyinstaller.org

Вам нужно установить:

  1. Менеджер версий Ruby RVM и через него установить Ruby последней стабильной версии.
  2. Менеджер пакетов Bundler
  3. Базу данных

Cетапим приложение: в консоли заходите в директорию с Gemfile и запускаете команду bundle install, это установит все необходимые модули.

И вот тут начинается самое сложное, в зависимости от фреймворка по инструкции на его сайте нужно:

  1. Создать базу данных
  2. Наполнить ее тестовыми данными
  3. Запустить тесты (если они есть)
  4. И запустить приложение
  5. В соседней вкладке сбилдить и запустить фронт
  6. Все должно работать

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

→ Ссылка