Ruby на витрине хостера может означать доступ к интерпретатору, готовую среду приложения или возможность самостоятельной установки. Эти варианты дают разные права. Сначала опишите, что должно работать постоянно: HTTP-приложение, очередь, планировщик или только скрипт подготовки файлов. Rails не название любого Ruby-проекта, а наличие SSH не подтверждает готовый Rails-хостинг.
Какая версия Ruby нужна вашему проекту
На 7 октября 2026 года официальная таблица Ruby отмечает 4.0 и 3.4 как normal maintenance, 3.3 как security maintenance, 3.2 как EOL. Normal maintenance включает обычные исправления и исправления безопасности; security maintenance - только вторые. Это состояние проекта Ruby, не обещание обновления установленного хостером образа.
Не выбирайте больший номер независимо от приложения. Сверьте требования проекта, Rails и используемых gems, затем точный выпуск интерпретатора. Если старое приложение привязано к неподдерживаемой ветке, нужны план совместимости и ответственное сопровождение. Простая смена переключателя версии может нарушить загрузку зависимости, хотя главная страница до изменения открывалась.
В запросе поставщику укажите нужную ветку и архитектуру, способ установки зависимостей и пользователя процесса. Не присылайте пароли базы. Ответ «Ruby есть» не закрывает эти вопросы, а обещанная поддержка языка не делает разработку ваших расширений частью услуги.
Gemfile.lock и воспроизводимый релиз
Руководство RubyGems/Bundler связывает развертывание с Gemfile и Gemfile.lock. Lock-файл фиксирует разрешенный набор зависимостей; локальная папка .bundle относится к конкретной машине. В описанном deployment-режиме отсутствующий или несогласованный lock-файл не должен незаметно превращаться в новый набор gems.
Поэтому сначала готовят отдельный артефакт и проверяют его в совместимой среде. Не обновляйте зависимости на единственной рабочей копии как способ исправить ошибку запуска. Сохраните версию кода, набор зависимостей и параметры среды вместе: иначе успешный тест одной сборки ничего не говорит о следующей.
Если зависимость требует системной библиотеки или сборки расширения, уточните разрешение и доступность нужного инструмента отдельно. Не переносите папку установленного окружения с другого компьютера без проверки. Ошибку установки полезнее описать названием пакета, версией и безопасным фрагментом журнала, чем устранять выдачей общих административных прав.
Процесс Puma, потоки и база
Для Ruby/Rack Puma описывает пул потоков и cluster mode с отдельными worker-процессами. В cluster mode каждый worker сохраняет собственный пул потоков. Это разные параметры, не одно число «параллельных посетителей». Увеличение обоих без наблюдения может исчерпать ресурсы.
Запишите выбранную модель запуска и сопоставьте ее с памятью, соединениями базы и ограничениями услуги. Не назначайте один размер RAM всем Rails-магазинам. Импорт, поиск, выдача статической страницы и обработка изображения создают разные операции; сравнивать их по одному числу посещений нельзя.
| Часть приложения | Что проверить до переноса |
|---|---|
| HTTP-процесс | Запуск, внутренний адрес, перезапуск и журнал ошибок |
| База | Версию, права, пул соединений и восстановление |
| Фоновый worker | Отдельный запуск, очередь и остановку задания |
| Файлы пользователей | Постоянное место, квоту и сохранение при релизе |
| Прокси | HTTPS, заголовки и нужные длинные соединения |
Список относится к вашему проекту, не к неподтвержденным тарифам. Если очереди нет, не добавляйте отдельный сервис только ради типовой схемы. Если она есть, успешный HTTP-запрос не подтверждает выполнение фоновой работы.
Production-настройки и секреты Rails
В руководстве конфигурации Rails параметр require_master_key может остановить запуск, если ключ не предоставлен через RAILS_MASTER_KEY или соответствующий файл. При ошибке credentials не публикуйте ключ в журнале и не отключайте проверку вслепую. Уточните безопасный способ передачи секрета процессу выбранной платформы.
Применяйте документацию версии вашего Rails. Один пример из свежего руководства не обещает наличие того же параметра или значения по умолчанию в старом приложении. Доступ к базе, почте и хранилищу должен быть отделен от общедоступного кода. Для копии проекта блокируют реальные платежи, рассылку и внешние действия до приемки.
Как проверить среду без рабочего магазина
Подготовьте изолированный набор без персональных данных. Проверьте запуск приложения, обычную страницу, чтение тестовой записи из базы, разрешенное фоновое действие и загрузку небольшого контрольного файла. После штатного нового релиза файл должен оставаться доступным, если это требование проекта.
Потом проверьте возврат данных в отдельную среду. Копия должна включать нужные загрузки и согласованную базу; архив кода не заменяет их. Откат приложения не откатывает автоматически миграцию схемы. Зафиксируйте, какие новые записи могут появиться после переключения и как их сохранить при возврате.
В этой работе Ruby, Bundler и Puma не устанавливались, приложения и нагрузочные тесты не запускались. Здесь нет измерений RAM, скорости или доступности тарифов. Матрица совместимых Ruby/Rails-продуктов у нас пока не подтверждена, поэтому вымышленная ценовая подборка не показана.
Что включить в смету и решение
Для самостоятельного VPS кроме ресурсов нужны обновления ОС, зависимостей и ответственный за аварии. У платформы приложения уточните границы managed-работ, фоновые процессы, хранение и выход с площадки. Docker может изменить упаковку, но не снимает эти обязанности.
Сначала оставьте два варианта, отвечающих паспорту среды. Затем сопоставьте срок оплаты и дополнительные работы в разборе стоимости. Финальный критерий - ваш воспроизводимый запуск и восстановление, а не число gems, логотип Rails или чужой синтетический балл.

Вывод относится к сценарию этой страницы и не заменяет проверку конкретного тарифа.