GitBucket Ubuntu 16.04 Kurulumu

Bu kılavuz, Ubuntu 16.04 çalıştıran bir Vultr örneği için GitBucket'in temel kurulumunu ve kurulumunu kapsar ve komutları non-rootkullanıcı olarak yürüttüğünüzü varsayar .

Ön şartlar

  • En az 1GB RAM'e sahip bir Vultr sunucusu örneği (daha küçük örnekler yavaş da olsa çalışabilir).
  • openjdk-8-jre Gerekli, eski sürümler çalışmaz.
  • wget GitBucket paketini indirmek için kullanılır.
  • nginx İsteğe bağlı, GitBucket'e ters proxy sağlar
  • systemd GitBucket işleminin başlatılmasını ve durdurulmasını yönetir

Önkoşulları yükleme

GitBucket, sunucunuza Java 8 veya daha yeni bir sürümün yüklenmesini gerektirir. Java 8'i henüz yüklemediyseniz, önce yerel paket listelerinizi güncelleyin.

sudo apt update

Ardından Java 8 çalışma zamanı paketini yükleyin.

sudo apt install openjdk-8-jre

GitBucket'i Yükleme

Ayrıcalıklı olmayan bir kullanıcı oluşturma

Gitmeden önce GitBucket'i çalıştırmak için ayrıcalıklı bir kullanıcı oluşturmamız gerekecek. GitBucket'i ayrıcalıklı bir kullanıcı altında çalıştırmak, kurulumumuzun kendi veri dizininin dışında yazmasını ve sunucunuzun güvenliğini güçlendirmesini kısıtlar. Adlı bir sistem kullanıcısı oluşturmak için aşağıdaki komutu çalıştırın gitbucket.

sudo adduser --system gitbucket

Bir sistem kullanıcısı oluşturduğumuz için , varsayılan kabuk şu /bin/falseşekildedir ve çalıştırırken ek bir kabuk argümanı sağlamadıkça mevcut kabuğumuza geri döneceğiz su. Yeni oluşturulan kullanıcıya giriş yapın.

sudo su - gitbucket -s /bin/bash

Kabuğunuzun istemi değişmeli ve yeni sistem kullanıcısına giriş yapacaksınız.

GitBucket'i İndirme / Güncelleme

GitBucket sürümleri sayfasına gidin ve mevcut en son sürümü bulun. gitbucket.warPaketin URL'sini kopyalayın, yeni kullanıcının ana dizininde olduğunuzu doğrulayın ve ile indirin wget.

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

GitBucket paketini her güncellemek istediğinizde bu adımı tekrarlamanız gerekecektir.

İlk GitBucket yapılandırması

Paket indirildikten sonra, ilk yapılandırmayı gerçekleştirmek için GitBucket'i manuel olarak başlatmamız gerekecek.

java -jar gitbucket.war --port 8080

Bağlantı noktası 8080zaten başka bir işlem tarafından alındıysa, GitBucket'in şimdi dinleyeceği bağlantı noktasını değiştirebilirsiniz. Bu kılavuzda GitBucket'in bağlantı noktasında dinlediği varsayılmaktadır8080 .

Bu, GitBucket'i sunucunuzun genel ağ arabiriminde belirtilen bağlantı noktasını dinleyerek başlatır. Birkaç dakika sonra aşağıdaki mesajı görmelisiniz.

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

Vultr'un güvenlik duvarını kullanıyorsanız, Vultr'un güvenlik duvarı beyaz liste olarak çalıştığı için GitBucket'in dinlediği bağlantı noktasını açmanız ve aksi belirtilmedikçe bağlantı noktalarına izin vermek için trafiği reddetmeniz gerekir.

GitBucket kurulumunuz artık çevrimiçi olmalı ve İnternet'ten erişilebilir olmalıdır. Bir web tarayıcısı kullanarak sunucunuzun genel adresine bağlanın (GitBucket'in çalıştığı bağlantı noktasını belirttiğinizden emin olun (yani http://203.0.113.0:8080veya http://example.com:8080) ve GitBucket'in ana sayfasına inersiniz).

Ancak, varsayılan yönetici hesabının parolasının değiştirilmesi gerekir. Bunu yapmak için, Sign inweb arayüzünün sağ üst köşesindeki düğmeyi kullanarak yönetici hesabına giriş yapın . Yönetici hesabı için varsayılan oturum açma rootadı kullanıcı adı ve sonra roottekrar parola içindir. Giriş yaptıktan sonra, düğme bir profil simgesi ve açılır menü ile değiştirilecektir. Açılır menüyü genişletin ve öğesini seçin Account Settings, ardından hesap ayarları sihirbazında yeni, daha güvenli bir şifre belirleyin.

Varsayılan yönetici hesabının kimlik bilgilerini güncelledikten ve GitBucket'in bu minimum yapılandırmada başladığını doğruladıktan sonra, Java işlemini " CTRL+C" ile öldürün ve geçerli kabuğu ile kapatın exit.

Systemd hizmetini oluşturma

Şu anda GitBucket'i yalnızca sunucumuza SSH üzerinden erişerek ve işlemi bir kabuktan manuel olarak başlatarak çalıştırabiliriz. Neyse ki, Ubuntu Systemdönceden paketlenmiş olarak geliyor ve GitBucket'in sistem tarafından otomatik olarak başlatılacağı ve bakımının yapılacağı bir hizmet oluşturmamıza izin verdi.

Kullanarak nano, /etc/systemd/systemdizinde yeni bir birim dosyası oluşturun .

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

Ardından, aşağıdaki içerikleri dosyaya kopyalayın.

[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

Bu birim dosyası GitBucket için temel başlatma ve kapatma davranışını tanımlar ve hizmeti yalnızca yerel ağ arabirimindeki ayrıcalıksız sistem kullanıcısı altında çalıştırır.

GitBucket'in dinleyeceği port numarasını değiştirdiyseniz --port, ExecStartkomutun argümanını değiştirin .

CTRL+OYeni birim dosyasını kaydedin (" ") ve ardından editörden (" CTRL+X") çıkın . Yeni birim dosyasının bulunması için Systemd'i yeniden yüklemeniz gerekecektir.

sudo systemctl daemon-reload

Systemd yeniden yüklendikten sonra, yeni birimin keşfedildiğini ve yüklendiğini doğrulayın.

sudo systemctl status gitbucket

Aşağıdaki çıktıyı görmelisiniz.

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

Son olarak, sunucunuz önyüklendiğinde yeni birimin otomatik olarak başlamasını etkinleştirin ve ardından hizmeti ilk kez başlatın.

sudo systemctl enable gitbucket
sudo systemctl start gitbucket

Hizmet başladıktan sonra, IP adresini ve bağlantı noktası numarasını kullanarak tarayıcınızdan GitBucket'e erişebileceksiniz.

Nginx ters proxy'sini yapılandırma

GitBucket'i doğrudan bağlantı noktası üzerinden 8080gösterebilirken, GitBucket'i Nginx aracılığıyla göstererek performansı artırabilir ve HTTP / 2, TLS şifrelemesi ve önbellek kuralları gibi özellikleri yapılandırabilirsiniz.

İlk Nginx kurulumu

Nginx'i henüz yüklemediyseniz, paket listelerinizi güncelleyin.

sudo apt update

Ardından Nginx paketini yükleyin.

sudo apt install nginx

Nginx kurulduktan sonra, web sunucusuna port numarası (yani veya ) olmadan sunucunuzun IP adresi üzerinden erişebildiğinizi doğrulayın . Başarılı olursa, Ubuntu için varsayılan Nginx açılış sayfasını göreceksiniz.http://203.0.113.0http://example.com

Ters proxy oluşturma

Varsayılan site yapılandırmasını /etc/nginx/sites-availableters proxy için başlangıç ​​noktası olarak kopyalayacağız .

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

Yeni oluşturulan yapılandırma dosyasını ile açın nano.

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

location /43 numaralı satırdaki mevcut bloğu bulun .

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

Şu anda, Nginx /var/www/htmlgelen HTTPisteklerle eşleşen dosyaları geri döndürmeye çalışacaktır . Bu bloğu, Nginx sunucumuza yapılan tüm HTTP isteklerini GitBucket örneğine gönderecek bir ters proxy yapılandırarak bu davranışı değiştirmemiz gerekecek. location /Bloğu aşağıdakilerle eşleşecek şekilde güncelleyin .

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'in dinleyeceği bağlantı noktası numarasını değiştirdiyseniz, proxy_passbunu yansıtacak seçeneği güncelleyin .

Yeni yapılandırmamızı etkinleştirmek için, içindeki mevcut varsayılan yapılandırmayı devre dışı bırakmanız /etc/nginx/sites-enabledve ardından yeni yapılandırmamızı /etc/nginx/sites-enabledaşağıdakilere bağlamanız gerekir .

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

Yapılandırma dosyası etkinleştirildikten sonra, sözdizimi hatalarını kontrol edin.

sudo nginx -t

Ardından, yeni site yapılandırmamızı etkinleştirmek için Nginx sunucusunu yeniden başlatın.

sudo systemctl restart nginx

Artık GitBucket kurulumunuza, port numarası olmadan sunucunuzun genel adresinden erişebilmelisiniz .

GitBucket işleminin genel internetten güvenliğini sağlama

Şu anda GitBucket örneğimiz sunucumuzun genel ağ arayüzünü dinliyor . Bu, GitBucket'in şu anda dinlediği adrese bağlanarak büyük olasılıkla istenmeyen Nginx proxy'sini atlamasına olanak tanır. Bunu çözmek için daha önce oluşturduğumuz birim dosyasını değiştirmemiz gerekecek. Birim dosyasını ile açın nano.

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

Ekleme --host 127.0.0.1için ExecStartkomutu şöyle.

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

Bu GitBucket'in yalnızca sunucumuzun yerel ağ arayüzündeki bağlantıları kabul etmesine neden olur. Bir kez daha dosyayı kaydedin (" CTRL+O") CTRL+X, düzenleyiciyi kapatın (" "), Systemd'i yeniden yükleyin ve GitBucket birimimizi yeniden başlatın.

sudo systemctl daemon-reload
sudo systemctl restart gitbucket

Vultr'un Güvenlik Duvarı'nı kullanıyorsanız, ilk kurulum sırasında GitBucket sunucusuna erişmek için eklediğiniz bağlantı noktası kurallarını da kaldırmalısınız.



Leave a Comment

26 Büyük Veri Analitik Tekniğine Bir Bakış: 1. Bölüm

26 Büyük Veri Analitik Tekniğine Bir Bakış: 1. Bölüm

26 Büyük Veri Analitik Tekniğine Bir Bakış: 1. Bölüm

Nintendo Switch Hakkında Son Derece Çılgın 6 Şey

Nintendo Switch Hakkında Son Derece Çılgın 6 Şey

Birçoğunuz Switch'in Mart 2017'de çıkacağını ve yeni özelliklerini biliyorsunuz. Bilmeyenler için, 'Switch'i 'olmazsa olmaz bir gadget' yapan özelliklerin bir listesini hazırladık.

Hala Teslim Edilmeyen Teknoloji Sözleri

Hala Teslim Edilmeyen Teknoloji Sözleri

Teknoloji devlerinin sözlerini yerine getirmesini mi bekliyorsunuz? teslim edilmeyenleri kontrol edin.

Büyük Veri Referans Mimarisi Katmanlarının İşlevleri

Büyük Veri Referans Mimarisi Katmanlarının İşlevleri

Büyük Veri Mimarisindeki farklı katmanları ve işlevlerini en basit şekilde öğrenmek için blogu okuyun.

Yapay Zeka Süreç Otomasyonunu Nasıl Bir Sonraki Seviyeye Taşıyabilir?

Yapay Zeka Süreç Otomasyonunu Nasıl Bir Sonraki Seviyeye Taşıyabilir?

Yapay Zekanın küçük ölçekli şirketler arasında nasıl popüler hale geldiğini ve onları büyütme ve rakiplerine üstünlük sağlama olasılıklarını nasıl artırdığını öğrenmek için bunu okuyun.

CAPTCHA: İnsan-AI Ayrımı İçin Ne Kadar Geçerli Bir Teknik Kalabilir?

CAPTCHA: İnsan-AI Ayrımı İçin Ne Kadar Geçerli Bir Teknik Kalabilir?

CAPTCHA, son birkaç yılda kullanıcıların çözmesi oldukça zorlaştı. Gelecekte spam ve bot tespitinde etkili kalabilecek mi?

Teknolojik Tekillik: İnsan Uygarlığının Uzak Bir Geleceği mi?

Teknolojik Tekillik: İnsan Uygarlığının Uzak Bir Geleceği mi?

Bilim hızla gelişip birçok çabamızı üstlendikçe, kendimizi açıklanamaz bir Tekilliğe maruz bırakmanın riskleri de artıyor. Okuyun, tekillik bizim için ne anlama gelebilir.

Teletıp ve Uzaktan Sağlık Hizmeti: Gelecek Burada

Teletıp ve Uzaktan Sağlık Hizmeti: Gelecek Burada

Teletıp, uzaktan sağlık hizmetleri ve gelecek nesiller üzerindeki etkisi nedir? Pandemi durumunda iyi bir yer mi değil mi? Bir görünüm bulmak için blogu okuyun!

Hackerların Nasıl Para Kazandığını Hiç Merak Ettiniz mi?

Hackerların Nasıl Para Kazandığını Hiç Merak Ettiniz mi?

Bilgisayar korsanlarının çok para kazandığını duymuş olabilirsiniz, ancak bu kadar parayı nasıl kazandıklarını hiç merak ettiniz mi? Hadi tartışalım.

macOS Catalina 10.15.4 Ek Güncellemesi Çözmekten Daha Fazla Soruna Neden Oluyor

macOS Catalina 10.15.4 Ek Güncellemesi Çözmekten Daha Fazla Soruna Neden Oluyor

Son zamanlarda Apple, sorunları gidermek için macOS Catalina 10.15.4'ü ek bir güncelleme yayınladı, ancak güncelleme, mac makinelerinde tuğla oluşmasına neden olan daha fazla soruna neden oluyor gibi görünüyor. Daha fazla bilgi edinmek için bu makaleyi okuyun