ข้ามไปยังเนื้อหาหลัก

ติดตั้ง GitLab บนเซิร์ฟเวอร์ Linux - โฮสต์แพลตฟอร์ม DevOps ของคุณเอง

ผลิตภัณฑ์ที่เหมาะสำหรับคู่มือนี้

เริ่มต้นทันที — สั่งซื้อผลิตภัณฑ์ที่เหมาะสมและทำตามคู่มือนี้ทีละขั้นตอน

แนะนำ

GitLab คือแพลตฟอร์ม DevOps ครบวงจรที่ช่วยให้ทีมสามารถทำงานร่วมกันบนโค้ด อัตโนมัติกระบวนการทำงาน และจัดการวงจรการพัฒนาซอฟต์แวร์ทั้งหมดได้อย่างมีประสิทธิภาพ ในคู่มือนี้จะอธิบายการติดตั้ง GitLab บนเซิร์ฟเวอร์ Linux

ติดตั้ง GitLab ด้วย One Click Apps Installer

คุณสามารถติดตั้ง GitLab ได้โดยตรงผ่าน One Click Apps Installer ในเว็บอินเทอร์เฟซของ VPS หลังจากตั้งค่าแอปเริ่มต้นเสร็จแล้ว ให้เปิดแคตตาล็อกแอป ค้นหา GitLab และเริ่มการติดตั้งพร้อมตั้งค่าโปรเจกต์ สภาพแวดล้อม และโดเมนที่คุณต้องการ วิธีนี้ช่วยให้คุณติดตั้งและจัดการ GitLab ได้อย่างรวดเร็วและง่ายดายโดยไม่ต้องตั้งค่าด้วยคำสั่งในเทอร์มินัลเอง พร้อมทั้งยังได้ประโยชน์จากการจัดการผ่านเว็บที่รวมอยู่ในตัว รองรับโดเมนที่กำหนดเอง และการจัดเตรียม SSL อัตโนมัติถ้ามี

การเตรียมตัว

ข้อกำหนดต่อไปนี้เป็นคำแนะนำจากทีมงาน GitLab อย่างเป็นทางการ และแนะนำให้ปฏิบัติตามเพื่อหลีกเลี่ยงปัญหาและความไม่สะดวกในภายหลัง

ฮาร์ดแวร์

อุปกรณ์ขั้นต่ำแนะนำ
CPU2x 2 GHz4x 2.6+ GHz
RAM4 GB8 GB
พื้นที่จัดเก็บ10 GB50+ GB
แบนด์วิดท์100 mbit/s (อัปโหลด & ดาวน์โหลด)100 mbit/s (อัปโหลด & ดาวน์โหลด)

ซอฟต์แวร์

แพลตฟอร์มตัวเลือก
ระบบปฏิบัติการUbuntu (20.04, 22.04, 24.04), Debian(10, 11, 12), OpenSUSE (15.5)
ฐานข้อมูลPostgreSQL 14.9+
เว็บเซิร์ฟเวอร์NGINX (มาพร้อม GitLab), Puma 6.4.2+
อื่นๆRedis 7.x+, Sidekiq 7.3.2+, Prometheus 2.54.1+
ข้อมูล

สำหรับข้อมูลสเปคที่แม่นยำและอัปเดตล่าสุด โปรดดูเอกสาร ข้อกำหนดฮาร์ดแวร์ อย่างเป็นทางการของ GitLab

ต้องเชื่อมต่อผ่าน SSH client เพื่อทำการติดตั้ง GitLab บนเซิร์ฟเวอร์ Linux ของคุณ ดูคู่มือ การเข้าถึงเบื้องต้น (SSH) เพื่อเรียนรู้เพิ่มเติม

เมื่อเชื่อมต่อแล้ว คุณสามารถเริ่มติดตั้งแพ็กเกจที่จำเป็นสำหรับการติดตั้ง GitLab ได้เลย

ขั้นตอนที่ 1: ติดตั้ง Dependencies

ก่อนอื่นคุณต้องติดตั้ง dependencies บางตัวเพื่อให้ตัวติดตั้ง GitLab ทำงานได้ ใช้คำสั่งต่อไปนี้เพื่อติดตั้ง dependencies ที่จำเป็นบนเซิร์ฟเวอร์ Linux ของคุณ

อัปเดตรายการแพ็กเกจเป็นเวอร์ชันล่าสุดและติดตั้งแพ็กเกจ OpenSSH Server พร้อม dependencies ที่จำเป็นโดยใช้คำสั่งนี้ เว็บอินเทอร์เฟซของ GitLab จะถูกโฮสต์ผ่านแพ็กเกจนี้

sudo apt update
sudo apt-get install -y curl openssh-server ca-certificates tzdata perl

คุณสามารถติดตั้ง Postfix (เซิร์ฟเวอร์ SMTP) หากต้องการส่งการแจ้งเตือนทางอีเมลเมื่อใช้ GitLab ได้ด้วย ซึ่งเป็นตัวเลือก ไม่บังคับ

ถ้าต้องการใช้การแจ้งเตือนทางอีเมล ให้ติดตั้ง Postfix ด้วยคำสั่งนี้

sudo apt-get install -y postfix
ข้อมูล

ระหว่างติดตั้ง Postfix อาจมีหน้าจอการตั้งค่าปรากฏขึ้น ในกรณีนี้ให้เลือก 'Internet Site' แล้วกด Enter ใช้ DNS ภายนอกของเซิร์ฟเวอร์ Linux ของคุณสำหรับ 'mail name' แล้วกด Enter ถ้ามีหน้าจอเพิ่มเติม ให้กด Enter เพื่อยอมรับค่าตั้งต้น

ถ้าคุณต้องการใช้โซลูชันอื่นในการส่งอีเมล ให้ข้ามขั้นตอนนี้ไปและ ตั้งค่าเซิร์ฟเวอร์ SMTP ภายนอก หลังจากติดตั้ง GitLab เสร็จแล้วตามคู่มือจากทีม GitLab อย่างเป็นทางการ

ขั้นตอนที่ 2: ติดตั้ง GitLab

หลังจากดาวน์โหลดและติดตั้ง dependencies ที่จำเป็นทั้งหมดแล้ว คุณก็พร้อมที่จะติดตั้ง GitLab

ในคู่มือนี้ เราจะติดตั้ง GitLab โดยตรงจาก official package repositories

สคริปต์ต่อไปนี้จะเพิ่ม repository ของ GitLab ลงใน apt package manager:

curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ee/script.deb.sh | sudo bash

เมื่อเสร็จแล้ว ให้ติดตั้งแพ็กเกจ gitlab-ee:

sudo apt-get install -y gitlab-ee

เมื่อกระบวนการนี้เสร็จสิ้น คุณจะมี GitLab พร้อมใช้งานบนเซิร์ฟเวอร์ Linux ของคุณ ต่อไปให้ไปยังส่วนถัดไปเพื่อกำหนดค่าการตั้งค่าที่จำเป็นเพื่อให้เซิร์ฟเวอร์ทำงานได้

ขั้นตอนที่ 3: กำหนดค่า GitLab

เพื่อให้ทุกอย่างทำงานได้ คุณต้องแก้ไขไฟล์การตั้งค่า เริ่มต้นด้วยการเปิดไฟล์การตั้งค่า GitLab ด้วยโปรแกรมแก้ไขข้อความที่คุณชอบ ตัวอย่างนี้ใช้ nano ที่ติดตั้งมาแล้ว

sudo nano /etc/gitlab/gitlab.rb

จากนั้นค้นหาบรรทัด external_url และกรอกโดเมนของคุณ หรือกรอกที่อยู่ IP ของเซิร์ฟเวอร์ Linux ของคุณถ้าคุณไม่มีโดเมนสำหรับใช้กับ GitLab

## GitLab URL
##! URL ที่ GitLab จะสามารถเข้าถึงได้
##! สำหรับรายละเอียดเพิ่มเติมเกี่ยวกับการตั้งค่า external_url ดูที่:
##! https://docs.gitlab.com/omnibus/settings/configuration.html#configuring-the-external-url-for-gitlab
##!
##! หมายเหตุ: ระหว่างการติดตั้ง/อัปเกรด ค่าของตัวแปรแวดล้อม
##! EXTERNAL_URL จะถูกใช้เพื่อเติม/แทนที่ค่านี้
##! บน AWS EC2 เราจะพยายามดึงโฮสต์เนม/ที่อยู่ IP สาธารณะจาก AWS ด้วย
##! ดูรายละเอียดเพิ่มเติมที่:
##! https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instancedata-data-retrieval.html
external_url 'http`s`://`โดเมนของคุณ / ที่อยู่ IPv4 ของเซิร์ฟเวอร์ Linux`'

นอกจากนี้ เราแนะนำให้กรอกอีเมลของคุณในบรรทัด letsencrypt['contact_emails'] เพื่อให้ Let's Encrypt สามารถส่งการแจ้งเตือนและติดต่อคุณเกี่ยวกับใบรับรอง SSL อัตโนมัติและฟรี

บันทึก

คุณต้องใช้โดเมนถ้าต้องการขอใบรับรอง SSL ฟรีจาก Let's Encrypt ไม่สามารถขอใบรับรองโดยตรงกับที่อยู่ IP ได้

################################################################################
# การรวม Let's Encrypt
################################################################################
# letsencrypt['enable'] = nil
# letsencrypt['contact_emails'] = [`อีเมลของคุณที่นี่`] # ควรเป็นอาเรย์ของอีเมลที่ใช้ติดต่อ
# letsencrypt['group'] = 'root'
# letsencrypt['key_size'] = 2048
# letsencrypt['owner'] = 'root'
# letsencrypt['wwwroot'] = '/var/opt/gitlab/nginx/www'
# ดู https://docs.gitlab.com/omnibus/settings/ssl/index.html#renew-the-certificates-automatically สำหรับข้อมูลเพิ่มเติม
# letsencrypt['auto_renew'] = true
# letsencrypt['auto_renew_hour'] = 0
# letsencrypt['auto_renew_minute'] = nil # ควรเป็นตัวเลขหรือ cron expression ถ้ามี
# letsencrypt['auto_renew_day_of_month'] = "*/4"
# letsencrypt['auto_renew_log_directory'] = '/var/log/gitlab/lets-encrypt'
# letsencrypt['alt_names'] = []
เคล็ดลับ

คุณสามารถใช้ CTRL+W เพื่อค้นหา letsencrypt['contact_emails'] แล้วกด Enter เพื่อไม่ต้องค้นหาไฟล์ทั้งหมดด้วยตนเอง

เมื่อแก้ไขเสร็จ กด CTRL+X ตามด้วย Y แล้วกด Enter เพื่อบันทึกการเปลี่ยนแปลง

สุดท้าย รันคำสั่งนี้เพื่อกำหนดค่า GitLab ใหม่ด้วยตัวเลือกที่ตั้งค่าไว้

sudo gitlab-ctl reconfigure

กระบวนการนี้อาจใช้เวลาสักครู่เพราะจะเริ่มต้น GitLab ด้วยข้อมูลการตั้งค่าใหม่โดยอัตโนมัติ ใบรับรอง SSL จะถูกออกให้ถ้าใช้โดเมน

ขั้นตอนที่ 4: เข้าถึงเว็บอินเทอร์เฟซ

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

https://[your_domain] OR http://[your_ip_address]

เมื่อเข้าครั้งแรก คุณจะเจอหน้าล็อกอิน

เพื่อเข้าสู่ระบบด้วยสิทธิ์แอดมินครั้งแรก ให้ล็อกอินด้วยชื่อผู้ใช้ root

สำหรับรหัสผ่าน คุณต้องเข้าถึงไฟล์บนเซิร์ฟเวอร์ Linux ที่เก็บรหัสผ่านนี้ไว้ ใช้คำสั่งนี้เพื่อเปิดไฟล์และค้นหาช่อง Password

sudo nano /etc/gitlab/initial_root_password
# WARNING: ค่านี้ใช้ได้เฉพาะในเงื่อนไขต่อไปนี้เท่านั้น

# 1. ถ้ากำหนดเอง (ผ่านตัวแปรแวดล้อม `GITLAB_ROOT_PASSWORD` หรือผ่านการตั้งค่า `gitlab_rails['initial_root_password']` ใน `gitlab.rb`) ก่อนฐานข้อมูลถูกสร้างครั้งแรก

# 2. รหัสผ่านยังไม่ถูกเปลี่ยนด้วยตนเอง ไม่ว่าจะผ่าน UI หรือคำสั่ง

#

# ถ้ารหัสผ่านนี้ใช้ไม่ได้ คุณต้องรีเซ็ตรหัสผ่านแอดมินตาม https://docs.gitlab.com/ee/security/reset_user_password.html#reset-your-root-password

Password: `[รหัสผ่านของคุณอยู่ที่นี่]`

# หมายเหตุ: ไฟล์นี้จะถูกลบอัตโนมัติหลังจากรัน reconfigure ครั้งแรกภายใน 24 ชั่วโมง

กรอกชื่อผู้ใช้และรหัสผ่านในหน้าล็อกอินเพื่อเข้าสู่แดชบอร์ด GitLab ครั้งแรก คุณจะสามารถเข้าถึงแผงควบคุม GitLab บนเซิร์ฟเวอร์ Linux ของคุณเองได้แล้ว

เราแนะนำให้สร้างผู้ใช้ใหม่และ/หรือเปลี่ยนรหัสผ่านของผู้ใช้ root โดยเข้าไปที่ Admin มุมล่างซ้าย แล้วเลือก Overview->Users ที่หน้านี้คุณจะจัดการผู้ใช้สำหรับ GitLab instance ของคุณได้

ตัวเลือกเสริม: ตั้งค่าไฟร์วอลล์ด้วย ufw

ถ้าไม่ต้องการตั้งค่าไฟร์วอลล์ หรือใช้ firewalld บน OpenSUSE อยู่แล้ว สามารถข้ามส่วนนี้ได้ ให้แน่ใจว่าอนุญาตพอร์ต 80/443 และพอร์ต 22

ติดตั้ง ufw

ถ้าคุณติดตั้ง ufw แล้ว สามารถข้ามขั้นตอนนี้ได้เลย

sudo apt-get install -y ufw

เปิดพอร์ตที่จำเป็น

sudo ufw allow http
sudo ufw allow https
sudo ufw allow OpenSSH

เปิดใช้งานไฟร์วอลล์

คำเตือน

คำสั่งนี้จะบล็อกการเข้าถึงพอร์ตทั้งหมดที่ไม่ได้อนุญาตไว้ใน whitelist ดังนั้นตรวจสอบให้แน่ใจว่า whitelist ตั้งค่าเรียบร้อยก่อนรันคำสั่งนี้

เพื่อให้ไฟร์วอลล์ทำงาน ให้เปิดใช้งานด้วยคำสั่งนี้

sudo ufw enable

สรุป

ยินดีด้วย คุณติดตั้ง GitLab สำเร็จแล้ว! หากมีคำถามหรือปัญหาเพิ่มเติม ติดต่อทีมซัพพอร์ตของเราได้เลย พร้อมช่วยเหลือคุณทุกวัน!

ถ้าต้องการตั้งค่าเพิ่มเติม แนะนำให้อ่าน เอกสาร GitLab อย่างเป็นทางการ สำหรับขั้นตอนถัดไป