Как да инсталирате GitBucket на Ubuntu 16.04

Това ръководство обхваща основната инсталация и настройка на GitBucket за Vultr екземпляр, работещ с Ubuntu 16.04, и предполага, че изпълнявате команди като non-rootпотребител.

Предпоставки

  • Сървърна инстанция на Vultr с поне 1 GB RAM (по-малките екземпляри може да работят, макар и бавно).
  • 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 стартира в тази минимална конфигурация, убийте процеса на Java с " CTRL+C" и затворете текущата обвивка с 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 сървъра по време на първоначалната настройка.


Инсталирайте Lets Encrypt SSL в приложението WordPress с едно щракване

Инсталирайте Lets Encrypt SSL в приложението WordPress с едно щракване

Въведение Lets Encrypt е услуга на сертифициращ орган, която предлага безплатни TLS/SSL сертификати. Процесът на инсталиране е опростен от Certbot,

Как да настроите надстройки без надзор на Debian 9 (разтягане)

Как да настроите надстройки без надзор на Debian 9 (разтягане)

Използване на различна система? Ако закупите сървър на Debian, винаги трябва да имате най-новите корекции за сигурност и актуализации, независимо дали спите или не

Как да инсталирате и конфигурирате PHP 7.0 или PHP 7.1 на Ubuntu 16.04

Как да инсталирате и конфигурирате PHP 7.0 или PHP 7.1 на Ubuntu 16.04

PHP и свързаните с него пакети са най-често използваните компоненти при разгръщане на уеб сървър. В тази статия ще научим как да настроим PHP 7.0 или PHP 7.1 o

Как да инсталирате Squid Proxy на CentOS

Как да инсталирате Squid Proxy на CentOS

Squid е популярна, безплатна програма за Linux, която ви позволява да създадете уеб прокси за препращане. В това ръководство ще видите как да инсталирате Squid на CentOS, за да ви обърне

Как да инсталирате Lighttpd (LLMP стек) на CentOS 6

Как да инсталирате Lighttpd (LLMP стек) на CentOS 6

Въведение Lighttpd е форк на Apache, чиято цел е да бъде много по-малко ресурсоемка. Той е лек, откъдето идва и името му, и е доста лесен за използване. Инсталирайте

Три безплатни контролни панела на сървъра (бърза инсталация)

Три безплатни контролни панела на сървъра (бърза инсталация)

1. Virtualmin/Webmin Virtualmin е мощен и гъвкав контролен панел за уеб хостинг за Linux и UNIX системи, базиран на добре познатата уеб база с отворен код

Настройване на приложение Yii на Ubuntu 14.04

Настройване на приложение Yii на Ubuntu 14.04

Yii е PHP рамка, която ви позволява да разработвате приложения по-бързо и лесно. Инсталирането на Yii в Ubuntu е лесно, както ще научите точно l

Настройте свой собствен DNS сървър на Debian/Ubuntu

Настройте свой собствен DNS сървър на Debian/Ubuntu

Този урок обяснява как да настроите DNS сървър с помощта на Bind9 на Debian или Ubuntu. В цялата статия заменете your-domain-name.com съответно. При th

Използване на Logrotate за управление на регистрационни файлове

Използване на Logrotate за управление на регистрационни файлове

Въведение Logrotate е помощна програма за Linux, която опростява администрирането на лог файлове. Обикновено се изпълнява веднъж на ден чрез cron задание и управлява базата от регистрационни файлове

Промяна на Icinga2 за използване на модел главен/клиент на CentOS 6 или CentOS 7

Промяна на Icinga2 за използване на модел главен/клиент на CentOS 6 или CentOS 7

Icinga2 е мощна система за наблюдение и когато се използва в модел главен-клиент, тя може да замени необходимостта от проверки на базата на NRPE. Главният клиент

Настройте Red5 Media Server на Ubuntu 16.04

Настройте Red5 Media Server на Ubuntu 16.04

Използване на различна система? Red5 е медиен сървър с отворен код, внедрен в Java, който ви позволява да стартирате Flash многопотребителски приложения, като например предаване на живо

Компилирайте и инсталирайте Nginx с модула PageSpeed ​​на Debian 8

Компилирайте и инсталирайте Nginx с модула PageSpeed ​​на Debian 8

В тази статия ще видим как да компилирате и инсталирате основната линия на Nginx от официалните източници на Nginx с модула PageSpeed, който ви позволява да

Как да инсталирате Apache Cassandra 3.11.x на Ubuntu 16.04 LTS

Как да инсталирате Apache Cassandra 3.11.x на Ubuntu 16.04 LTS

Използване на различна система? Apache Cassandra е безплатна система за управление на база данни NoSQL с отворен код, която е проектирана да осигури мащабируемост, висока

Как да инсталирате Vanilla Forum на Ubuntu 16.04

Как да инсталирате Vanilla Forum на Ubuntu 16.04

Използване на различна система? Vanilla forum е приложение за форум с отворен код, написано на PHP. Той е напълно адаптивен, лесен за използване и поддържа външен

Как да инсталирате Kanboard на Ubuntu 18.04 LTS

Как да инсталирате Kanboard на Ubuntu 18.04 LTS

Използване на различна система? Въведение Kanboard е безплатна програма за управление на проекти с отворен код, която е предназначена да улеснява и визуализира

Как да инсталирате Kanboard на Debian 9

Как да инсталирате Kanboard на Debian 9

Използване на различна система? Въведение Kanboard е безплатна програма за управление на проекти с отворен код, която е предназначена да улеснява и визуализира

Как да инсталирате Gitea на Debian 9

Как да инсталирате Gitea на Debian 9

Използване на различна система? Gitea е алтернатива с отворен код, самостоятелно хоствана система за контрол на версиите, задвижвана от Git. Gitea е написана на Голанг и е

Как да инсталирате Gitea на Ubuntu 18.04

Как да инсталирате Gitea на Ubuntu 18.04

Използване на различна система? Gitea е алтернатива с отворен код, самостоятелно хоствана система за контрол на версиите, задвижвана от git. Gitea е написана на Голанг и е

Инсталирайте Lynis на Debian 8

Инсталирайте Lynis на Debian 8

Въведение Lynis е безплатен инструмент за одит на системата с отворен код, който се използва от много системни администратори за проверка на целостта и заздравяване на техните системи. аз

Как да инсталирате Thelia 2.3 на Debian 9

Как да инсталирате Thelia 2.3 на Debian 9

Използване на различна система? Thelia е инструмент с отворен код за създаване на уебсайтове за е-бизнес и управление на онлайн съдържание, написано на PHP. Изходен код на Thelia i

Възходът на машините: Реални приложения на AI

Възходът на машините: Реални приложения на AI

Изкуственият интелект не е в бъдещето, тук е точно в настоящето. В този блог Прочетете как приложенията за изкуствен интелект са повлияли на различни сектори.

DDOS атаки: кратък преглед

DDOS атаки: кратък преглед

Вие също сте жертва на DDOS атаки и сте объркани относно методите за превенция? Прочетете тази статия, за да разрешите вашите запитвания.

Чудили ли сте се как хакерите печелят пари?

Чудили ли сте се как хакерите печелят пари?

Може би сте чували, че хакерите печелят много пари, но чудили ли сте се някога как печелят такива пари? нека обсъдим.

Революционни изобретения на Google, които ще улеснят живота ви.

Революционни изобретения на Google, които ще улеснят живота ви.

Искате ли да видите революционни изобретения на Google и как тези изобретения промениха живота на всяко човешко същество днес? След това прочетете в блога, за да видите изобретенията на Google.

Friday Essential: Какво се случи с колите, задвижвани от изкуствен интелект?

Friday Essential: Какво се случи с колите, задвижвани от изкуствен интелект?

Концепцията за самоуправляващи се автомобили да тръгват по пътищата с помощта на изкуствен интелект е мечта, която имаме от известно време. Но въпреки няколкото обещания, те не се виждат никъде. Прочетете този блог, за да научите повече…

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

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

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

Еволюция на съхранението на данни – инфографика

Еволюция на съхранението на данни – инфографика

Методите за съхранение на данните може да се развиват от раждането на данните. Този блог обхваща развитието на съхранението на данни на базата на инфографика.

Функционалности на референтните архитектурни слоеве за големи данни

Функционалности на референтните архитектурни слоеве за големи данни

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

6 невероятни предимства от наличието на интелигентни домашни устройства в живота ни

6 невероятни предимства от наличието на интелигентни домашни устройства в живота ни

В този дигитално задвижван свят устройствата за интелигентен дом се превърнаха в решаваща част от живота. Ето няколко невероятни предимства на интелигентните домашни устройства за това как те правят живота ни струващ и по-опростен.

Актуализацията на допълнението на macOS Catalina 10.15.4 причинява повече проблеми, отколкото решава

Актуализацията на допълнението на macOS Catalina 10.15.4 причинява повече проблеми, отколкото решава

Наскоро Apple пусна macOS Catalina 10.15.4 допълнителна актуализация за отстраняване на проблеми, но изглежда, че актуализацията причинява повече проблеми, водещи до блокиране на mac машини. Прочетете тази статия, за да научите повече