Инструкция по установке 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, добавление базы и пользователя

 

Установка Ruby

 
 Установка Ruby

 

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

 
 Установка nginx

 

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

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

 

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

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

 

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

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

 

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

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

 

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

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

 
 настройка 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

 

Итог

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

 

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

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

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

См. также

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

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

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

10.09.2020    1710    ClickUp    17    

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

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

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

29.08.2020    4412    Alex10166    7    

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

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

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

18.08.2020    422    info1i    7    

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

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

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

05.07.2020    1177    malikov_pro    6    

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

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

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

01.07.2020    1375    malikov_pro    1    

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

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

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

30.06.2020    1624    malikov_pro    5    

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

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

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

24.06.2020    1074    malikov_pro    0    

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

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

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

16.06.2020    4233    D_astana    17    

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

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

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

08.06.2020    3660    ogroup    22    

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

Linux 1С:Франчайзи, автоматизация бизнеса Россия Бесплатно (free)

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

03.04.2020    2672    aleksxx    19    

Ansible роли для 1С

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

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

24.03.2020    2073    lopatrik    0    

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

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

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

04.03.2020    4442    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    7742    Vladimir Litvinenko    11    

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

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

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

17.02.2020    8519    infosoft-v    40    

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

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

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

04.02.2020    3916    ClickUp    5    

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

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

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

24.05.2015    18633    spezc    44    

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

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

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

20.09.2014    146574    spezc    72