Содержание

Redmine

Настройка почты

Отправка

\var\www\html\config\configuration.yml

default:
  # Outgoing emails configuration
  # See the examples below and the Rails guide for more configuration options:
  # http://guides.rubyonrails.org/action_mailer_basics.html#action-mailer-configuration
  email_delivery:

  # ==== Simple SMTP server at localhost
  #
  #  email_delivery:
      delivery_method: :smtp
      smtp_settings:
        address: "mail.domain.ru"
        port: 25
        openssl_verify_mode: 'none'

Потом надо перезапустить Апач и настраивать в интерфейсе.

Приём

https://www.redmine.org/projects/redmine/wiki/RedmineReceivingEmails#Fetching-emails-from-an-IMAP-server

Создан ящик redmine@domain.ru, на сервере в кронтабе вставлена строка

* * * * * www-data rake -f /var/www/html/Rakefile --silent redmine:email:receive_imap RAILS_ENV="production" project=test project_from_subaddress=redmine@domain.ru allow_override=all unknown_user=create no_permission_check=1 no_account_notice=1 default_group=Users host=mail.domain.ru ssl=true port=993 username=redmine@domain.ru password=password

По умолчанию письма принимаются в проект test, можно переопределять все поля, создавать юзера, если его нет в системе, добавлять в группу Users, не оповещать его об этом, не проверять разрешения.

project_from_subaddress - парсинг субадресации. Т. е., пишешь на redmine+projectname@domain.ru и создаётся задача в проекте projectname, а не в проекте по умолчанию test. Чтобы так работало, нужно создавать группу рассылки redmine+projectname, в которую добавлять redmine@domain.ru. Если просто добавить доп. адрес redmine+projectname@domain.ru к ящику, то это работать не будет.

Надо обязательно указывать проект по умолчанию, чтобы почта куда-то попадала, иначе будет ошибка
MailHandler: missing information from Anonymous: Unable to determine target project,
даже если в теле письма идентификатор проекта указан.

При проверке почты в ящике шла ругань на сертификат:
OpenSSL::SSL::SSLError: SSL_connect returned=1 errno=0 state=error: certificate verify failed (unable to get local issuer certificate)

nano /var/www/html/config/initializers/bypass_ssl_verification.rb
require 'openssl'
OpenSSL::SSL::VERIFY_PEER = OpenSSL::SSL::VERIFY_NONE

Логи

Разросся production.log

# сжать лог
gzip /var/www/html/log/production.log
 
# keep the latest 15 files rotating 20MB each
sed -i '/end/d' /var/www/html/config/environments/production.rb
echo "config.logger = ActiveSupport::Logger.new(config.paths['log'].first, shift_age = 15, shift_size = 20 * 1024 * 1024)" >> /var/www/html/config/environments/production.rb
echo "end" >> /var/www/html/config/environments/production.rb
 
# уровень лога
echo "config.log_level = :warn" >> /var/www/html/config/additional_environment.rb

https://www.redmine.org/boards/2/topics/25236
https://www.redmine.org/boards/2/topics/11836

Решение проблем

Mysql2::Error: Incorrect string value

В логах (tail -f /var/www/html/log/production.log) ошибка при попытке забрать письмо из ящика:

MailHandler: an unexpected error occurred when receiving email: Mysql2::Error: Incorrect string value: '\xF0\x9F\x99\x8F\xF0\x9F…' for column 'description' at row 1: INSERT INTO `issues`

Проблема в нестандартных символах, которые обычный utf8 прожевать не может. Нужно поменять в /var/www/html/config/database.yml параметр encoding на utf8mb4, а также сконвертировать БД, если она работает не в этом режиме.

http://blog.andriylesyuk.com/4-byte-utf-8-problem-in-redmine-and-how-to-fix-it/

Плагины

Redmine Dynamic edit Issue plugin

https://github.com/Ilogeek/redmine_issue_dynamic_edit

// nano /var/www/html/plugins/redmine_issue_dynamic_edit/assets/javascripts/issue_dynamic_edit_configuration_file.js
// строка
var _CONF_EXCLUDED_FIELD_ID = [];
// заменена на 
var _CONF_EXCLUDED_FIELD_ID = ["DescriptionInput", "StartDateInput"];

redmine_extended_watchers

https://github.com/maxrossello/redmine_extended_watchers

Ставится простым копированием в /var/www/html/plugins. Каталог должен называться redmine_extended_watchers, иначе система работать не будет с руганью
[ E 2021-06-10 10:40:46.5705 1613/Tr age/Cor/App/Implementation.cpp:221 ]: Could not spawn process for application /var/www/html: The application encountered the following error: Plugin not found. The directory for plugin redmine_extended_watchers should be /var/www/html/plugins/redmine_extended_watchers. (Redmine::PluginNotFound)

redmine_more_previews

Превью офисных форматов. Требует libreoffice.

apt install libreoffice -y

Проблемы при установке:

You specified: rubyzip (~> 2.3.0) and rubyzip (>= 0). Bundler cannot continue.

sed -i '/rubyzip/d' /var/www/html/plugins/redmine_more_previews/converters/zippy/Gemfile

Could not spawn process for application /var/www/html: The application encountered the following error: cannot load such file – mimemagic/overlay (LoadError)

sed -i '/mimemagic/c gem "mimemagic", "~> 0.3.7"' /var/www/html/plugins/redmine_more_previews/Gemfile

issue_mail_with_attachments

Установка:

  1. Download a plugin zip from Redmine Plugins page and extract it.
  2. Copy «issue_mail_with_attachments» folder under «src» folder into redmine's «plugins» folder.
  3. Из Gemfile в каталоге плагина закомментировать строки 'public_suffix' и 'site_prism' с версиями и прописать их же, но без версий.
  4. Из каталога /var/www/html запустить bundle install.
  5. systemctl restart apache2.service

draw.io

https://github.com/mikitex70/redmine_drawio

# Установка
cd /var/www/html/plugins
git clone https://github.com/mikitex70/redmine_drawio.git
systemctl restart apache2

PlantUML

https://github.com/dkd/plantuml

# Установка
apt install plantuml
cd /var/www/html/plugins
git clone https://github.com/dkd/plantuml.git
sed -i 's/4.1/4.2/' plantuml/init.rb # Чтобы работало на версии 4.2
systemctl restart apache2

Usability - НЕ РАБОТАЕТ НА НОВОЙ ВЕРСИИ

http://rmplus.pro/ru/redmine/plugins/usability

После апгрейда на версию Redmine 4.1.1 плагин не работает:

root@vmls-redmine1:/var/www/html# bundle exec rake redmine:plugins:migrate RAILS_ENV=production
rake aborted!
NameError: undefined method `store_translations' for module `Redmine::I18n::Backend::Implementation'

Пишут, что Our plugins does not work with redmine 4.1.0, just 4.0.6. We have in progress to update still.
https://stackoverflow.com/questions/61079232/error-while-installing-plugin-for-redmine

Issue Tabs и Unread Issues - НЕ РАБОТАЮТ

http://rmplus.pro/ru/redmine/plugins/issue_tabs
http://rmplus.pro/ru/redmine/plugins/unread_issues

После их установки заявки перестали открываться, выдавая ошибку 404. После деинсталляции заработало.

bundle exec rake redmine:plugins:migrate plugin=issue_tabs version=0 RAILS_ENV=production
bundle exec rake redmine:plugins:migrate plugin=unread_issues version=0 RAILS_ENV=production
rm -rf /var/www/html/plugins/issue_tabs
rm -rf /var/www/html/plugins/unread_issues
service apache2 restart

Установка плагинов rmplus.pro

# Откройте архив с плагином и выберите папку, соответствующую вашей версии Redmine.
# Скопируйте её содержимое в папку «Redmine» — «plugins».
# Скопируйте папку «rgloader» в корневую директорию «Redmine».
# Убедитесь, что пользователь, из-под которого запускается web-сервер, имеет доступ к корневой директории установки «Redmine».
# Как возможное решение, для операционных систем семейства UNIX, запустите следующие команды:
sudo chmod 775 -R your_redmine_root_folder
sudo chown -R your_web_server_group:your_web_server_user your_redmine_folder
# Запустите `bundle install`, находясь внутри корневого каталога «Redmine», для установки необходимых гемов:
bundle install
# Выполните миграции плагина (убедитесь, что выполняя команду, находитесь в корневой директории установки «Redmine»):
rake redmine:plugins:migrate RAILS_ENV=production
# Перезагрузите сервер Apache:
sudo service apache2 restart