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

CentOS 7de Tavşan Kümesini Kümeleme

CentOS 7de Tavşan Kümesini Kümeleme

RabbitMQ, AMQP, STOMP ve diğer iletişim teknolojilerini destekleyen açık kaynaklı bir mesaj aracısıdır. Kurumsal uygulamalarda yaygın olarak kullanılan bir

Debianda NFS Paylaşımı Ayarla

Debianda NFS Paylaşımı Ayarla

NFS, bilgisayarların bilgisayar ağı üzerindeki dosyalara erişmesine izin veren ağ tabanlı bir dosya sistemidir. Bu kılavuz, klasörleri NF üzerinden nasıl açığa çıkarabileceğinizi açıklar

Bir Fedora 26 LAMP VPSye Directus 6.4 CMS Yükleme

Bir Fedora 26 LAMP VPSye Directus 6.4 CMS Yükleme

Farklı Bir Sistem mi Kullanıyorsunuz? Directus 6.4 CMS, geliştirici sağlayan güçlü ve esnek, ücretsiz ve açık kaynaklı Başsız İçerik Yönetim Sistemidir (CMS)

Ubuntu 16.04 Üzerine Mattermost 5.2 Kurulumu

Ubuntu 16.04 Üzerine Mattermost 5.2 Kurulumu

Farklı Bir Sistem mi Kullanıyorsunuz? Mattermost, Slack SAAS mesajlaşma servisine açık kaynaklı, kendi kendine barındırılan bir alternatiftir. Başka bir deyişle, Mattermost ile,

Linuxta TeamTalk Sunucusu Kurma

Linuxta TeamTalk Sunucusu Kurma

TeamTalk, kullanıcıların yüksek kaliteli sesli / görüntülü konuşmalara, metin sohbetine, dosya aktarımına ve ekranları paylaşmasına olanak tanıyan bir konferans sistemidir. Ben

Pagekit CMSyi CentOS 7ye Yükleme

Pagekit CMSyi CentOS 7ye Yükleme

Farklı Bir Sistem mi Kullanıyorsunuz? Pagekit PHP ile yazılmış açık kaynaklı bir CMSdir. Pagekit kaynak kodu GitHubda herkese açık olarak barındırılıyor. Bu kılavuz size

Kök olmayan kullanıcılara giriş yapmak için SSH anahtarınızı kullanma

Kök olmayan kullanıcılara giriş yapmak için SSH anahtarınızı kullanma

Vultr, yeni bir örnek oluşturduktan sonra SSH anahtarlarını önceden yüklemenizi sağlayan bir özellik sağlar. Bu, sunucu kök kullanıcısına erişmenizi sağlar, ancak

Debian 9da Diaspora ile Sosyal Ağınızı Kurun

Debian 9da Diaspora ile Sosyal Ağınızı Kurun

Farklı Bir Sistem mi Kullanıyorsunuz? Diaspora gizliliğe duyarlı, açık kaynaklı bir sosyal ağdır. Bu derste, bir Diaspora posının nasıl kurulacağını ve yapılandırılacağını öğreneceksiniz

Debian 9 Üzerinde Yakıt CMS Kurulumu

Debian 9 Üzerinde Yakıt CMS Kurulumu

Farklı Bir Sistem mi Kullanıyorsunuz? Fuel CMS, CodeIgniter tabanlı bir içerik yönetim sistemidir. Kaynak kodu GitHubda barındırılmaktadır. Bu kılavuz size

Arch Linux Üzerinde PostgreSQL 11.1 Kurulumu

Arch Linux Üzerinde PostgreSQL 11.1 Kurulumu

Önkoşullar Güncel Arch Linux çalıştıran bir Vultr sunucusu (bu makaleye bakın.) Sudo erişimi. Kök olarak çalıştırılması gereken komutların önüne # ve bir

Ubuntu 16.10 Üzerinde Snipe-IT Kurulumu

Ubuntu 16.10 Üzerinde Snipe-IT Kurulumu

Farklı Bir Sistem mi Kullanıyorsunuz? Snipe-IT, BT varlık yönetimi için ücretsiz ve açık kaynaklı bir web uygulamasıdır. Laravel 5.2 çerçevesi ve kullanımı üzerine yazılmıştır.

SSL / TLS ile vsFTPd Nasıl Güvenli Hale Getirilir

SSL / TLS ile vsFTPd Nasıl Güvenli Hale Getirilir

Çok Güvenli FTP arka plan programı, ya da sadece vsFTPd, özelleştirme yeteneği olan hafif bir yazılım parçasıdır. Bu derste bir müttefikimiz olacak

Linuxta Ranger Terminal Dosya Yöneticisini Yükleme

Linuxta Ranger Terminal Dosya Yöneticisini Yükleme

Ranger, VI anahtar bağlamaları olan komut satırı tabanlı bir dosya yöneticisidir. Dizin hiyerarşisi manzaralı minimalist ve hoş bir curses arayüzü sağlar

Ubuntu 18.04 LTS Kaynaktan Brotli Nasıl Yapılır

Ubuntu 18.04 LTS Kaynaktan Brotli Nasıl Yapılır

Farklı Bir Sistem mi Kullanıyorsunuz? Brotli, GZIPden daha iyi bir sıkıştırma oranına sahip yeni bir sıkıştırma yöntemidir. Kaynak kodu bu Githuda herkese açık olarak barındırılıyor

CentOS 7de Yalnızca SFTP Kullanıcı Hesaplarını Kurma

CentOS 7de Yalnızca SFTP Kullanıcı Hesaplarını Kurma

Belirli durumlarda, Sistem Yöneticisinin bir kullanıcı hesabı oluşturması ve yalnızca kendi dosyalarını sFTP yoluyla yönetmek için erişimini kısıtlaması gerekebilir, ancak b

Ubuntu 16.04 LAMBA VPS Üzerine Omeka Classic 2.4 CMS Kurulumu

Ubuntu 16.04 LAMBA VPS Üzerine Omeka Classic 2.4 CMS Kurulumu

Farklı Bir Sistem mi Kullanıyorsunuz? Omeka Classic 2.4 CMS, digita paylaşımı için ücretsiz ve açık kaynaklı bir dijital yayıncılık platformu ve İçerik Yönetim Sistemidir (CMS)

Arch Linux Üzerinde Nginx 1.14 Kurulumu

Arch Linux Üzerinde Nginx 1.14 Kurulumu

Önkoşullar Güncel Arch Linux çalıştıran bir Vultr sunucusu (bu makaleye bakın.) Sudo erişimi. Kök olarak çalıştırılması gereken komutların başına # işareti gelir. th

Linuxta SSH ile Kök Girişini Devre Dışı Bırakma veya Kısıtlama

Linuxta SSH ile Kök Girişini Devre Dışı Bırakma veya Kısıtlama

SSH üzerinden kök girişine izin vermek, teknoloji endüstrisinde genellikle zayıf bir güvenlik uygulaması olarak kabul edilir. Bunun yerine, hassas yönetim gerçekleştirebilirsiniz

Ubuntu 16.04 Üzerine RabbitMQ Kurulumu

Ubuntu 16.04 Üzerine RabbitMQ Kurulumu

Farklı Bir Sistem mi Kullanıyorsunuz? RabbitMQ, Erlang programlama dilinde yazılmış, yaygın olarak kullanılan açık kaynaklı bir mesaj aracısıdır. Mesaj odaklı bir ara katman yazılımı olarak

CentOS 7de LibreNMS Kullanarak Cihazlarınızı İzleyin

CentOS 7de LibreNMS Kullanarak Cihazlarınızı İzleyin

CentOS 7 üzerinde LibreNMS kullanarak ağ cihazlarınızı etkili bir şekilde izleyin. Ağ izleme için gerekli adımları ve yapılandırmaları öğrenin.

Counter-Strike: Global Offensive Server Nasıl Kurulur?

Counter-Strike: Global Offensive Server Nasıl Kurulur?

Counter-Strike: Global Offensive sunucusu kurmak için gerekli adımlar. Gerekli araçlar ve yükleme süreci hakkında bilgi.

Ubuntu 16.04 LTS Üzerinde OpenNMS Kurulumu

Ubuntu 16.04 LTS Üzerinde OpenNMS Kurulumu

OpenNMS, çok sayıda cihazı izlemek ve yönetmek için kullanılabilen bir açık kaynak ağ yönetim platformudur. Ubuntu 16.04 LTS üzerinde OpenNMS kurulumu için tüm adımları keşfedin.

Ubuntu 16.04te LibreNMS Kullanarak Cihazlarınızı İzleyin

Ubuntu 16.04te LibreNMS Kullanarak Cihazlarınızı İzleyin

Farklı Bir Sistem mi Kullanıyorsunuz? LibreNMS tam özellikli bir açık kaynak ağ izleme sistemidir.

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?