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

Публикация № 1260292

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

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

Вводные

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

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

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

 

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

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

 
 формат bare

 

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

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

ОС Ubuntu 18.04.

 

Реализация

 

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

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

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

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

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

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

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

 

Работа с Ubuntu

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

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

 

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

Установка MySQL

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

 

apt install mysql-server mysql-client libmysqlclient-dev

Устанавливаем сервис mysql в автозагрузку

systemctl enable mysql

 

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

mysql_secure_installation

Этот скрипт поможет вам выполнить важные задачи безопасности, такие как настройка пароля root, отключение удаленного входа root, удаление анонимных пользователей и т. д. Если скрипт запрашивает пароль root, просто нажмите клавишу [Enter], так как по умолчанию пароль root не установлен.

"VALIDATE PASSWORD PLUGIN" можно не ставить, остальные пункты лучше применить.

Проверяем версию

 mysql -v

У меня результат "Server version: 5.7.30-0ubuntu0.18.04.1 (Ubuntu)", это важно для настроек redmine.

 

Подключаемся к MySQL

mysql -uroot -p

После команды ввести пароль, ключ "-p" как раз отвечает за это. Если запускаете из под пользователя root то может сработать и "mysql" без ключей.

Проверяем кодировку

show variables like 'coll%';

в таблицах должно быть "utf8_unicode_ci" или "utf8_general_ci", у меня было "latin1_swedish_ci".

 

Если отличается, то выходим из клиента mysql

exit;

Открываем на редактирование кофигурационный файл mysql

nano /etc/mysql/my.cnf

после строк "!includedir" добавляем (если в файле присутствую указанные разделы, то нужно в них добавить или изменить значения)

[client]
default-character-set=utf8

[mysqld]
character-set-server=utf8
default-storage-engine=MyISAM

Сохраняем комбинацией "Ctrl+O" + "Enter", выходим комбинацией "Ctrl+X"

Перезагружаем сервис mysql

systemctl restart mysql

повторно подключаемся к mysql

mysql -uroot -p

 

Создаем базу

CREATE DATABASE redmine;

Создаем пользователя и устанавливаем права на базу, "password" нужно заменить на свой стойкий пароль.

GRANT ALL PRIVILEGES ON redmine.* TO 'redmine'@'localhost' IDENTIFIED BY 'password';

 

Аналогично добавляем базу для gogs

CREATE DATABASE gogs;
GRANT ALL PRIVILEGES ON gogs.* TO 'gogs'@'localhost' IDENTIFIED BY 'password';

 

Обновляем права доступа и выходим

FLUSH PRIVILEGES;
exit;

 

 

Установка Ruby

 
 Установка Ruby

 

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

 
 Установка nginx

 

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

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

 

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

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

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

apt-get install build-essential libmysqlclient-dev imagemagick libmagickwand-dev

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

wget https://www.redmine.org/releases/redmine-4.1.0.zip
unzip redmine-4.1.0.zip

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

mkdir /opt/redmine
cp -r redmine-4.1.0/* /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: utf8

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

 

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

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

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

 

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

chown -R www-data:www-data /opt/redmine/

 

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

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

 

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

 

 

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

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

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

 Создаем настройку для доменного имени

nano /etc/nginx/sites-available/test.malikov.pro.nginx

для работы расширение не важно потому что проверяются все файлы присутствующие в папке, для ".nginx" есть ассоциация плагина PHPStorm (ссылка)

содержимое файла, 

server {

	listen 80;
	server_name test.malikov.pro;

	location / {

		root /opt/redmine/public;
		
		access_log /var/log/nginx/test.malikov.pro.access.log;
		error_log /var/log/nginx/test.malikov.pro.error.log;

		passenger_enabled on;
		passenger_min_instances 1;
		client_max_body_size 10m;
	}
}

Использована локация "/" для дальнейшего подключения gogs в локацию "/git"

 

Создаем ссылку в "sites-enabled"

ln -s /etc/nginx/sites-available/test.malikov.pro.nginx /etc/nginx/sites-enabled/test.malikov.pro.nginx

Проверяем корректность конфигурации, сделано для того чтобы не обваливать рабочий сервер некорректной конфигурацией.

nginx -t

При выводе сообщения к корректности настроек

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Загружаем настройки

service nginx reload

это альтернативный синтаксис работы с сервисами, равносилен "systemctl reload nginx". Конфигурация загружается без остановки сервиса, для перезагрузки нужно использовать "systemctl restart nginx".

 

Проверяем работоспособность перейдя по ссылке

 

 

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

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

 
 скриншот

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

 
 скриншот

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

 
 скриншот

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

 
 скриншот

 

Установка Gogs

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

Схема:

 

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

 

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

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

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

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

 
 скриншот

 

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

Добавляем локацию /git/ с проксированием на localhost:3000

 

 
 настройка nginx
 
 настройка gogs

 

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

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

 
 Скриншоты

 

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

usermod -a -G git www-data

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

 
 скриншоты

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

 
 скриншоты

 

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

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

 
 скриншот

 

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

 
 скриншоты

 

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

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

 

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

 
 скриншоты

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

 
 скриншоты

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

 
 скриншот

 

Настройка firewall

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

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

ufw allow OpenSSH
ufw allow 2222
ufw allow "Nginx Full"

включаем

ufw enable

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

ufw status

 

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

 

Итог

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

 

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

Специальные предложения

Оставьте свое сообщение

См. также

Доменная аутентификация ОС при бесшовной интеграции 1С:Документооборот 8 КОРП, редакция 2.1 и 1С:ERP Управление предприятием 2 (в клиент-серверном режиме)

Системное администрирование Документоборот 2 v8 ДО ERP2 Россия Бесплатно (free)

Доменная аутентификация ОС при бесшовной интеграции 1С:Документооборот 8 КОРП, редакция 2.1 (2.1.27.1) и 1С:ERP Управление предприятием 2 (2.4.13.103) (в клиент-серверном режиме). Проблема: «После перехода на новую платформу перестала работать доменная аутентификация».

01.06.2021    561    user1387741    9    

Мониторинг свободного места на диске с помощью OneScript

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

Скрипт, который проверяет объем свободного места на каждом диске и оповещает на почту о нехватке места.

30.05.2021    869    info1i    8    

Как добыть последнюю версию SQL Server 2012 Native Client

Администрирование СУБД Системное администрирование v8 Бесплатно (free)

Краткое руководство администраторам 1С по получению свежей версии SQL Server 2012 Native Client, необходимого для работы сервера 1С.

13.05.2021    623    tedkuban    3    

Простой метод установки postgresql-12 от 1С на Archlinux/Manjaro

Администрирование СУБД Linux Бесплатно (free)

Инструкция по установке дистрибутива postgresql-12 от 1С на Arch и Manjaro, совсем без красноглазия

02.05.2021    603    cdiamond    2    

Xubuntu 20.04 для бухгалтера 1С

Linux Администрирование СУБД v8 БП3.0 Россия Бесплатно (free)

В публикации представлен необходимый минимум для настройки Xubuntu 20.04 в качестве рабочего места бухгалтера, ведущего учёт в программе 1С: Бухгалтерия 3.0 файловый вариант. Кроме этого, настроено подключение и других сотрудников через тонкий клиент 1С к опубликованной на веб-сервере базе бухгалтерии.

12.04.2021    3215    compil7    25    

HASP, Linux, Centos 7 по сети

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

HASP keys by net on Linux - не новое, а заново.

10.03.2021    1102    ryzn    1    

Решение проблемы установки 1С8.3 (webkitgtk3) на RHEL 8 / CentOS 8 / Fedora Linux

Linux v8 1cv8.cf Бесплатно (free)

Попытка установки 1С:Предприятия 8.3 на RedHat Enterprise Linux 8 / CentOS 8 / Fedora не увенчается успехом, произойдет ошибка: Неудовлетворенные зависимости: libwebkitgtk-3.0.so.0()(64bit) нужен для 1c-enterprise-8.3.18.1128-training-8.3.18-1128.x86_64. Конфликт заключается в том, что 1С требует устаревшую версию пакета libwebkitgtk-3.0.so.0()(64bit), запрещенную из-за проблем безопасности, и не может работать с актуальной версией пакета webkit2gtk3. Гуглить в интернете можно долго, хочу поделиться с Вами уже найденным рабочим решением.

08.03.2021    1379    ksnik    43    

Легкий способ регистрации библиотеки COMCNTR.DLL (для COM-соединения)

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

Устали от командных строк, нюансов с разрядностью 32х/64х или ручного создания V83COMConnector в службе компонентов? Предлагаю простой способ регистрации библиотеки COMCNTR.DLL.

22.12.2020    12876    vakrikun    25    

Использование полного DNS имени при обращении к серверу 1С через OpenVPN

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

В статье опишу настройки для работы клиента с сервером 1С по полному DNS имени. Приведу пример проброса доменной зоны используя OpenVPN.

03.11.2020    1474    malikov_pro    15    

Перепрошивка BIOS'а материнской платы под NVMe M.2 (ASUS)

Системное администрирование Windows Программное обеспечение (software) Россия Бесплатно (free)

Встала задача апгрейда пк сервера, из за жалоб пользователей что 1С тормозит, все плохо, все висит, работать немозможно (1С отраслевая). Покупка нового сервера выходило в кругленьку сумму (процессор, память, SSD улучшать было уже не куда, установлено максимиальное поддерживаемое), решили попробовать диски SSD.M2, как бюджетное решение проблем нежели новый сервак, но в материнской плате нет разъема под M2, да и BIOS'ом он не поддерживается.

25.10.2020    7700    ClickUp    30    

Борьба с перебором/брутом паролей по RDP (Cyberarms Intrusion Detection)

Удаленное управление 1cv8.cf Россия Бесплатно (free)

Одна из проблем Windows Server'ов с доступом по RDP их легкое обнаружение в сети интернет и постоянные атаки по бруту/перебору паролей роботами и прочими умельцами желающими попасть на ваш сервер и заработать на вас легких денег, либо просто добавить головной боли в виде шифровальщика, кодированных архивов, удаление информации, форматировании дисков и другие неприятные вещи. Чтобы этого избежать и снизить переборы до минимума, есть программный продукт бесплатный и простой в настройке и управлении, который будет еще одним надежным замком от вредителей.

10.09.2020    8594    ClickUp    35    

Разрешение экрана удаленного рабочего стола на windows server при подключении по протоколу RDP

Удаленное управление ИТ-компания Россия Бесплатно (free)

Способ управления разрешением экрана удаленного рабочего стола.

29.08.2020    17171    Alex10166    12    

Смена паролей всем локальным пользователям Windows с помощью OneScript

Windows OneScript Пароли Бесплатно (free)

Скрипт, который меняет пароли всем локальным пользователям Windows и сохраняет их в файле. Есть функция генерации пароля, можно задать длину пароля.

18.08.2020    882    info1i    7    

Организация локального рабочего места для фиксации изменений разработки с привязкой к задачам

Рабочее место v8 Бесплатно (free)

Статья является часть блока статей по организации процесса разработки. Задача статьи описать инструкцию по подключению и первоначальной настройке рабочего места с кратким объяснением взаимосвязей между компонентами.

05.07.2020    1599    malikov_pro    6    

Организация удаленного доступа пользователей к серверу организации используя pfSense

Удаленное управление Бесплатно (free)

В статье по шагам опишу установку и настройку pfSense на арендованную виртуальную машину, организации OpenVPN для пользователей и подключению к серверу.

01.07.2020    3351    malikov_pro    1    

Мониторинг факта выполнения обмена с помощью сервиса healthchecks.io

Интеграция Системное администрирование v8 1cv8.cf Россия Бесплатно (free)

В статье опишу вариант простого мониторинга обработчиков, запускаемых по расписанию.

30.06.2020    2191    malikov_pro    7    

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

Сервера Системное администрирование Россия Бесплатно (free)

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

24.06.2020    3980    malikov_pro    0    

Изучаем Linux. Настройка Ubuntu Server 18.04 для работы PostgreSQL

Linux Бесплатно (free)

После того, как в прошлой публикации меня закидали помидорами за использование Windows+PostgreSQL, решил установить Ubuntu Server 18.04 на тестовую машину и пощупать загадочный для меня мир Линукса. В процессе изучения решил написать все нюансы, что насобирал, для следующих целей: 1) Шпаргалка для себя, чтобы, когда понадобится, опять не собирать информацию по разным источникам. 2) Получить новую порцию помидоров и осознать, что сделал неверно, дабы не переносить это на боевой сервер, если соберусь.

16.06.2020    5544    D_astana    17    

Линукс как основной многофункциональный сервер небольшой компании. Наш опыт

Администрирование СУБД Linux Бесплатно (free)

Однажды, в порыве повышения лицензионности используемого софта, мы решили поставить на наш старенький сервер опен сорс линукс. Был совсем небольшой опыт работы на локальных машинах под линуксом (успешный). Продвинутого опыта работы с линуксом не было. Но в сети довольно много позитивного опыта развертки такой архитектуры, и мы решились. Данная статья точно НЕ является мануалом по установке линукс, но уверен, будет неплохим дополнением.

08.06.2020    5198    ogroup    22    

Готовый сервер 1С с Linux Centos 7 и PostgreSQL 10 на борту

Linux Россия Бесплатно (free)

Сейчас все больше и больше возникает вопросов по развертке и настройке 1С на базе Linux и PostgreSQL, так как работать в файловой базе уже почти нереально из-за сложности типовых конфигураций и развитости платформы, а покупать платное ПО довольно дорого, особенно для небольших организаций.

03.04.2020    3888    aleksxx    20    

Ansible роли для 1С

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

Готовые роли для развертывания 1С через Ansible.

24.03.2020    2744    lopatrik    0    

Разворачиваем узлы CI через Vagrant, строим сеть из виртуальных машин. Цикл "Многопоточный CI для 1С c Packer, Vagrant и Jenkins", часть 3

DevOps CI/CD Linux Бесплатно (free)

Разворачиваем инфраструктуру для CI из образов виртуальных машин.

04.03.2020    6066    Vladimir Litvinenko    14    

Собираем образ виртуальной машины с PostgreSQL и платформой 1С. Цикл "Многопоточный CI для 1С c Packer, Vagrant и Jenkins", часть 2

DevOps CI/CD Linux Бесплатно (free)

Автоматизируем установку и конфигурирование Linux, PostgreSQL, 1C, Apache, Java с возможностью выбора версий дистрибутивов. Упаковываем результат в образ виртуальной машины.

28.02.2020    9950    Vladimir Litvinenko    11    

Рабочее место программиста на Linux. Серия лабораторных работ. Работа 1

Linux v8 Бесплатно (free)

В этой лабораторной работе мы сконфигурируем рабочее место программиста на платформе 1С:Предприятие 8. Воспользуемся подсистемой WSL и установим Linux в ОС Windows. Сервер 1С:Предприятие и сервер базы данных установим в Linux. Остальные компоненты установим в Windows.

17.02.2020    10261    infosoft-v    41    

Настройка SoftEther VPN Client на Linux Debian/Ubuntu/Mint (связка Linux-Windows)

Администрирование СУБД Windows Linux Россия Бесплатно (free)

На сервере установлен и настроен VPN через программное обеспечение SoftEter VPN Server, настроены клиенты с доступом по сертификату, встала задача настроить доступ клиента из Linux и подключиться по RDP (VNC) в Windows к серверу VPN.

04.02.2020    7396    ClickUp    9    

1C + Linux + PostgreSQL + Apache

Администрирование данных 1С Apache Администрирование СУБД Администрирование веб-серверов Linux Сервера v8 Бесплатно (free)

Дружим 1С с Линуксом ИЛИ Установка окружения для работы с 1С на Линуксе под Постгресом и Апачем (в 2021-м году).

26.03.2018    52816    SerVer1C    84    

Собственный виртуальный сервер для 1С на Linux Ubuntu

Администрирование данных 1С Linux v8 Бесплатно (free)

Статья для тех, кто хочет научиться разворачивать 1С на linux, и для тех, кто хочет получить недорогой виртуальный сервер для собственных нужд.

24.05.2015    19455    spezc    44    

Публикация базы 1С на веб-сервере Apache на сервере Linux

Администрирование данных 1С WEB Apache Linux v8 1cv8.cf Бесплатно (free)

В отличие от других подобных публикаций здесь будет описано как опубликовать базу (располагающуюся на сервере windows) на веб-сервере apache (расположенном на соседнем сервере под linux).

20.09.2014    156052    spezc    75