Предуслови
Инсталирање предуслова
Инсталирање ГитБуцкет-а
Конфигурисање Нгинк обрнутог проксија
Овај водич покрива основну инсталацију и подешавање ГитБуцкет-а за Вултр инстанцу која користи Убунту 16.04 и претпоставља да извршавате команде као non-rootкорисник.
Предуслови
- Инстанца Вултр сервера са најмање 1 ГБ РАМ-а (мање инстанце могу радити, иако споро).
openjdk-8-jre Обавезно, старије верзије неће радити.
wget Користи се за преузимање ГитБуцкет пакета.
nginx Опционо, пружа обрнути прокси за ГитБуцкет
systemd Управља покретањем и заустављањем ГитБуцкет процеса
Инсталирање предуслова
ГитБуцкет захтева Јава 8 или новију верзију да би била инсталирана на вашем серверу. Ако још нисте инсталирали Јава 8, прво ажурирајте своје локалне листе пакета.
sudo apt update
Затим инсталирајте Јава 8 рунтиме пакет.
sudo apt install openjdk-8-jre
Инсталирање ГитБуцкет-а
Креирање непривилегованог корисника
Мораћемо да креирамо непривилегованог корисника за покретање ГитБуцкет-а пре него што наставимо даље. Покретање ГитБуцкет-а под непривилегованим корисником ограничава нашу инсталацију од писања ван сопственог директоријума података, јачајући безбедност вашег сервера. Покрените следећу команду да бисте креирали системског корисника под називом gitbucket.
sudo adduser --system gitbucket
Пошто смо креирали системског корисника, подразумевана љуска је /bin/false, и бићемо враћени на нашу тренутну љуску осим ако не обезбедимо додатни аргумент љуске приликом покретања su. Пријавите се на новокреираног корисника.
sudo su - gitbucket -s /bin/bash
Промпт ваше љуске би требало да се промени, а ви ћете бити пријављени на новог корисника система.
Преузимање/ажурирање ГитБуцкет-а
Идите на страницу издања ГитБуцкет и пронађите најновију доступну верзију. Копирајте УРЛ за gitbucket.warпакет, проверите да ли сте у кућном директоријуму новог корисника и преузмите га са wget.
cd ~/
wget https://github.com/gitbucket/gitbucket/releases/download/4.18.0/gitbucket.war
Мораћете да поновите овај корак сваки пут када желите да ажурирате ГитБуцкет пакет.
Почетна ГитБуцкет конфигурација
Када се пакет преузме, мораћемо ручно да покренемо ГитБуцкет да бисмо извршили почетну конфигурацију.
java -jar gitbucket.war --port 8080
Ако је порт 8080већ заузет другим процесом, можете променити порт који ће ГитБуцкет сада слушати. Овај водич претпоставља да ГитБуцкет слуша порт8080 .
Ово ће покренути ГитБуцкет на јавном мрежном интерфејсу вашег сервера, слушајући на наведеном порту. Требало би да видите, после неколико тренутака, следећу поруку.
INFO:oejs.Server:main: Started @15891ms
Ако користите Вултров заштитни зид , мораћете да отворите порт који ГитБуцкет слуша, пошто Вултров заштитни зид ради као бела листа, одбијајући саобраћај да би дозволио портове осим ако није другачије наведено.
Ваша ГитБуцкет инсталација би сада требало да буде онлајн и доступна са интернета. Користећи веб прегледач, повежите се са јавном адресом вашег сервера (наведите порт на којем ГитБуцкет ради, (тј. http://203.0.113.0:8080или http://example.com:8080), и слетећете на ГитБуцкет-ову почетну страницу.
Међутим, потребно је променити лозинку подразумеваног администраторског налога. Да бисте то урадили, пријавите се на администраторски налог преко Sign inдугмета у горњем десном углу веб интерфејса. Подразумевана пријава за администраторски налог је rootза корисничко име, а затим rootпоново за лозинку. Једном када се пријавите, дугме ће бити замењено иконом профила и падајућим менијем. Проширите падајући мени и изаберите Account Settings, а затим поставите нову, сигурнију лозинку у чаробњаку за подешавања налога.
Након што сте ажурирали акредитиве подразумеваног администраторског налога и потврдили да се ГитБуцкет покреће у овој минималној конфигурацији, укините Јава процес са " CTRL+C" и затворите тренутну љуску са exit.
Креирање Системд услуге
Тренутно, ГитБуцкет можемо покренути само тако што ћемо приступити нашем серверу преко ССХ-а и ручно покренути процес из љуске. На срећу, Убунту долази унапред упаковано са Systemd, што нам омогућава да креирамо услугу са којом ће ГитБуцкет бити аутоматски покренут и одржаван од стране система.
Користећи 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
Ова датотека јединице дефинише основно понашање покретања и искључивања за ГитБуцкет и покреће услугу под нашим непривилегованим корисником система на локалном мрежном интерфејсу.
Ако сте променили број порта који ће ГитБуцкет слушати, промените --portаргумент за ExecStartкоманду.
Сачувајте (" CTRL+O") нову јединичну датотеку, а затим изађите из уређивача (" CTRL+X"). Мораћете поново да учитате Системд да би се открила нова датотека јединице.
sudo systemctl daemon-reload
Након што се Системд поново учита, проверите да ли је нова јединица откривена и учитана.
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
Када се услуга покрене, моћи ћете поново да приступите ГитБуцкету из свог претраживача користећи ИП адресу и број порта.
Конфигурисање Нгинк обрнутог проксија
Док се ГитБуцкет може изложити директно преко порта 8080, можете побољшати перформансе и конфигурисати функције као што су ХТТП/2, ТЛС шифровање и правила кеширања тако што ћете изложити ГитБуцкет кроз Нгинк.
Почетно подешавање Нгинк-а
Ако већ нисте инсталирали Нгинк, ажурирајте своје листе пакета.
sudo apt update
Затим инсталирајте Нгинк пакет.
sudo apt install nginx
Када се Нгинк инсталира, проверите да ли можете да приступите веб серверу преко ИП адресе вашег сервера без броја порта (тј. http://203.0.113.0или http://example.com). Ако успе, видећете подразумевану Нгинк одредишну страницу за Убунту.
Креирање обрнутог проксија
Копираћемо подразумевану конфигурацију сајта /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;
}
Тренутно, Нгинк ће покушати да врати датотеке које се налазе у /var/www/htmlкојима се подударају долазни HTTPзахтеви. Мораћемо да променимо ово понашање тако што ћемо конфигурисати обрнути прокси у овом блоку, који ће уместо тога слати све ХТТП захтеве упућене нашем Нгинк серверу ГитБуцкет инстанци. Ажурирајте 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;
}
Ако сте променили број порта који ће ГитБуцкет слушати, ажурирајте 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
Затим поново покрените Нгинк сервер да бисте омогућили нашу нову конфигурацију сајта.
sudo systemctl restart nginx
Сада би требало да будете у могућности да приступите својој ГитБуцкет инсталацији на јавној адреси вашег сервера без броја порта.
Обезбеђивање ГитБуцкет процеса са јавног интернета
Тренутно, наша ГитБуцкет инстанца слуша на јавном мрежном интерфејсу нашег сервера . Ово ће омогућити корисницима да заобиђу Нгинк проки повезивањем на адресу коју ГитБуцкет тренутно слуша, што је вероватно нежељено. Мораћемо да изменимо јединичну датотеку коју смо раније креирали да бисмо ово решили. Отворите датотеку јединице помоћу 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
...
Ово ће довести до тога да ГитБуцкет прихвата само везе на интерфејсу локалне мреже нашег сервера. Још једном, сачувајте (" CTRL+O") датотеку, затворите (" CTRL+X") уређивач, поново учитајте Системд и поново покрените нашу ГитБуцкет јединицу.
sudo systemctl daemon-reload
sudo systemctl restart gitbucket
Ако користите Вултров заштитни зид, требало би да уклоните и сва правила порта која сте додали за приступ ГитБуцкет серверу током почетног подешавања.