Jak zainstalować GitBucket na Ubuntu 16.04

Ten przewodnik obejmuje podstawową instalację i konfigurację GitBucket dla instancji Vultr z systemem Ubuntu 16.04 i zakłada, że ​​wykonujesz polecenia jako non-rootużytkownik.

Wymagania wstępne

  • Instancja serwera Vultr z co najmniej 1 GB pamięci RAM (mniejsze instancje mogą działać, choć wolno).
  • openjdk-8-jre Wymagane, starsze wersje nie będą działać.
  • wget Służy do pobierania pakietu GitBucket.
  • nginx Opcjonalnie, zapewnia zwrotne proxy do GitBucket
  • systemd Zarządza uruchamianiem i zatrzymywaniem procesu GitBucket

Instalowanie wymagań wstępnych

GitBucket wymaga zainstalowania Java 8 lub nowszej wersji na twoim serwerze. Jeśli jeszcze nie zainstalowałeś Java 8, najpierw zaktualizuj lokalne listy pakietów.

sudo apt update

Następnie zainstaluj pakiet środowiska wykonawczego Java 8.

sudo apt install openjdk-8-jre

Instalowanie GitBucket

Tworzenie nieuprzywilejowanego użytkownika

Musimy utworzyć nieuprzywilejowanego użytkownika, aby uruchomić GitBucket, zanim przejdziemy dalej. Uruchamianie GitBucket przez nieuprzywilejowanego użytkownika ogranicza naszą instalację do pisania poza własnym katalogiem danych, co zwiększa bezpieczeństwo twojego serwera. Uruchom następujące polecenie, aby utworzyć użytkownika systemu o nazwie gitbucket.

sudo adduser --system gitbucket

Ponieważ stworzyliśmy użytkownika systemu , domyślną powłoką jest /bin/falsei zostaniemy przeniesieni do naszej obecnej powłoki, chyba że podamy dodatkowy argument powłoki podczas działania su. Zaloguj się do nowo utworzonego użytkownika.

sudo su - gitbucket -s /bin/bash

Monit powłoki powinien się zmienić i nastąpi zalogowanie do nowego użytkownika systemu.

Pobieranie / aktualizowanie GitBucket

Przejdź do strony z wydaniami GitBucket i znajdź najnowszą dostępną wersję. Skopiuj adres URL gitbucket.warpakietu, sprawdź, czy znajdujesz się w katalogu domowym nowego użytkownika i pobierz go za pomocą wget.

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

Musisz powtórzyć ten krok za każdym razem, gdy chcesz zaktualizować pakiet GitBucket.

Początkowa konfiguracja GitBucket

Po pobraniu pakietu będziemy musieli ręcznie uruchomić GitBucket, aby przeprowadzić wstępną konfigurację.

java -jar gitbucket.war --port 8080

Jeśli port 8080jest już zajęty przez inny proces, możesz zmienić port, na którym GitBucket będzie nasłuchiwał. Ten przewodnik zakłada, że ​​GitBucket nasłuchuje na porcie8080 .

Spowoduje to uruchomienie GitBucket w interfejsie sieci publicznej serwera, nasłuchując na określonym porcie. Po chwili powinna pojawić się następująca wiadomość.

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

Jeśli korzystasz z zapory sieciowej Vultr , musisz otworzyć port, na którym nasłuchuje GitBucket, ponieważ zapora sieciowa Vultr działa jako biała lista, odrzucając ruch, aby zezwolić na porty, chyba że określono inaczej.

Twoja instalacja GitBucket powinna by�� teraz online i dostępna z Internetu. Za pomocą przeglądarki internetowej połącz się z adresem publicznym swojego serwera (upewnij się, że podałeś port, na którym działa GitBucket, tj. http://203.0.113.0:8080Lub http://example.com:8080), a wylądujesz na stronie głównej GitBucket.

Jednak hasło domyślnego konta administratora musi zostać zmienione. Aby to zrobić, zaloguj się na konto administratora za pomocą Sign inprzycisku w prawym górnym rogu interfejsu internetowego. Domyślny login konta administratora to rootnazwa użytkownika, a następnie roothasło. Po zalogowaniu przycisk zostanie zastąpiony ikoną profilu i rozwijaną listą. Rozwiń listę rozwijaną i wybierz Account Settings, a następnie ustaw nowe, bezpieczniejsze hasło w kreatorze ustawień konta.

Po zaktualizowaniu poświadczeń domyślnego konta administratora i sprawdzeniu, czy GitBucket uruchamia się w tej minimalnej konfiguracji, zabij proces Java za pomocą „ CTRL+C” i zamknij bieżącą powłokę za pomocą exit.

Tworzenie usługi Systemd

Obecnie możemy uruchomić GitBucket tylko poprzez dostęp do naszego serwera przez SSH i ręczne uruchomienie procesu z powłoki. Na szczęście Ubuntu jest Systemdfabrycznie zapakowane , dzięki czemu możemy stworzyć usługę, dzięki której GitBucket będzie automatycznie uruchamiany i obsługiwany przez system.

Za pomocą nanoutwórz nowy plik jednostki w /etc/systemd/systemkatalogu.

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

Następnie skopiuj następującą zawartość do pliku.

[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

Ten plik jednostkowy definiuje podstawowe zachowanie GitBucket podczas uruchamiania i zamykania oraz uruchamia usługę pod naszym nieuprzywilejowanym użytkownikiem systemu na interfejsie sieciowym tylko lokalnym.

Jeśli zmieniłeś numer portu, na którym nasłuchuje GitBucket, zmień --portargument ExecStartpolecenia.

Zapisz („ CTRL+O”) nowy plik jednostki, a następnie zamknij edytor („ CTRL+X”). Będziesz musiał ponownie załadować Systemd, aby nowy plik jednostki został wykryty.

sudo systemctl daemon-reload

Po ponownym załadowaniu Systemd sprawdź, czy nowa jednostka została wykryta i załadowana.

sudo systemctl status gitbucket

Powinieneś zobaczyć następujące dane wyjściowe.

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

Wreszcie, włącz automatyczne uruchamianie nowego urządzenia po uruchomieniu serwera, a następnie uruchom usługę po raz pierwszy.

sudo systemctl enable gitbucket
sudo systemctl start gitbucket

Po uruchomieniu usługi będziesz mógł uzyskać dostęp do GitBucket z poziomu przeglądarki za pomocą adresu IP i numeru portu.

Konfigurowanie odwrotnego proxy Nginx

Chociaż można udostępnić GitBucket bezpośrednio przez port 8080, można poprawić wydajność i skonfigurować funkcje, takie jak HTTP / 2, szyfrowanie TLS i reguły buforowania, udostępniając GitBucket przez Nginx.

Początkowa konfiguracja Nginx

Jeśli jeszcze nie zainstalowałeś Nginx, zaktualizuj listy pakietów.

sudo apt update

Następnie zainstaluj pakiet Nginx.

sudo apt install nginx

Po zainstalowaniu Nginx sprawdź, czy możesz uzyskać dostęp do serwera internetowego za pośrednictwem adresu IP swojego serwera bez numeru portu (tj. http://203.0.113.0Lub http://example.com). Jeśli się powiedzie, zobaczysz domyślną stronę docelową Nginx dla Ubuntu.

Tworzenie odwrotnego proxy

Będziemy kopiować domyślną konfigurację witryny /etc/nginx/sites-availablejako punkt wyjścia dla odwrotnego proxy.

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

Otwórz nowo utworzony plik konfiguracyjny za pomocą nano.

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

Znajdź istniejący location /blok na linii 43.

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

Obecnie Nginx podejmie próbę zwrócenia plików, w /var/www/htmlktórych pasują przychodzące HTTPżądania. Będziemy musieli zmienić to zachowanie, konfigurując zwrotny serwer proxy w tym bloku, który zamiast tego wyśle ​​wszystkie żądania HTTP wysłane do naszego serwera Nginx do instancji GitBucket. Zaktualizuj location /blok, aby pasował do następujących.

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;
}

Jeśli zmieniłeś numer portu, na którym GitBucket będzie nasłuchiwał, zaktualizuj proxy_passopcję, aby to odzwierciedlić.

Aby włączyć naszą nową konfigurację, musisz wyłączyć istniejącą konfigurację domyślną w /etc/nginx/sites-enabled, a następnie dowiązać naszą nową konfigurację do /etc/nginx/sites-enablednastępujących.

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

Po włączeniu pliku konfiguracyjnego sprawdź, czy nie występują błędy składniowe.

sudo nginx -t

Następnie zrestartuj serwer Nginx, aby włączyć naszą nową konfigurację witryny.

sudo systemctl restart nginx

Powinieneś teraz mieć dostęp do instalacji GitBucket na publicznym adresie serwera bez numeru portu.

Zabezpieczanie procesu GitBucket przed publicznym Internetem

Obecnie nasza instancja GitBucket nasłuchuje na interfejsie sieci publicznej naszego serwera . Pozwoli to użytkownikom ominąć serwer proxy Nginx, łącząc się z adresem, na którym nasłuchuje GitBucket, co prawdopodobnie jest niepożądane. Będziemy musieli zmodyfikować plik jednostki, który utworzyliśmy wcześniej, aby rozwiązać ten problem. Otwórz plik jednostki za pomocą nano.

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

Dołącz --host 127.0.0.1do ExecStartpolecenia, w ten sposób.

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

Spowoduje to, że GitBucket będzie akceptować połączenia tylko w interfejsie sieci lokalnej naszego serwera. Ponownie zapisz („ CTRL+O”) plik, zamknij („ CTRL+X”) edytor, załaduj ponownie Systemd i uruchom ponownie naszą jednostkę GitBucket.

sudo systemctl daemon-reload
sudo systemctl restart gitbucket

Jeśli używasz Zapory Vultr, powinieneś również usunąć wszelkie dodane reguły portów, aby uzyskać dostęp do serwera GitBucket podczas początkowej konfiguracji.



Leave a Comment

Funkcjonalności warstw architektury referencyjnej Big Data

Funkcjonalności warstw architektury referencyjnej Big Data

Przeczytaj blog, aby w najprostszy sposób poznać różne warstwy w architekturze Big Data i ich funkcjonalności.

Rewolucyjne wynalazki Google, które ułatwią Twoje życie.

Rewolucyjne wynalazki Google, które ułatwią Twoje życie.

Chcesz zobaczyć rewolucyjne wynalazki Google i jak te wynalazki zmieniły życie każdego człowieka dzisiaj? Następnie czytaj na blogu, aby zobaczyć wynalazki Google.

13 komercyjnych narzędzi do ekstrakcji danych z Big Data

13 komercyjnych narzędzi do ekstrakcji danych z Big Data

13 komercyjnych narzędzi do ekstrakcji danych z Big Data

Pozostań w kontakcie dzięki aplikacji WhatsApp na komputer 24*7

Pozostań w kontakcie dzięki aplikacji WhatsApp na komputer 24*7

Whatsapp w końcu uruchomił aplikację Desktop dla użytkowników komputerów Mac i Windows. Teraz możesz łatwo uzyskać dostęp do Whatsapp z systemu Windows lub Mac. Dostępne dla Windows 8+ i Mac OS 10.9+

5 przykładów, które dowodzą, że energetyka jądrowa nie zawsze jest zła

5 przykładów, które dowodzą, że energetyka jądrowa nie zawsze jest zła

Energia jądrowa jest zawsze pogardzana, nigdy jej nie szanujemy z powodu przeszłych wydarzeń, ale nie zawsze jest zła. Przeczytaj post, aby dowiedzieć się więcej na ten temat.

Friday Essential: Co się stało z samochodami sterowanymi przez sztuczną inteligencję?

Friday Essential: Co się stało z samochodami sterowanymi przez sztuczną inteligencję?

Koncepcja autonomicznych samochodów, które wyjadą na drogi za pomocą sztucznej inteligencji, to marzenie, które mamy już od jakiegoś czasu. Ale pomimo kilku obietnic nigdzie ich nie widać. Przeczytaj ten blog, aby dowiedzieć się więcej…

Czy AI może walczyć z rosnącą liczbą ataków ransomware?

Czy AI może walczyć z rosnącą liczbą ataków ransomware?

Wzrasta liczba ataków ransomware, ale czy sztuczna inteligencja może pomóc w radzeniu sobie z najnowszym wirusem komputerowym? Czy AI jest odpowiedzią? Przeczytaj tutaj, wiedz, że sztuczna inteligencja jest zmorą lub zgubą

5 przydatnych narzędzi sztucznej inteligencji, które uproszczą Twoje życie

5 przydatnych narzędzi sztucznej inteligencji, które uproszczą Twoje życie

Sztuczna inteligencja nie jest dla ludzi nową nazwą. Ponieważ sztuczna inteligencja jest włączona do każdego strumienia, jednym z nich jest opracowywanie narzędzi zwiększających ludzką wydajność i dokładność. Skorzystaj z tych niesamowitych narzędzi uczenia maszynowego i uprość swoje codzienne zadania.

Wgląd w 26 technik analizy Big Data: część 2

Wgląd w 26 technik analizy Big Data: część 2

Zawsze potrzebujemy Big Data Analytics do efektywnego zarządzania danymi. W tym artykule omówiliśmy kilka technik analizy Big Data. Sprawdź ten artykuł.

Ataki DDOS: krótki przegląd

Ataki DDOS: krótki przegląd

Czy jesteś również ofiarą ataków DDOS i nie masz pewności co do metod zapobiegania? Przeczytaj ten artykuł, aby rozwiązać swoje pytania.