สร้าง Gitlab ไว้ใช้งานเอง

มาสร้าง gitlab server ไว้ใช้งานส่วนตัวของตัวเอง จริงๆก็ไม่มีเหตุผลอะไรมากที่สร้าง gitlab server ส่วนเพราะไม่ต้องการใช้งานรวมกับคนอื่น และไม่อยากจะจ่ายตังค์เพิ่มเท่านั้นละครับ เพราะมี server ของตัวเองอยู่แล้ว

gitlab จริงแล้วเป็น opensource ซึงสามารถ download มา install สร้าง server ได้เองอยู่ ดูรายละเอียดได้ที่ gitlab แต่วันนี้จะมาสร้างโดยใช้วิธีการของผมเองซึ่งอาจจะมี config ของ os ใน server ที่แตกต่างจาก document ของ gitlab บ้างเล็กน้อย  os server ที่ผมใช้เป็น  ubunbtu 18.04 และมี apache เป็น webserver อยุ่แล้ว (ถ้าใครไม่ได้ใช้ apache ทำแค่ step 1-2 พอ) ไม่เสียเวลามาเริ่มกันเลยละกันครับ

Step 1:

  • curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh > script.deb.sh
  • chmod +x script.deb.sh
  • ./script.deb.sh
  • apt-get install gitlab-ce

อธิบาย Step 1 กันหน่อยละกันครับ
บรรทัด 1 เป็นการใช้ curl ไป get file script.deb.sh (อาจจะใช้ wget ในการ get file ก็ได้นะ)
บรรทัด 2,3 เป็นการ run file ที่ load มา ซึ่ง file ที่ load มาจะ check package ที่มีอยู่ใน os เราถ้าขาดอะไรที่จำเป็นในการ Install gitlab-ce ก็จะ download และ install ให้ auto
บรรทัด 4 เป็นการ download และ install gitlab-ce

Step 2:

  • nano /etc/gitlab/gitlab.rb
    • แก้บรรทัด external_url "http://<yourdomain>"
  • gitlab-ctl reconfigure

ใน Step 2 เป็นการแก้ file config ของ gitlab-ce โดยให้ใส่ชื่อ host ของ domain ตัวเอง หรือถ้าไม่มีก็ใส่เลข IP แทนก็ได้ run จากนั้นสั่ง re-config gitlab-ce และ run การสั่ง run ครั้งนี้จะเป็น การเรียก nginx เป็น webserver นะครับ ใคร run apache อยู่ระวังพังนะครับเพราะ port ชนกันนะครับ

Step 3:
step ต้องแก้ file config ของ gitlab-ce และ apache กันนะครับ เริ่มจาก file /etc/gitlab/gitlab.rb 

external_url "http://<yourdomain>"
nginx['enable'] = false
web_server['external_users'] = ['www-data']

การแก้ file gitlab.rb เป็นการเพื่อปิดการทำงานของ nginx ที่มากับ gitlab-ce และเปลี่ยน user เป็น www-data ของ apache บน ubuntu

ขั้นต่อไปเป็นการสร้าง config สำหรับ site ที่จะใช้งานของ gitlab โดยเข้าไปที่ folder /etc/apache2/sites-available แล้วใช้ nano สร้าง file โดยใช้คำสั่งดังนี้ nano gitlab.conf เพื่อเพิ่มดังตัวอย่าง

<VirtualHost *:80>

ServerName <your_domain_or_sub_domain>
ServerSignature Off

ProxyPreserveHost On
AllowEncodedSlashes NoDecode

<Location />
Require all granted

ProxyPassReverse http://127.0.0.1:8080
ProxyPassReverse <your_domain_or_sub_domain>
</Location>

RewriteEngine on
RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_FILENAME} !-f
RewriteRule .* http://127.0.0.1:8080%{REQUEST_URI} [P,QSA]

DocumentRoot /opt/gitlab/embedded/service/gitlab-rails/public

</VirtualHost>

ก่อนเริ่มใช้งาน ต้องเพิ่ม module เหล่านี้ใน apache2 ด้วยนะ โดย run คำสั่งดังต่อไปนี้

  • a2enmod proxy_http
  • a2enmod rewrite
  • a2enmod ssl
  • a2enmod headers
  • a2ensite gitlab.conf
  • service apache2 restart
  • gitlab-ctl reconfigure

โอเคครับเป็นอัน เรียบร้อยลองเข้าไป setting ต่อที่ gitlab ของตัวเองที่สร้างได้เลยครับ โดย username ที่ใช้คือ root ส่วน password 5iveL!fe ซึ่งเป็น default ของระบบ เข้าไปเล่น เปลี่ยนเองนะครับ เป็นอันจบครับ

0 comments on “สร้าง Gitlab ไว้ใช้งานเองAdd yours →

Leave a Reply

Your email address will not be published. Required fields are marked *