วิธีการติดตั้ง GitBucket บน Ubuntu 16.04

คู่มือนี้ครอบคลุมถึงการติดตั้งและตั้งค่าพื้นฐานของ GitBucket สำหรับอินสแตนซ์ Vultr ที่ใช้งาน Ubuntu 16.04 และถือว่าคุณใช้คำสั่งในฐานะnon-rootผู้ใช้

ข้อกำหนดเบื้องต้น

  • อินสแตนซ์ของเซิร์ฟเวอร์ Vultr ที่มีRAM อย่างน้อย 1GB (อินสแตนซ์ขนาดเล็กอาจทำงานได้แม้ว่าจะช้า)
  • openjdk-8-jre จำเป็นรุ่นที่เก่ากว่าจะไม่ทำงาน
  • wget ใช้เพื่อดาวน์โหลดแพ็คเกจ GitBucket
  • nginx ทางเลือกจัดเตรียม reverse proxy ให้กับ GitBucket
  • systemd จัดการเริ่มต้นและหยุดกระบวนการ GitBucket

การติดตั้งข้อกำหนดเบื้องต้น

GitBucket ต้องการให้ติดตั้ง Java 8 หรือใหม่กว่าบนเซิร์ฟเวอร์ของคุณ หากคุณยังไม่ได้ติดตั้ง Java 8 ให้อัปเดตรายการแพคเกจท้องถิ่นของคุณก่อน

sudo apt update

จากนั้นติดตั้งแพ็คเกจรันไทม์ Java 8

sudo apt install openjdk-8-jre

กำลังติดตั้ง GitBucket

การสร้างผู้ใช้ที่ไม่มีสิทธิพิเศษ

เราจะต้องสร้างผู้ใช้ที่ไม่มีสิทธิพิเศษเพื่อเรียกใช้ GitBucket ก่อนดำเนินการเพิ่มเติม การเรียกใช้ GitBucket ภายใต้ผู้ใช้ที่ไม่มีสิทธิ์ จำกัด การติดตั้งของเราจากการเขียนนอกไดเรกทอรีข้อมูลของตนเองเสริมความปลอดภัยให้กับเซิร์ฟเวอร์ของคุณ gitbucketเรียกใช้คำสั่งต่อไปนี้เพื่อสร้างผู้ใช้ระบบที่เรียกว่า

sudo adduser --system gitbucket

เพราะเราได้สร้างระบบการใช้เปลือกเริ่มต้นเป็นและเราจะเตะกลับไปยังเปลือกปัจจุบันของเราถ้าเราให้การโต้แย้งเปลือกเพิ่มเติมเมื่อทำงาน/bin/false suเข้าสู่ระบบไปยังผู้ใช้ที่สร้างขึ้นใหม่

sudo su - gitbucket -s /bin/bash

ข้อความแจ้งของเชลล์ควรเปลี่ยนและคุณจะเข้าสู่ระบบของผู้ใช้ใหม่

กำลังดาวน์โหลด / อัปเดต GitBucket

นำทางไปยังหน้าเปิดตัว GitBucketและค้นหาเวอร์ชันล่าสุดที่มี คัดลอก URL สำหรับแพคเกจตรวจสอบคุณอยู่ในไดเรกทอรีบ้านของผู้ใช้ใหม่และดาวน์โหลดได้ด้วยgitbucket.warwget

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

คุณจะต้องทำซ้ำขั้นตอนนี้ทุกครั้งที่คุณต้องการอัพเดทแพ็คเกจ GitBucket

การกำหนดค่า GitBucket เริ่มต้น

เมื่อดาวน์โหลดแพคเกจแล้วเราจะต้องเริ่ม GitBucket ด้วยตนเองเพื่อดำเนินการกำหนดค่าเริ่มต้น

java -jar gitbucket.war --port 8080

หาก8080กระบวนการอื่นดำเนินการพอร์ตอยู่แล้วคุณสามารถเปลี่ยนพอร์ต GitBucket ที่จะรับฟังได้ทันที คำแนะนำนี้จะถือว่า GitBucket กำลังฟังพอร์ต8080อยู่

นี่จะเริ่ม GitBucket บนอินเทอร์เฟซเครือข่ายสาธารณะของเซิร์ฟเวอร์ของคุณฟังที่พอร์ตที่ระบุ คุณควรเห็นหลังจากข้อความสักครู่ข้อความต่อไปนี้

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

หากคุณกำลังใช้ไฟร์วอลล์ของ Vultrคุณจะต้องเปิดพอร์ตที่ GitBucket กำลังฟังอยู่เนื่องจากไฟร์วอลล์ของ Vultr ทำงานเป็นรายการขาวปฏิเสธการรับส่งข้อมูลเพื่ออนุญาตพอร์ตเว้นแต่จะระบุไว้เป็นอย่างอื่น

การติดตั้ง GitBucket ของคุณควรออนไลน์และสามารถเข้าถึงได้จากอินเทอร์เน็ต ใช้เว็บเบราว์เซอร์เชื่อมต่อกับที่อยู่สาธารณะของเซิร์ฟเวอร์ของคุณ (ต้องแน่ใจว่าระบุพอร์ตที่ GitBucket กำลังทำงานอยู่ (เช่นhttp://203.0.113.0:8080หรือhttp://example.com:8080) และคุณจะเข้าสู่หน้าแรกของ GitBucket

อย่างไรก็ตามรหัสผ่านของบัญชีผู้ดูแลระบบเริ่มต้นจะต้องมีการเปลี่ยนแปลง ในการดำเนินการดังกล่าวให้ลงชื่อเข้าใช้บัญชีผู้ดูแลระบบผ่านSign inปุ่มที่มุมขวาบนของเว็บอินเตอร์เฟส เข้าสู่ระบบเริ่มต้นสำหรับบัญชีผู้ดูแลระบบเป็นrootชื่อผู้ใช้แล้วrootอีกครั้งสำหรับรหัสผ่าน เมื่อเข้าสู่ระบบปุ่มจะถูกแทนที่ด้วยไอคอนโปรไฟล์และเมนูแบบเลื่อนลง ขยายรายการแบบหล่นลงและเลือกAccount Settingsจากนั้นตั้งรหัสผ่านใหม่ที่ปลอดภัยยิ่งขึ้นในตัวช่วยสร้างการตั้งค่าบัญชี

หลังจากที่คุณได้อัปเดตข้อมูลประจำตัวของบัญชีผู้ดูแลระบบเริ่มต้นและสอบว่า GitBucket เริ่มต้นในการกำหนดค่าน้อยที่สุดนี้ฆ่ากระบวนการ Java ด้วย " CTRL+C" exitและปิดเปลือกปัจจุบันด้วย

การสร้างบริการ Systemd

ปัจจุบันเราสามารถเรียกใช้ GitBucket ได้โดยการเข้าถึงเซิร์ฟเวอร์ของเราผ่าน SSH และเริ่มต้นกระบวนการจากเชลล์ด้วยตนเอง โชคดีที่ Ubuntu มาพร้อมกับSystemdแพ็กเกจล่วงหน้าทำให้เราสามารถสร้างบริการที่ GitBucket จะเริ่มทำงานอัตโนมัติและดูแลโดยระบบ

ใช้nanoสร้างไฟล์หน่วยใหม่ใน/etc/systemd/systemไดเรกทอรี

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

จากนั้นคัดลอกเนื้อหาต่อไปนี้ลงในไฟล์

[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

ไฟล์หน่วยนี้จะกำหนดการเริ่มต้นและการปิดเครื่องขั้นพื้นฐานสำหรับ GitBucket และเรียกใช้บริการภายใต้ผู้ใช้ระบบที่ไม่มีสิทธิพิเศษของเราบนอินเทอร์เฟซเครือข่ายเฉพาะที่

หากคุณเปลี่ยนหมายเลขพอร์ต GitBucket จะฟังให้เปลี่ยน--portอาร์กิวเมนต์สำหรับExecStartคำสั่ง

บันทึก (" CTRL+O") ไฟล์หน่วยใหม่แล้วออกจากตัวแก้ไข (" CTRL+X") คุณจะต้องโหลด Systemd ใหม่เพื���อให้ไฟล์ยูนิตใหม่ถูกค้นพบ

sudo systemctl daemon-reload

หลังจาก Systemd โหลดใหม่แล้วให้ตรวจสอบว่าหน่วยใหม่ถูกค้นพบและโหลดแล้ว

sudo systemctl status gitbucket

คุณควรเห็นผลลัพธ์ต่อไปนี้

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

สุดท้ายให้เปิดใช้งานหน่วยใหม่โดยอัตโนมัติเมื่อเซิร์ฟเวอร์ของคุณบูทจากนั้นเริ่มบริการเป็นครั้งแรก

sudo systemctl enable gitbucket
sudo systemctl start gitbucket

เมื่อบริการเริ่มต้นขึ้นคุณจะสามารถเข้าถึง GitBucket จากเบราว์เซอร์ของคุณโดยใช้ที่อยู่ IP และหมายเลขพอร์ตอีกครั้ง

การกำหนดค่าพร็อกซี Nginx ย้อนกลับ

ในขณะที่หนึ่งสามารถเปิดเผย GitBucket โดยตรงผ่านพอร์ต8080คุณสามารถปรับปรุงประสิทธิภาพและกำหนดค่าคุณลักษณะต่างๆเช่น HTTP / 2, การเข้ารหัส TLS และกฎการแคชโดยเปิดเผย GitBucket ผ่าน Nginx

การติดตั้ง Nginx เริ่มต้น

หากคุณยังไม่ได้ติดตั้ง Nginx ให้อัปเดตรายชื่อแพ็คเกจของคุณ

sudo apt update

จากนั้นติดตั้งแพคเกจ Nginx

sudo apt install nginx

เมื่อติดตั้ง Nginx แล้วให้ตรวจสอบว่าคุณสามารถเข้าถึงเว็บเซิร์ฟเวอร์ผ่านที่อยู่ IP ของเซิร์ฟเวอร์โดยไม่มีหมายเลขพอร์ต (เช่นhttp://203.0.113.0หรือhttp://example.com) หากประสบความสำเร็จคุณจะเห็นหน้า Landing Page เริ่มต้นของ Nginx สำหรับ Ubuntu

การสร้าง reverse proxy

เราจะคัดลอกการกำหนดค่าไซต์เริ่มต้น/etc/nginx/sites-availableเป็นจุดเริ่มต้นสำหรับ reverse proxy

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

nanoเปิดแฟ้มการกำหนดค่าที่สร้างขึ้นใหม่ด้วย

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

ค้นหาlocation /บล็อกที่มีอยู่ในบรรทัดที่ 43

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

ปัจจุบัน Nginx จะพยายามส่งคืนไฟล์ที่อยู่/var/www/htmlที่ตรงกับHTTPคำขอที่เข้ามา เราจะต้องเปลี่ยนพฤติกรรมนี้โดยการกำหนดค่าพร็อกซีย้อนกลับในบล็อกนี้ซึ่งจะส่งคำขอ HTTP ทั้งหมดที่ส่งไปยังเซิร์ฟเวอร์ Nginx ของเราไปยังอินสแตนซ์ GitBucket แทน อัปเดตlocation /บล็อกเพื่อให้ตรงกับต่อไปนี้

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 จะฟังให้อัปเดตproxy_passตัวเลือกเพื่อแสดงถึงสิ่งนี้

ในการเปิดใช้งานการกำหนดค่าใหม่ของเราคุณจะต้องปิดการใช้งานการกำหนดค่าเริ่มต้นที่มีอยู่ใน/etc/nginx/sites-enabledแล้วเชื่อมโยงการกำหนดค่าใหม่ของเรา/etc/nginx/sites-enabledผ่านทางต่อไปนี้

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

เมื่อเปิดใช้งานไฟล์กำหนดค่าแล้วให้ตรวจสอบข้อผิดพลาดทางไวยากรณ์ใด ๆ

sudo nginx -t

จากนั้นรีสตาร์ทเซิร์ฟเวอร์ Nginx เพื่อเปิดใช้งานการกำหนดค่าไซต์ใหม่ของเรา

sudo systemctl restart nginx

ตอนนี้คุณควรจะสามารถเข้าถึงการติดตั้ง GitBucket บนที่อยู่สาธารณะของเซิร์ฟเวอร์โดยไม่มีหมายเลขพอร์ต

การรักษาความปลอดภัยของกระบวนการ GitBucket จากอินเทอร์เน็ตสาธารณะ

ปัจจุบันอินสแตนซ์ GitBucket ของเรากำลังฟังบนอินเทอร์เฟซเครือข่ายสาธารณะของเซิร์ฟเวอร์ของเรา วิธีนี้จะช่วยให้ผู้ใช้สามารถหลีกเลี่ยงพร็อกซี Nginx ได้โดยเชื่อมต่อไปยังที่อยู่ที่ GitBucket กำลังฟังอยู่ในปัจจุบันซึ่งเป็นสิ่งที่ไม่พึงประสงค์ เราจะต้องแก้ไขไฟล์หน่วยที่เราสร้างไว้ก่อนหน้านี้เพื่อแก้ไขปัญหานี้ nanoเปิดแฟ้มหน่วยที่มี

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

ผนวก--host 127.0.0.1กับExecStartคำสั่งเช่นดังนั้น

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

สิ่งนี้จะทำให้ GitBucket ยอมรับเฉพาะการเชื่อมต่อบนอินเทอร์เฟซเครือข่ายท้องถิ่นของเซิร์ฟเวอร์ของเรา อีกครั้งบันทึก (" CTRL+O") ไฟล์ปิด (" CTRL+X") ตัวแก้ไขรีโหลด Systemd และรีสตาร์ทหน่วย GitBucket ของเรา

sudo systemctl daemon-reload
sudo systemctl restart gitbucket

หากคุณใช้ไฟร์วอลล์ของ Vultr คุณควรลบกฎพอร์ตใด ๆ ที่คุณเพิ่มเพื่อเข้าถึงเซิร์ฟเวอร์ GitBucket ระหว่างการตั้งค่าเริ่มต้น

ฝากความเห็น

วิธีการติดตั้ง Directus 6.4 CMS บน CentOS 7 LAMP VPS

วิธีการติดตั้ง Directus 6.4 CMS บน CentOS 7 LAMP VPS

เรียนรู้วิธีการติดตั้ง Directus 6.4 CMS บน CentOS 7; ระบบการจัดการเนื้อหา Headless ที่มีความยืดหยุ่นสูงและปลอดภัย

ตั้งค่า Nginx บน Ubuntu เพื่อสตรีมวิดีโอสด HLS

ตั้งค่า Nginx บน Ubuntu เพื่อสตรีมวิดีโอสด HLS

เรียนรู้วิธีการตั้งค่า Nginx บน Ubuntu สำหรับการสตรีมวิดีโอสด HLS ด้วยคำแนะนำที่ชัดเจนและเป็นประโยชน์

การสำรองข้อมูลยอดนิยมด้วย Percona XtraBackup บนแอพ WordPress แบบคลิกเดียว

การสำรองข้อมูลยอดนิยมด้วย Percona XtraBackup บนแอพ WordPress แบบคลิกเดียว

เรียนรู้การใช้ Percona XtraBackup สำหรับการสำรองข้อมูลด้วยวิธีที่เป็นระบบและง่ายดายบน WordPress ออนไลน์ของคุณ

ReactOS: นี่คืออนาคตของ Windows หรือไม่?

ReactOS: นี่คืออนาคตของ Windows หรือไม่?

ReactOS ซึ่งเป็นโอเพ่นซอร์สและระบบปฏิบัติการฟรีพร้อมเวอร์ชันล่าสุดแล้ว สามารถตอบสนองความต้องการของผู้ใช้ Windows ยุคใหม่และล้ม Microsoft ได้หรือไม่? มาหาข้อมูลเพิ่มเติมเกี่ยวกับรูปแบบเก่านี้ แต่เป็นประสบการณ์ OS ที่ใหม่กว่ากัน

AI สามารถต่อสู้กับการโจมตีของแรนซัมแวร์ที่เพิ่มขึ้นได้หรือไม่

AI สามารถต่อสู้กับการโจมตีของแรนซัมแวร์ที่เพิ่มขึ้นได้หรือไม่

การโจมตีของ Ransomware กำลังเพิ่มขึ้น แต่ AI สามารถช่วยจัดการกับไวรัสคอมพิวเตอร์ตัวล่าสุดได้หรือไม่? AI คือคำตอบ? อ่านที่นี่รู้ว่า AI boone หรือ bane

เชื่อมต่อผ่าน WhatsApp Desktop App 24*7

เชื่อมต่อผ่าน WhatsApp Desktop App 24*7

ในที่สุด Whatsapp ก็เปิดตัวแอพเดสก์ท็อปสำหรับผู้ใช้ Mac และ Windows ตอนนี้คุณสามารถเข้าถึง Whatsapp จาก Windows หรือ Mac ได้อย่างง่ายดาย ใช้ได้กับ Windows 8+ และ Mac OS 10.9+

AI จะนำกระบวนการอัตโนมัติไปสู่อีกระดับได้อย่างไร

AI จะนำกระบวนการอัตโนมัติไปสู่อีกระดับได้อย่างไร

อ่านข้อมูลนี้เพื่อทราบว่าปัญญาประดิษฐ์กำลังได้รับความนิยมในหมู่บริษัทขนาดเล็กอย่างไร และเพิ่มโอกาสในการทำให้พวกเขาเติบโตและทำให้คู่แข่งได้เปรียบ

การอัปเดตเสริม macOS Catalina 10.15.4 ทำให้เกิดปัญหามากกว่าการแก้ปัญหา

การอัปเดตเสริม macOS Catalina 10.15.4 ทำให้เกิดปัญหามากกว่าการแก้ปัญหา

เมื่อเร็ว ๆ นี้ Apple เปิดตัว macOS Catalina 10.15.4 การอัปเดตเสริมเพื่อแก้ไขปัญหา แต่ดูเหมือนว่าการอัปเดตทำให้เกิดปัญหามากขึ้นที่นำไปสู่การสร้างเครื่อง Mac อ่านบทความนี้เพื่อเรียนรู้เพิ่มเติม

13 เครื่องมือดึงข้อมูลเชิงพาณิชย์ของ Big Data

13 เครื่องมือดึงข้อมูลเชิงพาณิชย์ของ Big Data

13 เครื่องมือดึงข้อมูลเชิงพาณิชย์ของ Big Data

ระบบไฟล์บันทึกคืออะไรและทำงานอย่างไร

ระบบไฟล์บันทึกคืออะไรและทำงานอย่างไร

คอมพิวเตอร์ของเราจัดเก็บข้อมูลทั้งหมดในลักษณะที่เรียกว่าระบบไฟล์บันทึก เป็นวิธีการที่มีประสิทธิภาพที่ช่วยให้คอมพิวเตอร์สามารถค้นหาและแสดงไฟล์ได้ทันทีที่คุณกดค้นหาhttps://wethegeek.com/?p=94116&preview=true