Маркетплейс: Ruby on Rails
Ruby on Rails – многоуровневый фреймворк для построения веб-приложений, написанный на Ruby и использующий шаблон проектирования MVC (Model-View-Controller).
Rails подходит как для разработки обычных сайтов, которые должны быть действительно быстрыми, отказоустойчивыми и работать под большой нагрузкой, так и для веб-приложений со сложной бизнес-логикой и динамическими веб-интерфейсами.
Приложение включает следующее ПО:
Название | Версия |
Nginx | 1.18.0 |
PostgreSQL | 14.7 |
Ruby | 3.2.2 |
Rails | 7.0.4.3 |
Puma | 6.2.2 |
Certbot | 2.5.0 |
Fail2Ban | 0.11.2 |
Rbenv | 1.2.0 |
Что делает это приложение:
-
Включает UFW брандмауэр и разрешает подключения на порты:
- SSH (22)
- HTTP (80)
- HTTPS (443)
- Настраивает Postfix для работы только на отправку сообщений, устанавливая параметр inet_interfaces = loopback-only
-
Подготавливает проект Rails:
- Добавляет дополнительного системного пользователя.
- Устанавливает rbenv и дополнительное ПО (Ruby/Rails/Puma/bundler).
- Создает новый проект.
- Создает дополнительного пользователя и базу данных в PostgreSQL и добавляет реквизиты в database.yml проекта.
- Настраивает сервер puma в проекте.
- Настраивает сервис rails для работы с проектом.
- Настраивает nginx на обработку статического контента и использование puma в качестве бэкенда для обработки динамического контента.
Дополнительная информация:
Все ПО устанавливается в среде пользователя rails для работы Вам нужно переключиться на него:
su - rails
rbenv установлен в среде пользователя rails, для его обновления нужно войти под пользователем rails, перейти в директорию ~/.rbenv и выполнить команду:
git pull
Реквизиты для системного пользователя и пользователя базы данных находятся в /root/.secrets
Вы можете использовать уже подготовленный проект для работы со своим кодом, либо создать новый. При создании нового проекта Вам будет необходимо изменить пути в конфигурации сервиса rails.service и виртуального хоста nginx.
Документация на английском языке доступна по адресу https://guides.rubyonrails.org/
Желаем Вам приятной работы!