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

Cara Memasang Panel Kontrol Hosting Mudah di Ubuntu 16.04

Cara Memasang Panel Kontrol Hosting Mudah di Ubuntu 16.04

Pelajari langkah-langkah untuk memasang Panel Kontrol Hosting Mudah (EHCP) di Ubuntu 16.04 dengan panduan ini.

Cara Memasang Graylog Server pada CentOS 7

Cara Memasang Graylog Server pada CentOS 7

Menggunakan Sistem yang Berbeda? Graylog server adalah perangkat lunak manajemen log sumber terbuka siap pakai perusahaan. Ia mengumpulkan log dari berbagai sumber dan menganalisis

Cara Memasang Anchor CMS pada Fedora 26 LAMP VPS

Cara Memasang Anchor CMS pada Fedora 26 LAMP VPS

Menggunakan Sistem yang Berbeda? Anchor CMS adalah Content Engine System (CMS) Blog Engine yang super-sederhana dan sangat ringan, gratis, dan terbuka

Siapkan Berbagi NFS di Debian

Siapkan Berbagi NFS di Debian

NFS adalah sistem file berbasis jaringan yang memungkinkan komputer untuk mengakses file di seluruh jaringan komputer. Panduan ini menjelaskan bagaimana Anda dapat mengekspos folder melalui NF

Cara Memasang Directus 6.4 CMS pada Fedora 26 LAMP VPS

Cara Memasang Directus 6.4 CMS pada Fedora 26 LAMP VPS

Menggunakan Sistem yang Berbeda? Directus 6.4 CMS adalah Headless Content Management System (CMS) yang kuat dan fleksibel, gratis dan open source yang menyediakan pengembang

Cara Memasang Mattermost 5.2 di Ubuntu 16.04

Cara Memasang Mattermost 5.2 di Ubuntu 16.04

Menggunakan Sistem yang Berbeda? Mattermost adalah sumber terbuka, alternatif yang di-host-sendiri ke layanan pesan Slack SAAS. Dengan kata lain, dengan Mattermost, Anda ca

Menyiapkan Server TeamTalk di Linux

Menyiapkan Server TeamTalk di Linux

TeamTalk adalah sistem konferensi yang memungkinkan pengguna untuk memiliki percakapan audio / video berkualitas tinggi, obrolan teks, transfer file, dan berbagi layar. Itu saya

Menggunakan kunci SSH Anda untuk masuk ke pengguna non-root

Menggunakan kunci SSH Anda untuk masuk ke pengguna non-root

Vultr menyediakan fitur yang memungkinkan Anda untuk melakukan pra-instal kunci SSH setelah membuat instance baru. Ini memungkinkan Anda untuk mengakses pengguna root server, namun, th

Cara Menginstal PostgreSQL 11.1 Di Arch Linux

Cara Menginstal PostgreSQL 11.1 Di Arch Linux

Prasyarat Server Vultr berjalan terbaru Arch Linux (lihat artikel ini.) Akses Sudo. Perintah yang diperlukan untuk dijalankan karena root diawali oleh #, dan satu

Cara Memasang Manajer File Terminal Ranger di Linux

Cara Memasang Manajer File Terminal Ranger di Linux

Ranger adalah manajer file berbasis baris perintah dengan binding kunci VI. Ini memberikan antarmuka kutukan minimalis dan bagus dengan tampilan pada hierarki direktori

Cara Memasang Redmine di Ubuntu 16.04

Cara Memasang Redmine di Ubuntu 16.04

Menggunakan Sistem yang Berbeda? Redmine adalah alat manajemen proyek berbasis web gratis dan open source. Itu ditulis dalam Ruby on Rails dan mendukung banyak database

Cara Membangun Brotli Dari Sumber di Ubuntu 18.04 LTS

Cara Membangun Brotli Dari Sumber di Ubuntu 18.04 LTS

Menggunakan Sistem yang Berbeda? Brotli adalah metode kompresi baru dengan rasio kompresi yang lebih baik daripada GZIP. Kode sumbernya dihosting secara publik di Githu ini

Atur Akun Pengguna khusus SFTP di CentOS 7

Atur Akun Pengguna khusus SFTP di CentOS 7

Pada kesempatan tertentu, Administrator Sistem mungkin perlu membuat akun pengguna dan membatasi akses mereka untuk hanya mengelola file mereka sendiri melalui sFTP, tetapi tidak

Menggunakan Tampilan MySQL pada Debian 7

Menggunakan Tampilan MySQL pada Debian 7

Pendahuluan MySQL memiliki fitur hebat yang dikenal sebagai tampilan. Tampilan adalah kueri yang disimpan. Pikirkan mereka sebagai alias untuk permintaan yang panjang. Dalam panduan ini,

Cara Memasang Nginx 1.14 Di Arch Linux

Cara Memasang Nginx 1.14 Di Arch Linux

Prasyarat Server Vultr berjalan terbaru Arch Linux (lihat artikel ini.) Akses Sudo. Perintah yang harus dijalankan sebagai root diawali oleh #. Th

Nonaktifkan atau Batasi Login Root melalui SSH di Linux

Nonaktifkan atau Batasi Login Root melalui SSH di Linux

Mengizinkan login root melalui SSH umumnya dianggap sebagai praktik keamanan yang buruk di seluruh industri teknologi. Sebagai gantinya, Anda dapat melakukan administrativ sensitif

Cara Memasang Seafile Server di Ubuntu 16.10

Cara Memasang Seafile Server di Ubuntu 16.10

Menggunakan Sistem yang Berbeda? Seafile (versi komunitas) adalah solusi sinkronisasi dan berbagi file sumber gratis dan terbuka yang mirip dengan ownCloud. Sepanjang kecerdasan

Cara Memasang Thelia 2.3 pada Debian 9

Cara Memasang Thelia 2.3 pada Debian 9

Menggunakan Sistem yang Berbeda? Thelia adalah alat sumber terbuka untuk membuat situs web e-bisnis dan mengelola konten online yang ditulis dalam PHP. Kode sumber thelia i

Cara Memasang MongoDB 4.0 di Arch Linux

Cara Memasang MongoDB 4.0 di Arch Linux

Prasyarat Server Vultr berjalan terbaru Arch Linux (lihat artikel ini) Akses Sudo: Perintah yang diperlukan untuk dijalankan karena root diawali oleh #, dan satu

Cara Memasang Panel Kontrol Hosting Mudah di Ubuntu 16.04

Cara Memasang Panel Kontrol Hosting Mudah di Ubuntu 16.04

Pelajari langkah-langkah untuk memasang Panel Kontrol Hosting Mudah (EHCP) di Ubuntu 16.04 dengan panduan ini.

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.