Скачивание репозитория
Скачиваем и распаковываем архив:$ wget http://dl.bintray.com/gitblit/releases/gitblit-1.8.0.tar.gz $ tar xzvf gitblit-1.8.0.tar.gz $ cd gitblit-1.8.0
Разработка плана развёртывания
Судя по содержимому файла service-ubuntu.sh, запуск приложения происходит при помощи команды:/usr/bin/java --chuid $GITBLIT_USER --chdir $GITBLIT_PATH -- $ARGSПо умолчанию настройки имеют следующие значения:
GITBLIT_PATH=/opt/gitblit GITBLIT_BASE_FOLDER=/opt/gitblit/data GITBLIT_USER="gitblit" source ${GITBLIT_PATH}/java-proxy-config.sh ARGS="-server -Xmx1024M ${JAVA_PROXY_CONFIG} -Djava.awt.headless=true -jar gitblit.jar --baseFolder $GITBLIT_BASE_FOLDER --dailyLogFile"В файле java-proxy-config.sh можно настроить прокси-сервер, на случай если система, на которой будет развёрнуто приложение, не имеет прямого выхода в Интернет. Будем считать, что нас такой случай не интересует. Если понадобится, можно будет просто соответствующим образом поменять значение ARGS.
Наша задача подготовить окружение для работы приложения и создать service-файл для запуска и остановки приложения через systemd. Нужно:
- Установить java
- Создать пользователя gitblit, который указан в переменной GITBLIT_USER
- Создать каталоги для приложения и его данных и задать значения переменных GITBLIT_PATH и GITBLIT_BASE_FOLDER
- Подготовить файл с настройками переменных окружения /etc/default/gitblit
- Подготовить service-файл для управления gitblit через systemd
- Настроить проксирование запросов к gitblit через nginx
Установка Java
На официальной странице проекта по ссылке http://gitblit.com/, в разделе «Java Runtime Requirement» написано, что Gitblit требует для работы Java 7 Runtime Environment (JRE) или Java 7 Development Kit (JDK). Разработкой мы заниматься пока не собираемся, поэтому обойдёмся JRE. В дистрибутиве Debian Stretch имеется только Java версии 8. Установим соответствующий пакет:# apt-get install openjdk-8-jre-headless
Создание пользователя
Для создания пользователя gitblit выполним команду:# useradd -M -r gitblit
Создание каталогов
Создадим каталог приложения вручную:# mkdir -p /opt/gitblit # chown gitblit:gitblit /opt/gitblit # chmod o= /opt/gitblitСкопируем в него распакованные файлы и проставим права доступа к ним:
# cd /opt/gitblit # cp -R /home/stupin/gitblit/gitblit-1.8.0/* . # chown gitblit:gitblit -R * # chmod o= -R *
Создание файла /etc/default/gitblit
Создаём файл /etc/default/gitblit со следующим содержимым:ARGS="-server -Xmx1024M -Djava.awt.headless=true -jar /home/gitblit/gitblit.jar --baseFolder /home/gitblit/data --dailyLogFile"В файле /home/gitblit/data/default.properties меняем следующие настройки:
web.canonicalUrl = https://stupin.su/git/ server.contextPath = / server.httpPort = 8080 server.httpsPort = 0 server.httpBindInterface = 127.0.0.1 server.httpBindInterface = 127.0.0.1С этими настройками приложение будет принимать подключения по протоколу HTTP на порт 8080 на локальном петлевом интерфейсе. На этот порт мы будем пробрасывать запросы, поступающие в nginx на адрес https://stupin.su/git/
Создание service-файла
Создадим файл /etc/systemd/system/gitblit.service со следующим содержимым:[Unit] Description=Managing, viewing, and serving Git repositories [Service] Type=simple EnvironmentFile=/etc/default/gitblit WorkingDirectory=/opt/gitblit User=gitblit ExecStart=/usr/bin/java $ARGS Restart=always [Install] WantedBy=multi-user.targetВключим автозапуск сервиса при старте системы и запустим его вручную:
# systemctl enable gitblit # systemctl start gitblit
Настройка проксирования через nginx
Если nginx ещё не установлен, то установить его можно при помощи следующей команды:# apt-get install nginx-lightВпишем в конфигурацию nginx (в моём случае это файл /etc/nginx/sites-enabled/root) в секцию server следующий блок:
# Gitblit location /git/ { rewrite /git/(.*) /$1 break; proxy_redirect off; proxy_bind 127.0.0.1; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_pass http://127.0.0.1:8080/; }Все запросы, поступающие на адрес https://stupin.su/git/ передаются на обработку на адрес http://127.0.0.1:8080. При этом из адреса URL вырезается базовый каталог /git и запросы поступают в корневой каталог приложения.
И перезагрузим настройки nginx:
# systemctl reload nginx
Комментариев нет:
Отправить комментарий