Инструкция по установке redmine, gitea на Ubuntu 20.04

20.10.21

Администрирование - Администрирование веб-серверов

В статье опишу порядок настройки сервисов для групповой работы.

Вводные

Нужно организовать

  • систему учета задач
    • отображение изменений в коде в привязке к задаче
  • хранилище конфигурации 1С
  • возможность доступа к сервисам из сети internet

Общая схема в шапке публикации.

 

Вариант решения

В качестве системы учета задач использую redmine (ссылка), вариант использования опишу в отдельной статье. Привязать к задачам можно только локальный git репозиторий в формате bare.

 
 формат bare

 

Можно вручную настроить git сервис, но с точки зрения администрирования это не удобно, поэтому рядом с redmine развернут gitea (ссылка) и у пользователя из под которого запущен redmine есть доступ к папке с репозиториями gitea. Если используется gitlab, то можно зеркалировать репозиторий (ссылка).

VDS использую "VDS-KVM-SSD-Старт-8.0 Виртуализация: KVM, Процессор: 1 ядро, Память: 2 Гб, Диск: 20 Гб SSD", для работы хватает.

ОС Ubuntu 20.04.

 

Реализация

 
 список статей источников

 

Схема работы redmine

Работает система на Ruby on Rails (ссылка)

Использую вариант с phusionpassenger (ссылка)

 
 схема работы с passenger

есть альтернатива с puma (ссылка), работающая через unix_socket (ссылка)

 
  схема работы с puma

Выбрал passenger исходя из простоты настройки и стабильности работы.

 

Работа с Ubuntu

Подключаюсь к серверу с помощью PuTTY (ссылка), на хостинге используется доступ под root, стандартно при установке ubuntu используется пользователь входящий в группу "sudo"(ссылка), поэтому для запуска команд ниже нужно использовать "sudo ", при первом вызове будет запрошен пароль пользователя. Возможно перейти в сеанс root командой "sudo -s"

 
 Обновление ОС

 

Установка и настройка компонентов

Установка MySQL

 
 Установка MySQL, добавление базы и пользователя

 

Установка Ruby

 
 Установка Ruby

 

Установка Nginx, модуля passenger

 
 Установка nginx

 

Пакета модуля passenger в репозитории ubuntu нет, для его установки нужно предварительно поставить пакеты сборки и подключить хранилище.

 
 Установка модуля passenger

 

Redmine поставляется в исходном коде, загружается с ресурса https://www.redmine.org/releases/, так же использует пакеты для работы с изображениями и PDF.

 
 Загрузка, распаковка, установка redmine

Ставим пакеты

apt install imagemagick libmagickwand-dev

Скачиваем архив с кодом, распаковываем (взял не последнюю версию для того чтобы показать как обновлять)

su - redmine

wget https://www.redmine.org/releases/redmine-4.2.3.tar.gz
tar -xvf redmine-4.2.2.tar.gz

установку сделаю в "/opt/redmine" создаю папку, копирую в нее код

mkdir /opt/redmine
cp -r redmine-4.2.2/* /opt/redmine/

 

 

Перед установкой пакетов ruby нужно произвести настройку общей конфигурации и подключения к базе данных, формат файла YAML (ссылка), очень чувствителен к отступам, не путать с YML.

 
 конфигурация redmine и установка пакетов ruby

 переходим в папку, копируем примеры конфигурации в рабочее состояние

cd /opt/redmine/config/
cp configuration.yml.example configuration.yml
cp database.yml.example database.yml

настраиваем nano database.yml

nano database.yml

Пример

production:
  adapter: mysql2
  database: redmine
  host: localhost
  username: redmine
  password: "password"
  encoding: utfmb4

Нужно заменить "password" на рабочий пароль, и учесть # Use "utf8" instead of "utfmb4" for MySQL prior to 5.7.7

 

Устанавливаем пакетный менеджер ruby и пакеты для работы redmine

apt install gcc ruby-dev libxslt-dev libxml2-dev zlib1g-dev

cd /opt/redmine/
gem install bundler
bundle config set --local without 'development test postgresql sqlite'
bundle install

 

Nginx по умолчанию работает под правами пользователя www-data, для корректной работы выдаем ему права на папку с redmine, эту команду желательно повторять при копировании файлов в папку под пользователем "root".

chown -R redmine:redmine /opt/redmine/

 

После успешной установки всех пакетов создаем секретный ключ и запускам миграцию данных (создание начального образа базы данных).

 
 создание ключа, миграция данных

 

cd /opt/redmine
bundle exec rake generate_secret_token
RAILS_ENV=production bundle exec rake db:migrate

при установке может возникнуть ошибка "env: ruby\r: No such file or directory" решается правкой и сохранением фалов "/opt/redmine/bin/rake", "/opt/redmine/bin/bundle", убрал пустую строку после первой, проявляется при скачивании дистрибутива redmine упакованным в zip

 

Для запуска приложения нужно настроить точку входа в nginx.

После установки присутствует настройка по умолчанию "/etc/nginx/sites-available/default", и на нее сделана ссылка из "/etc/nginx/sites-enabled/default". Структура "sites-available" (доступные) и "sites-enabled" (активные) сделана для более удобного управления сайтами. В "default" параметр "server_name _;", что означает что он отвечает на все запросы. Если нет домена, то можно настраивать и в этом файле, соблюдая структуру настроек.

 
 настройка nginx для доменного имени

 

Начальная настройка redmine из web интерфейса

Входим используя логин/пароль admin/admin, меняем его на рабочий.

 
 скриншот

Переходим в раздел "Администрирование", загружаем конфигурацию по умолчанию.

 
 скриншот

Включаем обязательную аутентификацию, срок хранения паролей, отключаем саморегистрацию.

 
 скриншот

Отключаем общедоступность новых проектов, и включаем трекеры задач по умолчанию.

 
 скриншот

 

Установка Gitea

Будет запускаться как сервис с публикацией на порту 3000, так же будет использовать свой SSH сервер на порту 2222. Запускаться будет с правами пользователя git.

Схема:

 

 
 Установка сервиса gitea

 

Настройка Nginx для gitea

Настраиваем для домена git_test с проксированием на localhost:3000

 
 Настройка nginx

 

После установки переходим на страницу web панели, в моем случае "http://git-test.malikov.pro/".

Настраиваем параметры сервиса:

  • Настройки базы данных:
    • пользователь gitea,
    • база данных gitea(создали на этапе установки настройки MySQL).
  • Общие параметры Gitea
    • Домен: в моем случае git-test.malikov.pro
    • URL приложения: http://git-test.malikov.pro/
  • Сервер и другие настройки служб
    • Отключить самостоятельную регистрацию: включаем
    • Разрешить требовать авторизацию для просмотра страниц: включаем
  • Настройки учётной записи администратора, заносим на свое усмотрение, пользователь admin зарезервирован, обязателен для заполнения т.к. включен "Отключить самостоятельную регистрацию".

В результате успешной установки видим страницу, у меня при переходе

 
 скриншот

 

При установке может появится страница с Bad gateway, это после установки перезапускается сервис gitea чтобы применить настройки и одновременно идет перенаправление на страницу входа, нужно просто перезагрузить страницу в браузере.

 
 настройка gitea

 

Создание репозитория, подключение к проекту redmine

Добавляем новый репозиторий в gitea

 
 Скриншоты

 

В результате создалась папка "/var/lib/gitea/data/gitea-repositories/malikov_a/test.git", но прав доступа пользователю "redmine" к ней нет, добавляем его в группу git. Регистр "-G" важен, это обозначает "добавить к группе",  "-g" означает "установить новую основную группу".

usermod -a -G git redmine

В redmine создаем проект

 
 скриншоты

Подключаем репозиторий, проверяем результат

 
 скриншоты

 

Автоматическое прикрепление коммита к задаче

В настройках redmine включаем "веб-сервис для управления хранилищем"

 
 скриншот

 

В настройках репозитория gogs добавляем оповещение

 
 скриншоты

 

Пример строки webhook-а

http://git-test.malikov.pro/sys/fetch_changesets?key=CTrwxZNqOaMpuhSvInCs

 

Создаем задачу в проекте, она получает номер "1".

 
 скриншоты

Делаем изменения в репозитории и добавляем наименование коммита "refs #1".

 
 скриншоты

Обновляем страницу задачи видим связанную редакцию

 
 скриншот

 

Настройка firewall

В ubuntu есть встроенный firewall "ufw".

Добавляем к разрешения

ufw allow OpenSSH
ufw allow 22
ufw allow "Nginx Full"

включаем

ufw enable

проверяем состояние

ufw status

 

UPD 2021.01.23: Добавил установку пакетов и настройку bundler.

UPD 2021.09.24: Изменил ОС с 18.04 на 20.04, уточнил установку требуемой версии ruby

UPD 2021.09.25: Изменил службу с  gogs на его продвинутый форк gitea

 

Итог

Настроить связку redmine и gogs возможно.

 

Благодарю за внимание.

См. также

Администрирование веб-серверов Сервера Системный администратор Программист Абонемент ($m)

WEB приложение для управления сеансами сервера 1С, имеет адаптивный web интерфейс. Возможности: удаление сеансов; завершение rphost процессов; запуск службы 1С сервера (если остановлена). Используется авторизация BasicAuth с защитой от брутфорса. Поддерживает работу по http https протоколам.

1 стартмани

08.11.2024    385    6    gortrex    2    

3

Администрирование веб-серверов Бесплатно (free)

Ошибка 1С веб-сервис IIS. Ошибка доступа к файлу...183(0x000000B7) Невозможно создать файл, так как он уже существует.

27.09.2024    636    California_Dreaming    0    

3

Администрирование веб-серверов Системный администратор Бесплатно (free)

В материале описан порядок действий по настройке Apache для работы по защищенному протоколу HTTPS c 1С на операционной системе РедОС с выпуском сертификата SSL.

09.05.2024    2331    artemusII    1    

9

Администрирование веб-серверов Системный администратор Программист Бесплатно (free)

Инструкция, как опубликовать веб-сервис с помощью OSPanel.

06.05.2024    1640    lostcay    0    

5

Администрирование веб-серверов Системный администратор Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Статья описывает алгоритм установки, настройки и "сопряжения" с 1С веб-сервера Apache на РедОС. Статья, может, будет полезна тем, кто ищет в сети работающие алгоритмы установки веб-сервера и публикации на нем информационных баз 1С в контуре операционной системы РедОС. Помимо этого в статье рассмотрены некоторые спорные моменты, для анализа которых не удалось найти достаточно информации в сети.

25.04.2024    3136    artemusII    8    

18

WEB-интеграция Администрирование веб-серверов Платные (руб)

Веб-портал обеспечивает удобный доступ к конфигурации 1С:ITIL, 1С:ITILIUM, Управление IT-отделом 8 через интернет с любого устройства посредством браузера, увеличивая эффективность работы пользователей и снижая нагрузку на сервер. Быстрая инсталляция портала за пару часов, удобный и интуитивно понятный интерфейс и безопасность данных помогут упростить работу с порталом и ускорить выполнение бизнес-процессов компании.

128000 руб.

19.12.2023    1382    1    0    

9

Сервера Администрирование веб-серверов Системный администратор Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Подробная пошаговая инструкция (как делал я) установки Сервера взаимодействия версия 22.0.26 на Windows Server 2022. Установка собственного объектного хранилище с помощью системы MinIO (https://min.io/). Настройка Сервера взаимодействия для обмена файлами в сообщениях.

1 стартмани

07.04.2023    20279    VPanin56    53    

77
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. twigg 20.10.21 01:55 Сейчас в теме
Сделал по инструкции, в итога такая ошибка -
incompatible library version - /opt/redmine/vendor/cache/ruby/2.7.0/gems/mysql2-0.5.3/lib/mysql2/mysql2.so (LoadError)
2. twigg 20.10.21 01:57 Сейчас в теме
Сделал по инструкции, в итога такая ошибка -
incompatible library version - /opt/redmine/vendor/cache/ruby/2.7.0/gems/mysql2-0.5.3/lib/mysql2/mysql2.so (LoadError)
3. malikov_pro 1324 20.10.21 02:03 Сейчас в теме
(2) Первое что гуглится "gem pristine mysql2", возможно поможет, в планах перевести на ansible скрипт, буду делать очередную ревизию.
Данную инструкцию писал по результатам установки текущего рабочего трекера, возможно что-то упустил.
Оставьте свое сообщение