Heroku.com

Інсталяція

Аутентифікація 

Побачити усі app

Запустити rails консоль в "песочниці"

Перегляд логів

Експорт dump'а БД Postgres 

Restore to local database

vim on heroku

Restart rails app on heroku

List all environment variables

 

Ansible

Ansible — програмне забезпечення, що надає засоби для управління конфігурацією централізованої установки застосунків і паралельного виконання типових завдань на групі систем. Сирцевий код Ansible написаний мовою Python і розповсюджується під ліцензією GPLv3.

Ansible виконує сценарій певної роботи на віддаленому сервері, працює через SSH. На віддалений системі потрібно поставити Python, на момент написання цих рядків з версією 3.x не працював, прийшлось інсталювати 2.7

Взагалі потрібно інсталювати наступне на віддаленому сервері

Модулі

Джерела

[1], [2]

міграція з ActionCable на Anycable у Rails

Інсталюємо GO

Інсталюємо Anycable-go

За звичай go інсталюється або в ~./go або в /usr/local/go. 

інсталюємо Redis сервер

Додаємо(вносимо зміни) в наступні файли

Gemfile

config/anycable.yml

config/application.rb

config/environments/development.rb та config/environments/production.rb

Запускаємо в папці з проектом

та

Для автоматизації запуску anycable та anycable-go використаємо systemd

Створюємо два файли

/etc/systemd/system/anycable.service

/etc/systemd/system/anycable-go.service

Також потрібно модифікува bin/anycable вказавши повний шлях замість відносного

Дозволяємо запуск сервісів

Старт

 

Фільтр по таксонах у Spree

app/helpers/spree/frontend_helper.rb

app/views/spree/shared/_search.html.erb

lib/spree/core/search/base.rb

vendor/assets/javascripts/spree/frontend/all.js

 

Deliver_later

На одному проекті інтернет-магазину виникали помилка після завершення оформлення замовлення. В момент надсилання email повідомлення адміністратору магазину про нове замовлення, відбулась проблема з'єднання із SMTP-сервером, в наслідок чого користувач бачив у браузері помилку

Теоретично такого не мало б відбутися, оскільки за змовчанням у ActiveJob використовується ansync адаптер і виклик методу deliver_later мав би виконатися у фоновому режимі

Але ActiveJob виконувався синхроно, було б добре розібратися чому саме так.

Для вирішення даної проблеми, використаємо gem sidekiq який дозволяє rails породжувати нові процеси, які будуть працювати у фоновому режимі.  В основі гема задіяна модель акторів. Його інсталяція досить проста – додати гем в Gemfile:

Вказуємо сервер черги у config/application.rb:

Інсталюємо Redis сервер

Оскільки отримання email'а є важливим, задаю 100 спроб у разі невдачі

В development середовищі запускається досить просто:

Перевірка показала асинхронну роботу

Для деплоя добавляємо у Gemfile gem:

Добавляємо в Capfile

Як бачимо у нас буде інтегація з monit, який буде запускати sidekiq у разі його падіння, тому на продакшені інсталюємо його

В /etc/monit/monitrc дозволяємо http для localhost'у

Та перезапускаємо 

Action Mailer використовує чергу mailers, задаємо її для sidekiq у config/deploy.rb

Далі деплоємо проект

Deploy Ruby on Rails – Nginx/Passenger/Postgres/Capistrano (ОНОВЛЕНО)

Приклад деплоя app на Ruby On Rails

В даній замітці розглядається приклад деплою проетку під назвою tools на  VPS-сервер Ubuntu 17.04 в каталог /home/deployer/apps/project/, код проекту знаходиться на git-сервері bitbucket.org у приватному репозиторію. Використовуємо Ruby 2.4.0 та Ruby On Rails 5

Continue reading

Owl Сarousel кастомізація стрілок

Приклад