Gogs เป็นวิธีที่ง่ายที่สุดในการเรียกใช้ Local Git Server (นี่คือวิธีตั้งค่า)

เผยแพร่แล้ว: 2023-01-03
โลโก้ Gogs บนพื้นหลังสีน้ำเงิน
โก๊ะ

ไม่ต้องการพุชโค้ดของคุณไปยังที่เก็บ Git ที่โฮสต์ใช่ไหม จากนั้นเรียกใช้เซิร์ฟเวอร์ Git ของคุณเองภายในองค์กร Gogs เป็นวิธีที่ง่ายที่สุดในการทำเช่นนั้น นี่คือวิธีการตั้งค่า

สารบัญ

ปัญหาเกี่ยวกับพื้นที่เก็บข้อมูลที่โฮสต์บนคลาวด์
Gogs คืออะไร?
วิธีการติดตั้ง Gogs
ทัวร์ด่วนของ Gogs
เซิร์ฟเวอร์ Git ที่ง่ายที่สุด - ไม่มีแถบ

ปัญหาเกี่ยวกับพื้นที่เก็บข้อมูลที่โฮสต์บนคลาวด์

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

GitHub คืออะไรและใช้ทำอะไร?
ที่เกี่ยวข้อง GitHub คืออะไร และใช้สำหรับอะไร

นั่นเป็นสาเหตุที่บริการอย่าง GitHub, GitLab และ BitBucket มีอยู่ และเหตุใดพวกเขาจึงเห็นการนำไปใช้และการเติบโตเช่นนี้ GitHub เพียงอย่างเดียวโฮสต์พื้นที่เก็บข้อมูลมากกว่า 200 ล้านแห่ง แต่ที่เก็บข้อมูลที่โฮสต์บนคลาวด์ไม่เหมาะกับทุกคน ส่วนใหญ่เรียกเก็บเงินจากโฮสต์ที่เก็บส่วนตัว บางส่วนกำหนดขีดจำกัดพื้นที่เก็บข้อมูล ขีดจำกัดผู้ใช้ หรือขีดจำกัดการถ่ายโอนข้อมูลในบัญชีฟรี

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

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

Gogs คืออะไร?

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

แม้ว่าคุณจะเป็นโปรแกรมเมอร์มือสมัครเล่น การใช้ Gogs เป็นบริการ Git บนเครือข่ายท้องถิ่นของคุณจะช่วยให้คุณเก็บสำเนาโค้ดของคุณไว้ห่างจากเครื่องพัฒนาของคุณ เมื่อคุณหรือคนอื่นๆ ต้องการทำงานบนคอมพิวเตอร์เครื่องอื่นหรือเครื่องใหม่ คุณเพียงแค่โคลนที่เก็บจากเซิร์ฟเวอร์ Gogs เช่นเดียวกับที่คุณทำจาก GitHub

หากคุณกำลังจะใช้ Gogs บ่อยๆ คุณอาจพบว่าสะดวกที่จะเพิ่มลงในแอปพลิเคชันเริ่มต้นของคอมพิวเตอร์ที่ใช้งานอยู่

ที่เกี่ยวข้อง: วิธีเรียกใช้โปรแกรม Linux เมื่อเริ่มต้นด้วย systemd

วิธีการติดตั้ง Gogs

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

Gogs ใช้ฐานข้อมูลสำหรับการจัดเก็บข้อมูลส่วนหลัง รองรับ MySQL, MariaDB, PostgreSQL และ TiDB หากคุณต้องการใช้เครื่องมือฐานข้อมูลที่ทรงพลังเหล่านี้ คุณต้องค้นหาและติดตั้งด้วยตนเองก่อนที่จะติดตั้ง Gogs สำหรับทีมขนาดเล็ก คุณสามารถใช้ SQLite3 หากคุณเลือกใช้ SQLite3 ระบบจะติดตั้งให้คุณ แน่นอน คุณจะต้องติดตั้ง git ด้วย

ดาวน์โหลดไบนารีที่เหมาะสม

  • สำหรับลีนุกซ์รุ่นใหม่ส่วนใหญ่ ให้ดาวน์โหลดไฟล์ “Linux amd64”
  • หากคุณใช้ Linux รุ่น 32 บิต ให้ดาวน์โหลดไฟล์ “Linux 386”
  • หากคุณกำลังติดตั้งบน Raspberry Pi 2 หรือ เก่ากว่า ให้ดาวน์โหลดไฟล์ “Linux armv7”
  • หากคุณกำลังติดตั้งบน Raspberry Pi 3, 3+ หรือ ใหม่กว่า ให้ดาวน์โหลดไฟล์ “Linux armv8”
  • หากคุณใช้ Intel Mac ให้ดาวน์โหลดไฟล์ “macOS amd64”
  • สำหรับ Apple Silicon Mac ให้ดาวน์โหลดไฟล์ “macOS arm64”

เราดาวน์โหลดไฟล์ ZIP “Linux amd64” สำหรับติดตั้งบนคอมพิวเตอร์ 64 บิตที่มี Ubuntu 22.10 ไฟล์มีขนาดเล็ก—ประมาณ 25MB เท่านั้น—ดังนั้นอย่าแปลกใจหากจะดาวน์โหลดเร็วมาก นั่นเป็นเรื่องปกติ

ค้นหาไฟล์ในระบบไฟล์ของคุณ หากคุณเก็บตำแหน่งการดาวน์โหลดเริ่มต้นของเบราว์เซอร์ไว้ ไฟล์นั้นอาจอยู่ในไดเร็กทอรี “~/Downloads” ของคุณ คลิกขวาแล้วเลือก "แยก" จากเมนูบริบท เบราว์เซอร์ไฟล์บางตัวอาจใช้ “แตกไฟล์ที่นี่” แทน

ไดเร็กทอรีถูกดึงมาจากไฟล์ ZIP ตั้งชื่อตามไฟล์ที่ดาวน์โหลด ในกรณีของเรา มันถูกเรียกว่า “gogs_0.11.91_linux_amd64”

ไดเร็กทอรีที่แยกออกมา ตั้งชื่อตามไฟล์ที่ดาวน์โหลด

ดับเบิลคลิกที่ไดเร็กทอรีที่แยกออกมาแล้วคุณจะเห็นไดเร็กทอรีอื่นชื่อ "gogs"

ไดเร็กทอรี gogs

ดับเบิลคลิกที่ไดเร็กทอรี "gogs" คุณจะเห็นไฟล์และไดเร็กทอรี Gogs คลิกขวาในหน้าต่างเบราเซอร์ไฟล์แล้วเลือก "เปิดใน Terminal" จากเมนูบริบท

ในการเริ่มอินสแตนซ์ Gogs ให้พิมพ์คำสั่งนี้:

./gogs เว็บ

การเริ่มต้นเซิร์ฟเวอร์ gogs Git

Gogs เปิดตัวและบอกคุณว่ากำลังฟังอยู่ที่พอร์ต 3000

เชื่อมต่อกับเซิร์ฟเวอร์ Gogs ของคุณโดยเปิดเว็บเบราว์เซอร์และนำทางไปยังที่อยู่ IP หรือชื่อเครือข่ายของคอมพิวเตอร์ที่ Gogs ทำงานอยู่ เพิ่ม “:3000” หลังที่อยู่ IP หรือชื่อเครือข่าย อย่าใส่ช่องว่างใดๆ

หากคุณกำลังเรียกดูบนคอมพิวเตอร์ที่ Gogs ทำงานอยู่ คุณสามารถใช้ “localhost” เป็นชื่อเครื่องได้ เช่น “localhost:3000” คอมพิวเตอร์ Gogs ของเราเรียกว่า “ubuntu-22-10.local” ดังนั้นจากคอมพิวเตอร์เครื่องอื่นในเครือข่ายเดียวกัน ที่อยู่ที่เราต้องเรียกดูคือ “ubuntu-22-10.local:3000” รวมทั้งหมายเลขพอร์ต

ในครั้งแรกที่คุณทำเช่นนี้ คุณจะเห็นแบบฟอร์มที่รวบรวมข้อมูลการตั้งค่าเริ่มต้นบางอย่าง

ส่วนเมนูการเลือกฐานข้อมูลของหน้าจอการกำหนดค่า Gogs

สิ่งแรกที่เราต้องทำคือเลือก "SQLite3" จากเมนูแบบเลื่อนลง "ประเภทฐานข้อมูล" และป้อนชื่อผู้ใช้ของคุณในช่อง "เรียกใช้ผู้ใช้"

ช่อง "เรียกใช้ผู้ใช้" ของหน้าจอการกำหนดค่า Gogs

หากคุณต้องการตั้งค่าการแจ้งเตือนทางอีเมล คุณจะต้องกำหนดค่าขั้นตอนเพิ่มเติมสองสามขั้นตอน คุณจะต้องส่งต่ออีเมลผ่านเซิร์ฟเวอร์อีเมล Simple Mail Transfer Protocol (SMTP) ที่คุณได้รับอนุญาตให้ใช้ หากคุณเป็นผู้ใช้ Google Gmail คุณสามารถใช้เซิร์ฟเวอร์ SMTP ของ Gmail ของ Google

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

Gogs กำหนดให้คุณป้อนข้อมูลต่อไปนี้เกี่ยวกับเซิร์ฟเวอร์อีเมลของคุณ

  • SMTP Host : ที่อยู่และพอร์ตของเซิร์ฟเวอร์อีเมล ในตัวอย่างของเรา นี่คือเซิร์ฟเวอร์ SMTP ของ Google ที่ smtp.gmail.com:587
  • จาก : ที่อยู่อีเมลที่จะส่งอีเมลจาก สำหรับ Gmail นี่ควรเป็นที่อยู่อีเมล Gmail ของบัญชีที่คุณกำลังใช้
  • อีเมลผู้ส่ง : ต้องตรงกับด้านบน นี่คือ ID บัญชีอีเมลที่ Gogs จะใช้เพื่อพูดคุยกับเซิร์ฟเวอร์ SMTP
  • รหัสผ่านผู้ส่ง : นี่ ไม่ใช่ รหัสผ่านสำหรับบัญชี Gmail เป็น รหัสผ่านเฉพาะแอปพลิเคชันที่ คุณได้รับจาก Google เมื่อคุณกำหนดค่าบัญชีของคุณเพื่ออนุญาตให้แอปพลิเคชันส่งอีเมลในนามของคุณ
  • เปิดใช้งานการยืนยันการลงทะเบียน : เพื่อให้ Gogs ยืนยันอีเมลของผู้ใช้ ให้เลือกช่องทำเครื่องหมายนี้ ผู้ใช้ใหม่จะได้รับอีเมลพร้อมลิงก์ในนั้น พวกเขาต้องคลิกเพื่อพิสูจน์ว่าที่อยู่อีเมลนั้นเป็นของจริงและอยู่ภายใต้การควบคุมของพวกเขา
  • เปิดใช้งานการแจ้งเตือนทางอีเมล : ทำเครื่องหมายในช่องนี้เพื่ออนุญาตการแจ้งเตือนทางอีเมลจาก Gogs

ส่วน "การตั้งค่าบริการอีเมล" ของหน้าจอการกำหนดค่า Gogs

แน่นอน หากคุณไม่ต้องการถูกรบกวนจากอีเมล คุณสามารถข้ามการตั้งค่าอีเมลทั้งหมดได้

คลิกปุ่มสีน้ำเงิน “ติดตั้ง Gogs” เมื่อคุณพร้อมที่จะดำเนินการต่อ Gogs เขียนไฟล์การกำหนดค่า เริ่มต้นพื้นที่จัดเก็บฐานข้อมูล และเริ่มต้นใช้งานอินสแตนซ์ Git ของคุณ

คุณจะเห็นหน้าแรกหลักของ Gogs

หน้าแรกของ Gogs

บัญชีผู้ใช้แรกที่คุณสร้างจะได้รับสิทธิ์ของผู้ดูแลระบบโดยอัตโนมัติ คลิกลิงก์ “ลงทะเบียน”

การสร้างบัญชีบนเซิร์ฟเวอร์ Gogs

กรอกแบบฟอร์ม "ลงทะเบียน" ด้วยชื่อบัญชีของคุณ รหัสผ่านสำหรับบัญชีนี้ (ป้อนสองครั้ง) และตัวเลขจาก Captcha คลิกปุ่มสีเขียว “สร้างบัญชีใหม่” คุณจะเห็นหน้า “ลงชื่อเข้าใช้”

ลงชื่อเข้าใช้ Gogs

ป้อนชื่อบัญชีและรหัสผ่านของคุณ แล้วคลิกปุ่ม "ลงชื่อเข้าใช้" สีเขียว

ทัวร์ด่วนของ Gogs

หากคุณคุ้นเคยกับอินสแตนซ์ Git อื่น ๆ ที่เข้าถึงเว็บได้ คุณจะหาทางไปรอบ ๆ Gogs ได้อย่างง่ายดาย

แดชบอร์ด Gogs ก่อนสร้างที่เก็บใดๆ

มุมมอง "แดชบอร์ด" ของ Gogs นั้นกระจัดกระจายเล็กน้อยจนกว่าคุณจะมีที่เก็บข้อมูลให้ใช้งาน คลิกปุ่ม "+" สีน้ำเงิน และกรอกแบบฟอร์ม "New Repository"

ขอชื่อที่เก็บ ไม่ว่าจะเป็นแบบส่วนตัวหรือสาธารณะ และคำอธิบาย

การสร้างที่เก็บใหม่โดยระบุชื่อและรายละเอียดอื่นๆ

สามฟิลด์ถัดไปสร้างไฟล์จากเทมเพลต

สามฟิลด์ที่ควบคุมการสร้างไฟล์เริ่มต้นจากเทมเพลต

  • เมนู “.gitignore” ให้คุณเลือกเทมเพลตสำหรับไฟล์ “.gitignore” ที่กำหนดค่าด้วยการตั้งค่าตามภาษาที่เลือก คุณสามารถเลือกได้มากกว่าหนึ่งตัวเลือกจากเมนูนี้ เพื่อรองรับพื้นที่เก็บข้อมูลที่ใช้เทคโนโลยีการพัฒนาแบบผสมผสาน
  • เมนู "ใบอนุญาต" ให้คุณเลือกใบอนุญาตจากรายการที่ครอบคลุม
  • เมนู “Readme” มีตัวเลือกเดียว ไฟล์เริ่มต้นคือ “README.md”

ทำเครื่องหมายที่ช่องทำเครื่องหมาย “เริ่มต้นพื้นที่เก็บข้อมูลนี้ด้วยไฟล์และเทมเพลตที่เลือก” แล้วคลิกปุ่มสีเขียว “สร้างพื้นที่เก็บข้อมูล”

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

ที่เก็บใหม่ของคุณจะแสดงให้คุณเห็น Gogs ได้สร้างไฟล์มาตรฐานสามไฟล์สำหรับเรา และเพิ่มลงในที่เก็บพร้อมกับข้อความคอมมิต “Initial commit”

เราโคลนที่เก็บลงในคอมพิวเตอร์ของเรา เพิ่มไฟล์ชื่อ “ack.c” คอมมิตแล้วส่งไปยังที่เก็บ Gogs ระยะไกลของเรา ทั้งหมดนี้ทำโดยใช้คำสั่ง Git มาตรฐาน

การเพิ่มไฟล์ไปยังที่เก็บในเครื่องและพุชไปยัง Gogs

ตามที่คาดไว้ ไฟล์ใหม่ของเราปรากฏในที่เก็บ Gogs ของเรา

ที่เก็บที่มีไฟล์ใหม่พุชไปเรียบร้อยแล้ว

การคลิกที่ไฟล์จะแสดงเนื้อหาของแต่ละไฟล์ ไฟล์ Markdown ได้รับการตีความสำหรับคุณ โดยมีส่วนหัว ลิงก์ รายการ และคุณสมบัติ Markdown อื่นๆ ทั้งหมด ไฟล์ “README.md” มักจะเขียนด้วย Markdown

เนื้อหาของไฟล์ README.md ที่สร้างขึ้นโดยอัตโนมัติ

เมื่อคลิกที่ไอคอนดินสอ "แก้ไข" เราสามารถแก้ไขไฟล์ "README.md" ของเราได้โดยตรง เราได้เพิ่มข้อความเพิ่มเติม ใช้แท็ก Markdown เพื่อแทรกไฮเปอร์ลิงก์และตัวเอียง และยอมรับการเปลี่ยนแปลงของเรา ทั้งหมดจากภายใน Gogs

ไฟล์ README.md ที่อัปเดตแล้ว

ย้อนกลับไปในมุมมองพื้นที่เก็บข้อมูลของเรา ไฟล์ "README.md" ที่อัปเดตของเราจะแสดงขึ้น และรายการ "README.md" ในรายการไฟล์จะแสดงข้อความคอมมิตใหม่และเวลาอัปเดต

ไฟล์ README.md ที่อัปเดตพร้อมข้อความยืนยันใหม่และการประทับเวลา

เซิร์ฟเวอร์ Git ที่ง่ายที่สุด – ไม่มีแถบ

Gogs เป็นชัยชนะที่แน่นอน ผสมผสานการใช้งานเข้ากับความเรียบง่ายได้อย่างลงตัว

มันจะตอบสนองความต้องการของมือสมัครเล่นส่วนใหญ่หรือทีมพัฒนาขนาดเล็กนอกกรอบ ตัวเลือกขั้นสูงบางอย่างเปิดใช้งานโดยแก้ไขไฟล์ปรับแต่ง ซึ่งตามค่าเริ่มต้นจะอยู่ที่ “~/Downloads/gogs_0.12.10_linux_amd64/gogs/custom/conf/app.ini” โปรดทราบว่าเส้นทางจะแสดงเวอร์ชันของ Gogs ที่คุณกำลังใช้

การดูแลระบบทั่วไปสามารถทำได้จากแผงการดูแลระบบ ซึ่งพบได้ที่ Your Profile > Admin panel

แม้ว่าเอกสารประกอบของ Gogs จะสั้นจนถึงขั้นสั้น แต่นั่นหมายความว่าคุณสามารถค้นหาสิ่งที่คุณต้องการได้ง่าย และคำอธิบายมีรายละเอียดเพียงพอสำหรับคุณในการปฏิบัติตาม

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

ที่เกี่ยวข้อง: วิธีตรวจสอบและอัปเดตเวอร์ชัน Git ของคุณ