Cara Memasang GitBucket di Ubuntu 16.04

Panduan ini mencakup instalasi dasar dan pengaturan GitBucket untuk instance Vultr yang menjalankan Ubuntu 16.04, dan mengasumsikan bahwa Anda menjalankan perintah sebagai non-rootpengguna.

Prasyarat

  • Mesin virtual server Vultr dengan setidaknya 1GB RAM (mesin virtual yang lebih kecil mungkin berfungsi, meskipun lambat).
  • openjdk-8-jre Diperlukan, versi yang lebih lama tidak akan berfungsi.
  • wget Digunakan untuk mengunduh paket GitBucket.
  • nginx Opsional, memberikan proksi terbalik ke GitBucket
  • systemd Mengelola memulai dan menghentikan proses GitBucket

Menginstal prasyarat

GitBucket membutuhkan Java 8 atau yang lebih baru untuk diinstal di server Anda. Jika Anda belum menginstal Java 8, perbarui daftar paket lokal Anda terlebih dahulu.

sudo apt update

Kemudian instal paket runtime Java 8.

sudo apt install openjdk-8-jre

Menginstal GitBucket

Menciptakan pengguna yang tidak memiliki hak

Kami harus membuat pengguna yang tidak memiliki hak istimewa untuk menjalankan GitBucket sebelum melangkah lebih jauh. Menjalankan GitBucket di bawah pengguna yang tidak berhak membatasi instalasi kami dari menulis di luar direktori data sendiri, memperkuat keamanan server Anda. Jalankan perintah berikut untuk membuat pengguna sistem yang disebut gitbucket.

sudo adduser --system gitbucket

Karena kami membuat pengguna sistem , shell default adalah /bin/false, dan kami akan ditendang kembali ke shell kami saat ini kecuali kami memberikan argumen shell tambahan saat berjalan su. Login ke pengguna yang baru dibuat.

sudo su - gitbucket -s /bin/bash

Prompt shell Anda harus berubah, dan Anda akan masuk ke pengguna sistem yang baru.

Mengunduh / Memperbarui GitBucket

Arahkan ke halaman rilis GitBucket dan temukan versi terbaru yang tersedia. Salin URL untuk gitbucket.warpaket, verifikasi Anda berada di direktori home pengguna baru, dan unduh dengan wget.

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

Anda harus mengulangi langkah ini setiap kali Anda ingin memperbarui paket GitBucket.

Konfigurasi GitBucket awal

Setelah paket diunduh, kita perlu menjalankan GitBucket secara manual untuk melakukan beberapa konfigurasi awal.

java -jar gitbucket.war --port 8080

Jika port 8080sudah diambil oleh proses lain, Anda dapat mengubah port yang akan didengarkan GitBucket sekarang. Panduan ini mengasumsikan bahwa GitBucket mendengarkan pada port8080 .

Ini akan memulai GitBucket pada antarmuka jaringan publik server Anda, mendengarkan pada port yang ditentukan. Anda akan melihat, setelah beberapa saat, pesan berikut.

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

Jika Anda menggunakan firewall Vultr , Anda harus membuka port yang sedang didengarkan GitBucket, karena firewall Vultr berfungsi sebagai daftar putih, menolak lalu lintas untuk mengizinkan port kecuali ditentukan lain.

Instalasi GitBucket Anda sekarang harus online dan dapat diakses dari internet. Dengan menggunakan browser web, sambungkan ke alamat publik server Anda (pastikan untuk menentukan port tempat GitBucket aktif, (yaitu http://203.0.113.0:8080atau http://example.com:8080), dan Anda akan mendarat di beranda GitBucket.

Namun, kata sandi akun administrator default perlu diubah. Untuk melakukannya, masuk ke akun administrator melalui Sign intombol di kanan atas antarmuka web. Login default untuk akun administrator adalah rootuntuk nama pengguna, dan sekali rootlagi untuk kata sandi. Setelah masuk, tombol akan diganti dengan ikon profil dan drop-down. Luaskan drop-down dan pilih Account Settings, lalu atur kata sandi baru yang lebih aman di panduan pengaturan akun.

Setelah Anda memperbarui kredensial akun administrator default dan memverifikasi bahwa GitBucket mulai dalam konfigurasi minimal ini, matikan proses Java dengan " CTRL+C" dan tutup shell yang sekarang exit.

Menciptakan layanan Systemd

Saat ini, kami hanya dapat menjalankan GitBucket dengan mengakses server kami melalui SSH dan memulai proses dari shell secara manual. Untungnya, Ubuntu sudah dipaket sebelumnya Systemd, memungkinkan kami untuk membuat layanan yang dengannya GitBucket akan dimulai secara otomatis dan dikelola oleh sistem.

Menggunakan nano, buat file unit baru di /etc/systemd/systemdirektori.

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

Kemudian, salin konten berikut ke dalam file.

[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

File unit ini mendefinisikan startup dasar dan perilaku shutdown untuk GitBucket, dan menjalankan layanan di bawah pengguna sistem kami yang tidak terjangkau pada antarmuka jaringan khusus-lokal.

Jika Anda telah mengubah nomor port yang akan didengar GitBucket, ubah --portargumen untuk ExecStartperintah tersebut.

Simpan (" CTRL+O") file unit baru dan kemudian keluar dari editor (" CTRL+X"). Anda harus memuat ulang Systemd untuk menemukan file unit baru.

sudo systemctl daemon-reload

Setelah Systemd memuat ulang, verifikasi bahwa unit baru ditemukan dan dimuat.

sudo systemctl status gitbucket

Anda akan melihat output berikut.

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

Terakhir, aktifkan unit baru untuk mulai secara otomatis ketika server Anda melakukan boot, dan kemudian mulai layanan untuk pertama kalinya.

sudo systemctl enable gitbucket
sudo systemctl start gitbucket

Setelah layanan dimulai, Anda akan dapat mengakses GitBucket dari browser Anda menggunakan alamat IP dan nomor port lagi.

Mengkonfigurasi Nginx reverse proxy

Meskipun seseorang dapat mengekspos GitBucket secara langsung melalui port 8080, Anda dapat meningkatkan kinerja dan mengkonfigurasi fitur-fitur seperti HTTP / 2, enkripsi TLS, dan aturan caching dengan mengekspos GitBucket melalui Nginx.

Pengaturan awal Nginx

Jika Anda belum menginstal Nginx, perbarui daftar paket Anda.

sudo apt update

Kemudian instal paket Nginx.

sudo apt install nginx

Setelah Nginx diinstal, verifikasi Anda dapat mengakses server web melalui alamat IP server Anda tanpa nomor port (yaitu http://203.0.113.0atau http://example.com). Jika berhasil, Anda akan melihat halaman pendaratan Nginx default untuk Ubuntu.

Membuat proksi terbalik

Kami akan menyalin konfigurasi situs default /etc/nginx/sites-availablesebagai titik awal untuk proxy terbalik.

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

Buka file konfigurasi yang baru dibuat dengan nano.

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

Temukan location /blok yang ada pada baris 43.

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

Saat ini, Nginx akan berusaha mengembalikan file yang berada di tempat /var/www/htmlyang cocok dengan HTTPpermintaan yang masuk . Kita perlu mengubah perilaku ini dengan mengkonfigurasi proxy terbalik di blok ini, yang akan mengirim semua permintaan HTTP yang dibuat ke server Nginx kami ke instance GitBucket. Perbarui location /blok untuk mencocokkan yang berikut ini.

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

Jika Anda mengubah nomor port yang akan didengarkan GitBucket, perbarui proxy_passopsi untuk mencerminkan ini.

Untuk mengaktifkan konfigurasi baru kami, Anda harus menonaktifkan konfigurasi default yang ada di /etc/nginx/sites-enabled, kemudian symlink konfigurasi baru kami untuk /etc/nginx/sites-enabledmelalui yang berikut ini.

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

Setelah file konfigurasi diaktifkan, periksa apakah ada kesalahan sintaksis.

sudo nginx -t

Kemudian, restart server Nginx untuk mengaktifkan konfigurasi situs baru kami.

sudo systemctl restart nginx

Anda sekarang dapat mengakses instalasi GitBucket di alamat publik server Anda tanpa nomor port.

Mengamankan proses GitBucket dari internet publik

Saat ini, instance GitBucket kami sedang mendengarkan pada antarmuka jaringan publik server kami . Ini akan memungkinkan pengguna untuk memotong proxy Nginx dengan menghubungkan ke alamat yang sedang didengarkan GitBucket, yang kemungkinan tidak diinginkan. Kita perlu memodifikasi file unit yang kita buat sebelumnya untuk menyelesaikan ini. Buka file unit dengan nano.

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

Tambahkan --host 127.0.0.1ke ExecStartperintah, seperti itu.

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

Ini akan menyebabkan GitBucket hanya menerima koneksi pada antarmuka jaringan lokal server kami. Sekali lagi, simpan (" CTRL+O") file, tutup (" CTRL+X") editor, muat ulang Systemd, dan restart unit GitBucket kami.

sudo systemctl daemon-reload
sudo systemctl restart gitbucket

Jika Anda menggunakan Firewall Vultr, Anda juga harus menghapus aturan port apa pun yang Anda tambahkan untuk mengakses server GitBucket selama penyetelan awal.



Leave a Comment

Wawasan tentang 26 Teknik Analisis Data Besar: Bagian 1

Wawasan tentang 26 Teknik Analisis Data Besar: Bagian 1

Wawasan tentang 26 Teknik Analisis Data Besar: Bagian 1

6 Hal yang Sangat Menggila dari Nintendo Switch

6 Hal yang Sangat Menggila dari Nintendo Switch

Banyak dari Anda tahu Switch keluar pada Maret 2017 dan fitur-fitur barunya. Bagi yang belum tahu, kami sudah menyiapkan daftar fitur yang membuat 'Switch' menjadi 'gadget yang wajib dimiliki'.

Janji Teknologi Yang Masih Belum Ditepati

Janji Teknologi Yang Masih Belum Ditepati

Apakah Anda menunggu raksasa teknologi untuk memenuhi janji mereka? periksa apa yang belum terkirim.

Fungsionalitas Lapisan Arsitektur Referensi Big Data

Fungsionalitas Lapisan Arsitektur Referensi Big Data

Baca blog untuk mengetahui berbagai lapisan dalam Arsitektur Big Data dan fungsinya dengan cara yang paling sederhana.

Bagaimana AI Dapat Membawa Otomatisasi Proses ke Tingkat Selanjutnya?

Bagaimana AI Dapat Membawa Otomatisasi Proses ke Tingkat Selanjutnya?

Baca ini untuk mengetahui bagaimana Kecerdasan Buatan menjadi populer di antara perusahaan skala kecil dan bagaimana hal itu meningkatkan kemungkinan untuk membuat mereka tumbuh dan memberi keunggulan pada pesaing mereka.

CAPTCHA: Berapa Lama Itu Bisa Tetap Menjadi Teknik yang Layak Untuk Perbedaan Human-AI?

CAPTCHA: Berapa Lama Itu Bisa Tetap Menjadi Teknik yang Layak Untuk Perbedaan Human-AI?

CAPTCHA telah berkembang cukup sulit bagi pengguna untuk dipecahkan dalam beberapa tahun terakhir. Apakah itu akan tetap efektif dalam deteksi spam dan bot di masa mendatang?

Singularitas Teknologi: Masa Depan Peradaban Manusia yang Jauh?

Singularitas Teknologi: Masa Depan Peradaban Manusia yang Jauh?

Saat Sains Berkembang dengan kecepatan tinggi, mengambil alih banyak upaya kita, risiko menundukkan diri kita pada Singularitas yang tidak dapat dijelaskan juga meningkat. Baca, apa arti singularitas bagi kita.

Telemedicine Dan Perawatan Kesehatan Jarak Jauh: Masa Depan Ada Di Sini

Telemedicine Dan Perawatan Kesehatan Jarak Jauh: Masa Depan Ada Di Sini

Apa itu telemedicine, perawatan kesehatan jarak jauh dan dampaknya terhadap generasi mendatang? Apakah itu tempat yang bagus atau tidak dalam situasi pandemi? Baca blog untuk menemukan tampilan!

Pernahkah Anda Bertanya-tanya Bagaimana Hacker Menghasilkan Uang?

Pernahkah Anda Bertanya-tanya Bagaimana Hacker Menghasilkan Uang?

Anda mungkin pernah mendengar bahwa peretas menghasilkan banyak uang, tetapi pernahkah Anda bertanya-tanya bagaimana cara mereka mendapatkan uang sebanyak itu? mari berdiskusi.

Pembaruan Tambahan macOS Catalina 10.15.4 Menyebabkan Lebih Banyak Masalah Daripada Menyelesaikan

Pembaruan Tambahan macOS Catalina 10.15.4 Menyebabkan Lebih Banyak Masalah Daripada Menyelesaikan

Baru-baru ini Apple merilis macOS Catalina 10.15.4 pembaruan suplemen untuk memperbaiki masalah tetapi tampaknya pembaruan menyebabkan lebih banyak masalah yang mengarah ke bricking mesin mac. Baca artikel ini untuk mempelajari lebih lanjut