Инструкция по установке 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 возможно.

 

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

См. также

Путь самурая. Ставим локальный Сервер взаимодействия

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

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

1 стартмани

07.04.2023    13249    VPanin56    42    

75

Публикатор 1С. Как публиковать базы с комфортом

Администрирование веб-серверов Платформа 1С v8.3 Бесплатно (free)

Сегодня я расскажу вам про публикатор 1С баз. Это приложение, которое позволит с комфортом и удобством управлять зоопарком ваших веб публикаций. Если у вас больше 5 публикаций, и вам надо с ними что-то делать с завидным постоянством. Если для того чтобы опубликовать тестовую базу, вам приходится идти в техподдержку Если вам просто надоело копаться в конфигах, раздумывая, а нигде ли вы не ошиблись в пробелах и запятых - то тогда вам будет интересна эта публикация.

20.03.2023    6898    78    Segate    4    

27

Midnight Commander, установленный с Entware, не выполняет команды и не запускает файлы

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

Столкнулся с проблемой, установил на роутер Midnigt Commander с репозитория Entware, при попытке выполнения команды программа пишет ошибку "The shell is already running a command". Данная публикация описывает способ решения этой проблемы.

20.03.2023    3490    Eugen-S    2    

3

Публикация 1С на Apache SSL в локальной среде разработки

Администрирование веб-серверов Платформа 1С v8.3 Бесплатно (free)

В статье описывается установка и настройка веб-сервера Apache для работы с 1С через https.

09.02.2023    5588    lone_mayson    4    

42

Контейнер Docker для размещения публикации базы 1С на разных платформах

Администрирование веб-серверов Платформа 1С v8.3 1С:ERP Управление предприятием 2 Россия Бесплатно (free)

Появилась необходимость развернуть на одном хосте две публикации базы, но не на одной платформе, а на разных. Тут я расскажу, как это сделать для версии 8.3.22.1704.

02.02.2023    3539    Sney_Kice    1    

22

Быстрое конфигурирование серверов с Ansible

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

Всю рутину по обновлению платформы, настройке веб-серверов и серверов хранилищ на всем парке серверов компании можно автоматизировать с помощью удобочитаемых YAML-скриптов Ansible. О том, как написать сценарии такой автоматизации, чтобы запускать их параллельно для группы серверов, на митапе «Инструменты автоматизации рутины в 1С-разработке» рассказал ведущий разработчик компании ПИК Digital Павел Комаров.

26.01.2023    5188    lopatrik    4    

22
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
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 1293 20.10.21 02:03 Сейчас в теме
(2) Первое что гуглится "gem pristine mysql2", возможно поможет, в планах перевести на ansible скрипт, буду делать очередную ревизию.
Данную инструкцию писал по результатам установки текущего рабочего трекера, возможно что-то упустил.
+
Оставьте свое сообщение