Cara Memasang GitBucket pada Ubuntu 16.04

Panduan ini merangkumi pemasangan dan penyediaan asas GitBucket untuk instance Vultr yang menjalankan Ubuntu 16.04, dan menganggap bahawa anda menjalankan perintah sebagai non-rootpengguna.

Prasyarat

  • Contoh pelayan Vultr dengan RAM sekurang-kurangnya 1GB (contoh yang lebih kecil mungkin berfungsi, walaupun perlahan).
  • openjdk-8-jre Diperlukan, versi lama tidak akan berfungsi.
  • wget Digunakan untuk memuat turun pakej GitBucket.
  • nginx Pilihan, memberikan proksi terbalik kepada GitBucket
  • systemd Berjaya memulakan dan menghentikan proses GitBucket

Memasang prasyarat

GitBucket memerlukan Java 8 atau yang lebih baru dipasang di pelayan anda. Sekiranya anda belum memasang Java 8, kemas kini senarai pakej tempatan anda terlebih dahulu.

sudo apt update

Kemudian pasang pakej runtime Java 8.

sudo apt install openjdk-8-jre

Memasang GitBucket

Menciptakan pengguna yang tidak berhak

Kita perlu membuat pengguna yang tidak berhak untuk menjalankan GitBucket sebelum melangkah lebih jauh. Menjalankan GitBucket di bawah pengguna yang tidak berhak menyekat pemasangan kami daripada menulis di luar direktori datanya sendiri, menguatkan keselamatan pelayan anda. Jalankan arahan berikut untuk membuat pengguna sistem yang dipanggil gitbucket.

sudo adduser --system gitbucket

Kerana kami membuat pengguna sistem , shell lalai adalah /bin/false, dan kami akan ditendang kembali ke shell kami saat ini kecuali kami memberikan argumen shell tambahan ketika berjalan su. Log masuk ke pengguna yang baru dibuat.

sudo su - gitbucket -s /bin/bash

Permintaan shell anda akan berubah, dan anda akan log masuk ke pengguna sistem baru.

Memuat turun / Mengemas kini GitBucket

Navigasi ke halaman rilis GitBucket dan cari versi terkini yang tersedia. Salin URL untuk gitbucket.warpakej, sahkan anda berada di direktori utama pengguna baru, dan muat turun dengan wget.

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

Anda perlu mengulangi langkah ini setiap kali anda ingin mengemas kini pakej GitBucket.

Konfigurasi GitBucket awal

Setelah pakej dimuat turun, kita perlu memulakan GitBucket secara manual untuk melakukan beberapa konfigurasi awal.

java -jar gitbucket.war --port 8080

Sekiranya port 8080sudah diambil oleh proses lain, anda boleh menukar port yang akan didengarkan oleh GitBucket sekarang. Panduan ini mengandaikan bahawa GitBucket sedang mendengar di port8080 .

Ini akan memulakan GitBucket pada antara muka rangkaian awam pelayan anda, mendengar di port yang ditentukan. Anda akan melihat, setelah beberapa saat, mesej berikut.

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

Sekiranya anda menggunakan firewall Vultr , anda perlu membuka port yang didengarkan oleh GitBucket, kerana firewall Vultr berfungsi sebagai senarai putih, menolak lalu lintas untuk membenarkan port kecuali dinyatakan sebaliknya.

Pemasangan GitBucket anda kini harus dalam talian dan boleh diakses dari internet. Dengan menggunakan penyemak imbas web, sambungkan ke alamat awam pelayan anda (pastikan untuk menentukan port yang sedang digunakan GitBucket, ( http://203.0.113.0:8080atau atau http://example.com:8080), dan anda akan mendarat di laman utama GitBucket.

Walau bagaimanapun, kata laluan akaun pentadbir lalai perlu diubah. Untuk melakukannya, log masuk ke akaun pentadbir melalui Sign inbutang di bahagian kanan atas antara muka web. Log masuk lalai untuk akaun pentadbir adalah rootuntuk nama pengguna, dan rootsekali lagi untuk kata laluan. Setelah log masuk, butang akan diganti dengan ikon profil dan drop-down. Kembangkan drop-down dan pilih Account Settings, kemudian tetapkan kata laluan baru yang lebih selamat di wizard tetapan akaun.

Setelah anda mengemas kini kelayakan akaun pentadbir lalai dan mengesahkan bahawa GitBucket bermula dalam konfigurasi minimum ini, matikan proses Java dengan " CTRL+C" dan tutup shell semasa dengan exit.

Membuat perkhidmatan Systemd

Pada masa ini, kami hanya dapat menjalankan GitBucket dengan mengakses pelayan kami melalui SSH dan memulakan proses dari shell secara manual. Nasib baik, Ubuntu dilengkapi dengan kemasan Systemd, yang memungkinkan kami membuat perkhidmatan dengan mana GitBucket akan dimulakan secara automatik dan dikendalikan oleh sistem.

Dengan menggunakan nano, buat fail unit baru dalam /etc/systemd/systemdirektori.

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

Kemudian, salin kandungan berikut ke dalam fail.

[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

Fail unit ini mentakrifkan tingkah laku permulaan dan penutupan asas untuk GitBucket, dan menjalankan perkhidmatan di bawah pengguna sistem kami yang tidak istimewa pada antara muka rangkaian tempatan sahaja.

Sekiranya anda telah menukar nombor port yang akan didengarkan oleh GitBucket, ubah --portargumen untuk ExecStartperintah tersebut.

Simpan (" CTRL+O") fail unit baru dan kemudian keluar dari editor (" CTRL+X"). Anda perlu memuat semula Systemd agar fail unit baru dapat ditemui.

sudo systemctl daemon-reload

Setelah Systemd dimuat semula, sahkan bahawa unit baru telah dijumpai dan dimuat.

sudo systemctl status gitbucket

Anda mesti melihat output berikut.

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

Akhirnya, aktifkan unit baru untuk memulakan secara automatik semasa pelayan anda boot, dan kemudian mulakan perkhidmatan untuk pertama kalinya.

sudo systemctl enable gitbucket
sudo systemctl start gitbucket

Setelah perkhidmatan dimulakan, anda akan dapat mengakses GitBucket dari penyemak imbas anda menggunakan alamat IP dan nombor port sekali lagi.

Mengkonfigurasi proksi terbalik Nginx

Walaupun seseorang dapat mendedahkan GitBucket secara langsung melalui port 8080, anda dapat meningkatkan prestasi dan mengkonfigurasi fitur seperti HTTP / 2, enkripsi TLS, dan peraturan caching dengan mendedahkan GitBucket melalui Nginx.

Persediaan Nginx awal

Sekiranya anda belum memasang Nginx, kemas kini senarai pakej anda.

sudo apt update

Kemudian pasang pakej Nginx.

sudo apt install nginx

Setelah Nginx dipasang, pastikan anda dapat mengakses pelayan web melalui alamat IP pelayan anda tanpa nombor port (iaitu http://203.0.113.0atau http://example.com). Sekiranya berjaya, anda akan melihat halaman arahan Nginx lalai untuk Ubuntu.

Membuat proksi terbalik

Kami akan menyalin konfigurasi laman web lalai /etc/nginx/sites-availablesebagai titik permulaan untuk membalikkan proksi.

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

Buka fail konfigurasi yang baru dibuat dengan nano.

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

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

Pada masa ini, Nginx akan berusaha mengembalikan fail /var/www/htmlyang sesuai dengan HTTPpermintaan masuk . Kita perlu mengubah tingkah laku ini dengan mengkonfigurasi proksi terbalik di blok ini, yang akan menghantar semua permintaan HTTP yang dibuat ke pelayan Nginx kami ke instance GitBucket. Kemas kini location /blok agar sesuai dengan yang berikut.

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

Sekiranya anda menukar nombor port yang akan didengarkan oleh GitBucket, kemas kini proxy_passpilihan untuk menggambarkannya.

Untuk mengaktifkan konfigurasi baru kami, anda perlu mematikan konfigurasi lalai yang ada /etc/nginx/sites-enabled, kemudian sambungkan konfigurasi baru kami /etc/nginx/sites-enabledmelalui yang berikut.

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

Setelah fail konfigurasi diaktifkan, periksa sebarang kesalahan sintaks.

sudo nginx -t

Kemudian, mulakan semula pelayan Nginx untuk mengaktifkan konfigurasi laman web baru kami.

sudo systemctl restart nginx

Anda kini boleh mengakses pemasangan GitBucket di alamat awam pelayan anda tanpa nombor port.

Menjamin proses GitBucket dari internet awam

Pada masa ini, contoh GitBucket kami sedang mendengar di antara muka rangkaian awam pelayan kami . Ini akan membolehkan pengguna memintas proksi Nginx dengan menyambung ke alamat yang sedang didengarkan oleh GitBucket, yang kemungkinan tidak diingini. Kita perlu mengubah fail unit yang kita buat lebih awal untuk menyelesaikannya. Buka fail unit dengan nano.

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

Tambah --host 127.0.0.1kepada ExecStartarahan, seperti demikian.

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

Ini akan menyebabkan GitBucket hanya menerima sambungan pada antara muka rangkaian tempatan pelayan kami. Sekali lagi, simpan (" CTRL+O") fail, tutup (" CTRL+X") editor, muat semula Systemd, dan mulakan semula unit GitBucket kami.

sudo systemctl daemon-reload
sudo systemctl restart gitbucket

Sekiranya anda menggunakan Firewall Vultr, anda juga harus membuang peraturan port yang anda tambahkan untuk mengakses pelayan GitBucket semasa persediaan awal.



Leave a Comment

Pandangan tentang 26 Teknik Analisis Data Besar: Bahagian 1

Pandangan tentang 26 Teknik Analisis Data Besar: Bahagian 1

Pandangan tentang 26 Teknik Analisis Data Besar: Bahagian 1

6 Perkara Yang Sangat Menggila Tentang Nintendo Switch

6 Perkara Yang Sangat Menggila Tentang Nintendo Switch

Ramai daripada anda tahu Switch akan keluar pada Mac 2017 dan ciri baharunya. Bagi yang tidak tahu, kami telah menyediakan senarai ciri yang menjadikan 'Tukar' sebagai 'gajet yang mesti ada'.

Janji Teknologi Yang Masih Tidak Ditepati

Janji Teknologi Yang Masih Tidak Ditepati

Adakah anda menunggu gergasi teknologi memenuhi janji mereka? semak apa yang masih belum dihantar.

Fungsi Lapisan Seni Bina Rujukan Data Besar

Fungsi Lapisan Seni Bina Rujukan Data Besar

Baca blog untuk mengetahui lapisan berbeza dalam Seni Bina Data Besar dan fungsinya dengan cara yang paling mudah.

Bagaimana AI Boleh Mengambil Automasi Proses ke Tahap Seterusnya?

Bagaimana AI Boleh Mengambil Automasi Proses ke Tahap Seterusnya?

Baca ini untuk mengetahui cara Kecerdasan Buatan semakin popular di kalangan syarikat berskala kecil dan cara ia meningkatkan kebarangkalian untuk menjadikan mereka berkembang dan memberikan pesaing mereka kelebihan.

CAPTCHA: Berapa Lama Ia Boleh Kekal Sebagai Teknik Berdaya maju Untuk Perbezaan Manusia-AI?

CAPTCHA: Berapa Lama Ia Boleh Kekal Sebagai Teknik Berdaya maju Untuk Perbezaan Manusia-AI?

CAPTCHA telah menjadi agak sukar untuk diselesaikan oleh pengguna dalam beberapa tahun kebelakangan ini. Adakah ia dapat kekal berkesan dalam pengesanan spam dan bot pada masa hadapan?

Keunikan Teknologi: Masa Depan Tamadun Manusia yang Jauh?

Keunikan Teknologi: Masa Depan Tamadun Manusia yang Jauh?

Apabila Sains Berkembang pada kadar yang pantas, mengambil alih banyak usaha kita, risiko untuk menundukkan diri kita kepada Ketunggalan yang tidak dapat dijelaskan juga meningkat. Baca, apakah makna ketunggalan bagi kita.

Teleperubatan Dan Penjagaan Kesihatan Jauh: Masa Depan Ada Di Sini

Teleperubatan Dan Penjagaan Kesihatan Jauh: Masa Depan Ada Di Sini

Apakah teleperubatan, penjagaan kesihatan jauh dan impaknya kepada generasi akan datang? Adakah ia tempat yang baik atau tidak dalam situasi pandemik? Baca blog untuk mencari paparan!

Pernahkah Anda Terfikir Bagaimana Penggodam Mendapatkan Wang?

Pernahkah Anda Terfikir Bagaimana Penggodam Mendapatkan Wang?

Anda mungkin pernah mendengar bahawa penggodam memperoleh banyak wang, tetapi pernahkah anda terfikir bagaimana mereka memperoleh wang seperti itu? Mari berbincang.

Kemas Kini Tambahan macOS Catalina 10.15.4 Menyebabkan Lebih Banyak Isu Daripada Penyelesaian

Kemas Kini Tambahan macOS Catalina 10.15.4 Menyebabkan Lebih Banyak Isu Daripada Penyelesaian

Baru-baru ini Apple mengeluarkan macOS Catalina 10.15.4 kemas kini tambahan untuk menyelesaikan masalah tetapi nampaknya kemas kini itu menyebabkan lebih banyak masalah yang membawa kepada pemusnahan mesin mac. Baca artikel ini untuk mengetahui lebih lanjut