Заметка об освоенных технологиях:
-
Cайт craio.ru расположен на VPS DigitalOcean. Управление DNS осуществляется также на стороне DigitalOcean.
-
Работает под управлением серверов nginx и Phusion Passenger.
-
Для хранения данных используется СУБД PostgreSQL.
-
Фотографии событий и аватарки пользователей обрабатываются с помощью гемов
carrierwave
иrmagick
и загружаются на Amazon AWS. -
Аутентификация пользователей реализована с помощью гема
Devise
. Пользователи также могут аутентифицироваться с помощью Facebook или vkontakte (OmniAuth
). -
Авторизация реализована с помощью гема
Pundit
. -
Интерфейс локализован при помощи i18n.
-
К домену craio.ru подключена почта с помощью сервиса pdd.yandex.ru. Отправка почты осуществляется с помощью
Postfix
. Письма отправляются не из контроллеров, а в фоновых задачах:Redis
,ActiveJob
+Resque
. -
Деплой осуществляется с помощью гема
Capistrano
командойcap production deploy
.
Для работы приложения необходим Ruby версии 2.6.5 или выше
В проекте используется bundler
, поэтому в первую очередь нужно установить этот гем (если его у вас нет):
gem install bundler
Затем установите все необходимые зависимости:
bundle install
Если во время установки появились ошибки с гемом rmagick
выполните команду:
sudo apt-get install libmagickwand-dev imagemagick
Переименуйте файлы /config/database.yml.example
и /config/secrets.yml.example
в /config/database.yml
и /config/secrets.yml
соответственно. При необходимости, внесите туда свои настройки.
Далее необходимо накатить миграции:
bundle exec rake db:migrate
При запуске приложения в среде production
, изображения хранятся в сервисе Amazon AWS. Настройки подключения к этому сервису хранятся в переменных окружения. Указать их можно в файле .env
, который нужно предварительно создать в корневой папке проекта. Указать нужно следующие ENV:
S3_ACCESS_KEY: # ваш ключ
S3_BUCKET_NAME: # название вашего bucket
S3_SECRET_KEY: # ваш секретный ключ
В приложении используются Яндекс.Карты. Для их корректной работы необходимо в Кабинете для разработчиков Яндекса получить API Key и его также внести в файл .env:
YA_API: # ваш API Key