Инструкция по установке 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С 8.3 Россия Абонемент ($m)

Публикация http-сервиса через Apache под Windows, с использованием ssl клиентского сертификата p12. База реализующая обработку запросов GET, POST с получением и передачей JSON

1 стартмани

23.01.2026    655    ЕСТЬNULL    0    

5

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

Для запуска базы, опубликованной на вебсервере через тонкий клиент (win/linux) с доменной авторизацией. Подходит для запуска тонкого клиента (база web публикация) с устройств не в домене, например для работы внешних пользователей.

1 стартмани

03.01.2026    3223    1    shooshpanius    0    

7

Администрирование веб-серверов Системный администратор Программист 1С 8.3 1С:Розница 2 Абонемент ($m)

Третий тонкий клиент Розница 2.3 (более двух сеансов) зависает сразу при открытии 3-го сеанса (файловая база + IIS + Тонкие клиенты) и виснут все открытые сессии. Быстрое решение на скриншотах ;)

1 стартмани

03.01.2026    1312    vs12345    11    

7

Инструменты администратора БД Администрирование СУБД Администрирование веб-серверов Администрирование 1С 8.3 1C:Бухгалтерия 1С:Бухгалтерия 3.0 1С:ERP Управление предприятием 2 1С:Управление холдингом 1С:Зарплата и кадры бюджетного учреждения 1С:Зарплата и Управление Персоналом 3.x 1С:Комплексная автоматизация 1.х 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 1.6 1С:Управление нашей фирмой 3.0 1С:Управление торговлей 10 1С:Управление торговлей 11 1С:Розница 2 1С:Розница 3.0 1С:Документооборот 1С-КАМИН: Зарплата. Версия 5.0 1С:ТОИР Управление ремонтами и обслуживанием оборудования Платные (руб)

Обработка предназначена для компаний, использующих типовые конфигурации 1С (УТ, УНФ, Розница, ERP и др.), для которых необходим контроль ошибок, для того чтобы избежать поломки.

8540 руб.

23.12.2025    489    0    0    

2

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

Проблема: При переходе с Windows на Linux многие сталкиваются с затруднениями при настройке аутентификации ОС в веб-клиенте 1С через Apache 2.4 (Debian). Решение: Команда Magnit Tech (Центр экспертизы 1С и Сопровождение 1C) разработала готовую инструкцию по настройке веб-клиента 1С на Debian 12 с поддержкой как Windows, так и Linux-серверов. Экономьте время — внедряйте проверенное!

25.07.2025    10719    biryukmikh    66    

30

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

Сервер поиска по метаданным и поиска по коду, Сервер экспорта и поиска по документации, Сервер синтаксической проверки кода

17.06.2025    17039    0    Infostart    20    

113

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

Как проксировать запросы извне на localhost при помощи IIS.

15.01.2025    3741    Miroshh    1    

4

Администрирование веб-серверов Системный администратор Программист 1С:Предприятие 8 1C:Бухгалтерия Узбекистан Абонемент ($m)

Внешняя обработка, подходит для любых конфигураций. Поддерживает apache и iis! Публикуйте базы легко и просто!

1 стартмани

22.11.2024    4686    47    Rafael-87    36    

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