Как установить GitBucket на Ubuntu 16.04

В этом руководстве рассматривается базовая установка и настройка GitBucket для экземпляра Vultr, работающего под управлением Ubuntu 16.04, и предполагается, что вы выполняете команды от имени non-rootпользователя.

Предпосылки

  • Экземпляр сервера Vultr с как минимум 1 ГБ ОЗУ (меньшие экземпляры могут работать, но медленно)
  • openjdk-8-jre Требуется, старые версии не будут работать.
  • wget Используется для загрузки пакета GitBucket.
  • nginx Необязательно, предоставляет обратный прокси для GitBucket
  • systemd Управляет запуском и остановкой процесса GitBucket

Установка предпосылок

GitBucket требует, чтобы Java 8 или более новая версия была установлена ​​на вашем сервере. Если вы еще не установили Java 8, сначала обновите ��писок локальных пакетов.

sudo apt update

Затем установите пакет времени выполнения Java 8.

sudo apt install openjdk-8-jre

Установка GitBucket

Создание непривилегированного пользователя

Нам нужно создать непривилегированного пользователя для запуска GitBucket, прежде чем идти дальше. Запуск GitBucket от имени непривилегированного пользователя ограничивает нашу установку от записи вне его собственного каталога данных, усиливая безопасность вашего сервера. Выполните следующую команду, чтобы создать системного пользователя с именем gitbucket.

sudo adduser --system gitbucket

Поскольку мы создали системного пользователя, оболочкой по умолчанию является /bin/false, и мы будем возвращены к нашей текущей оболочке, если мы не предоставим дополнительный аргумент оболочки при запуске su. Авторизуйтесь для нового пользователя.

sudo su - gitbucket -s /bin/bash

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

Загрузка / Обновление GitBucket

Перейдите на страницу релизов GitBucket и найдите последнюю доступную версию. Скопируйте URL-адрес gitbucket.warпакета, убедитесь, что вы находитесь в домашнем каталоге нового пользователя, и загрузите его с помощью wget.

cd ~/
wget https://github.com/gitbucket/gitbucket/releases/download/4.18.0/gitbucket.war

Вам нужно будет повторять этот шаг каждый раз, когда вы хотите обновить пакет GitBucket.

Начальная конфигурация GitBucket

Как только пакет будет загружен, нам нужно будет запустить GitBucket вручную, чтобы выполнить некоторую начальную настройку.

java -jar gitbucket.war --port 8080

Если порт 8080уже занят другим процессом, вы можете изменить порт, который GitBucket будет прослушивать сейчас. В этом руководстве предполагается, что GitBucket прослушивает порт8080 .

Это запустит GitBucket на общедоступном сетевом интерфейсе вашего сервера, прослушивая указанный порт. Через несколько секунд вы должны увидеть следующее сообщение.

INFO:oejs.Server:main: Started @15891ms

Если вы используете брандмауэр Vultr , вам нужно будет открыть порт, который прослушивает GitBucket, поскольку брандмауэр Vultr работает как белый список, отклоняя трафик, чтобы разрешить порты, если не указано иное.

Ваша установка GitBucket должна быть подключена к сети и доступна из Интернета. Используя веб-браузер, подключитесь к общему адресу вашего сервера (обязательно указав порт, на котором работает GitBucket, ( http://203.0.113.0:8080или http://example.com:8080), и вы попадете на домашнюю страницу GitBucket.

Однако пароль учетной записи администратора по умолчанию необходимо изменить. Для этого войдите в учетную запись администратора с помощью Sign inкнопки в правом верхнем углу веб-интерфейса. Вход по умолчанию для учетной записи администратора - rootдля имени пользователя, а затем rootснова для пароля. После входа кнопка будет заменена значком профиля и раскрывающимся списком. Разверните раскрывающийся список и выберите Account Settings, затем установите новый, более безопасный пароль в мастере настроек учетной записи.

После того, как вы обновили учетные данные администратора по умолчанию и убедились, что GitBucket запускается в этой минимальной конфигурации, CTRL+Cзавершите процесс Java с помощью « » и закройте текущую оболочку с помощью exit.

Создание сервиса Systemd

В настоящее время мы можем запустить GitBucket, только получив доступ к нашему серверу через SSH и запустив процесс вручную из оболочки. К счастью, Ubuntu поставляется в комплекте Systemd, что позволяет нам создать сервис, с помощью которого GitBucket будет автоматически запускаться и обслуживаться системой.

Используя nano, создайте новый файл модуля в /etc/systemd/systemкаталоге.

sudo nano /etc/systemd/system/gitbucket.service

Затем скопируйте следующее содержимое в файл.

[Unit]
Description=GitBucket
After=network.target
[Service]
ExecStart=/usr/bin/java -jar /home/gitbucket/gitbucket.war --port 8080
ExecStop=/bin/kill -SIGINT $MAINPID
Type=simple
User=gitbucket
[Install]
WantedBy=multi-user.target

Этот файл модуля определяет базовое поведение при запуске и завершении работы GitBucket и запускает службу под нашим непривилегированным пользователем системы через локальный сетевой интерфейс.

Если вы изменили номер порта, который GitBucket будет прослушивать, измените --portаргумент ExecStartкоманды.

Сохраните (" CTRL+O") новый файл модуля и затем выйдите из редактора (" CTRL+X"). Вам нужно будет перезагрузить Systemd для обнаружения нового файла модуля.

sudo systemctl daemon-reload

После перезагрузки Systemd убедитесь, что новый модуль был обнаружен и загружен.

sudo systemctl status gitbucket

Вы должны увидеть следующий вывод.

gitbucket.service - GitBucket
   Loaded: loaded (/etc/systemd/system/gitbucket.service; disabled; vendor preset: enabled)
   Active: inactive (dead)

Наконец, включите автоматический запуск нового устройства при загрузке сервера, а затем запустите службу в первый раз.

sudo systemctl enable gitbucket
sudo systemctl start gitbucket

После запуска службы вы сможете получить доступ к GitBucket из браузера, используя IP-адрес и номер порта снова.

Настройка обратного прокси Nginx

Хотя можно выставить GitBucket напрямую через порт 8080, вы можете улучшить производительность и настроить такие функции, как HTTP / 2, шифрование TLS и правила кэширования, предоставив GitBucket через Nginx.

Начальная настройка Nginx

Если вы еще не установили Nginx, обновите списки пакетов.

sudo apt update

Затем установите пакет Nginx.

sudo apt install nginx

После установки Nginx убедитесь, что вы можете получить доступ к веб-серверу через IP-адрес вашего сервера без номера порта (то есть http://203.0.113.0или http://example.com). В случае успеха вы увидите целевую страницу Nginx по умолчанию для Ubuntu.

Создание обратного прокси

Мы будем копировать конфигурацию сайта по умолчанию в /etc/nginx/sites-availableкачестве отправной точки для обратного прокси.

sudo cp /etc/nginx/sites-available/default /etc/nginx/sites-available/gitbucket

Откройте вновь созданный файл конфигурации с помощью nano.

sudo nano /etc/nginx/sites-available/gitbucket

Найдите существующий location /блок в строке 43.

location / {
  # First attempt to serve request as file, then
  # as directory, then fall back to displaying a 404.
  try_files $uri $uri/ =404;
}

В настоящее время Nginx будет пытаться вернуть файлы, в /var/www/htmlкоторых совпадают входящие HTTPзапросы. Нам нужно изменить это поведение, настроив обратный прокси-сервер в этом блоке, который будет вместо этого отправлять все HTTP-запросы, сделанные на наш сервер Nginx, экземпляру GitBucket. Обновите location /блок, чтобы соответствовать следующему.

location / {
    proxy_pass              http://localhost:8080; # The address GitBucket is listening on
    proxy_set_header        Host $host;
    proxy_set_header        X-Real-IP $remote_addr;
    proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_connect_timeout   150;
    proxy_send_timeout      100;
    proxy_read_timeout      100;
    proxy_buffers           4 32k;

    client_max_body_size    512m; # Needed for large Git operations over HTTP
    client_body_buffer_size 128k;
}

Если вы изменили номер порта, который будет прослушивать GitBucket, обновите proxy_passпараметр, чтобы отразить это.

Чтобы включить нашу новую конфигурацию, вам нужно будет отключить существующую конфигурацию по умолчанию в /etc/nginx/sites-enabled, а затем поставить символическую ссылку на нашу новую конфигурацию с /etc/nginx/sites-enabledпомощью следующего.

sudo rm /etc/nginx/sites-enabled/default
sudo ln -s /etc/nginx/sites-available/gitbucket /etc/nginx/sites-enabled/gitbucket

Как только файл конфигурации будет включен, проверьте наличие синтаксических ошибок.

sudo nginx -t

Затем перезапустите сервер Nginx, чтобы включить нашу новую конфигурацию сайта.

sudo systemctl restart nginx

Теперь вы сможете получить доступ к вашей установке GitBucket по общему адресу вашего сервера без номера порта.

Защита процесса GitBucket из общедоступного интернета

В настоящее время наш экземпляр GitBucket прослушивает общедоступный сетевой интерфейс нашего сервера . Это позволит пользователям обойти прокси Nginx, подключившись к адресу, который GitBucket прослушивает в данный момент, что, вероятно, нежелательно. Нам нужно изменить файл модуля, который мы создали ранее, чтобы решить эту проблему. Откройте файл модуля с помощью nano.

sudo nano /etc/systemd/system/gitbucket.service

Добавить --host 127.0.0.1в ExecStartкоманду, вот так.

...
ExecStart=/usr/bin/java -jar /home/gitbucket/gitbucket.war --port 8080 --host 127.0.0.1
...

Это заставит GitBucket принимать соединения только через интерфейс локальной сети нашего сервера. Еще раз, сохраните (" CTRL+O") файл, закройте (" CTRL+X") редактор, перезагрузите Systemd и перезапустите наш модуль GitBucket.

sudo systemctl daemon-reload
sudo systemctl restart gitbucket

Если вы используете брандмауэр Vultr, вам также следует удалить все правила порта, которые вы добавили для доступа к серверу GitBucket во время первоначальной настройки.



Leave a Comment

Изучение 26 методов анализа больших данных: часть 1

Изучение 26 методов анализа больших данных: часть 1

Изучение 26 методов анализа больших данных: часть 1

6 невероятных фактов о Nintendo Switch

6 невероятных фактов о Nintendo Switch

Многие из вас знают Switch, который выйдет в марте 2017 года, и его новые функции. Для тех, кто не знает, мы подготовили список функций, которые делают «Switch» обязательным гаджетом.

Технические обещания, которые все еще не выполнены

Технические обещания, которые все еще не выполнены

Вы ждете, когда технологические гиганты выполнят свои обещания? проверить, что осталось недоставленным.

Функциональные возможности уровней эталонной архитектуры больших данных

Функциональные возможности уровней эталонной архитектуры больших данных

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

Как ИИ может вывести автоматизацию процессов на новый уровень?

Как ИИ может вывести автоматизацию процессов на новый уровень?

Прочтите это, чтобы узнать, как искусственный интеллект становится популярным среди небольших компаний и как он увеличивает вероятность их роста и дает преимущество перед конкурентами.

CAPTCHA: как долго она может оставаться жизнеспособным методом различения между человеком и ИИ?

CAPTCHA: как долго она может оставаться жизнеспособным методом различения между человеком и ИИ?

CAPTCHA стало довольно сложно решать пользователям за последние несколько лет. Сможет ли он оставаться эффективным в обнаружении спама и ботов в ближайшем будущем?

Технологическая сингулярность: далекое будущее человеческой цивилизации?

Технологическая сингулярность: далекое будущее человеческой цивилизации?

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

Телемедицина и удаленное здравоохранение: будущее уже здесь

Телемедицина и удаленное здравоохранение: будущее уже здесь

Что такое телемедицина, дистанционное здравоохранение и их влияние на будущее поколение? Это хорошее место или нет в ситуации пандемии? Прочтите блог, чтобы узнать мнение!

Вы когда-нибудь задумывались, как хакеры зарабатывают деньги?

Вы когда-нибудь задумывались, как хакеры зарабатывают деньги?

Возможно, вы слышали, что хакеры зарабатывают много денег, но задумывались ли вы когда-нибудь о том, как они зарабатывают такие деньги? Давайте обсудим.

Обновление дополнения к macOS Catalina 10.15.4 вызывает больше проблем, чем решает

Обновление дополнения к macOS Catalina 10.15.4 вызывает больше проблем, чем решает

Недавно Apple выпустила macOS Catalina 10.15.4, дополнительное обновление для исправления проблем, но похоже, что это обновление вызывает больше проблем, приводящих к поломке компьютеров Mac. Прочтите эту статью, чтобы узнать больше