ค้นหาเว็บไซต์

ฉันทิ้ง GitHub แล้วตั้งเซิร์ฟเวอร์ส่วนตัวของตัวเอง


ฉันรัก GitHub และได้ใช้งานมาหลายหลายปีแล้ว แต่ GitHub ไม่ใช่ตัวเลือกที่ดีที่สุดสำหรับการปรับแก้โค้ดเสมอไป เมื่อฉันเริ่มสร้างแอปส่วนตัวบางตัว ฉันจึงตัดสินใจหาตัวเลือกอื่น และสุดท้ายก็ลงเอยด้วยการโฮสต์เซิร์ฟเวอร์ git ส่วนตัวด้วยตัวเองแทน

GitHub เหมาะสำหรับโครงการขนาดใหญ่หรือโครงการสาธารณะ

ฉันชอบการค้นหาโปรแกรมโอเพนซอร์สฟรีบน GitHub

ฟังนะ GitHub มันยอดเยี่ยมมาก มันเป็นแหล่งทรัพยากรที่ยอดเยี่ยมสำหรับโปรเจกต์โอเพนซอร์ส และยังเป็นที่เก็บซอฟต์แวร์โอเพนซอร์สฟรีที่ดีด้วย ฉันใช้ GitHub มานานเกือบ 15 ปีในหลายบทบาทต่าง ๆ

ตั้งแต่การสร้าง Android ROMs ไปจนถึงการใช้งานโครงการโอเพ่นซอร์สเต็มรูปแบบที่ฉันใช้ใน homelab ของฉัน GitHub มีที่พิเศษในใจของฉัน มันเป็นแพลตฟอร์มที่เรียบง่าย ให้ผู้คนมีที่กลางในการค้นหาโปรแกรมซอฟต์แวร์ และกลายเป็นที่นิยมสำหรับการแก้ไขโค้ดและการเปิดซอร์สซอฟต์แวร์ แม้แต่สำหรับบริษัทใหญ่ๆ อย่าง Apple หรือ Microsoft

GitHub มีโครงการแบบ "ส่วนตัว" แต่ไม่ได้รับประกันความเป็นส่วนตัว

โปรเจกต์ส่วนตัวจะเป็นส่วนตัวเท่ากับบัญชี GitHub ของคุณเท่านั้น

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

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

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

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

แอปที่ผมกำลังเขียนและต้องการรักษาสิทธิ์ความเป็นเจ้าของโค้ด 100% ตั้งแต่ต้นจนจบ ผมปฏิเสธที่จะนำขึ้น GitHub เพราะมีความเสี่ยงมากเกินไปหากต้องเก็บโค้ดไว้ที่นั่น ส่วนโค้ดสาธารณะที่ผมอยากจะแบ่งปันกับโลก? โค้ดพวกนั้นควรอยู่บน GitHub และผมยินดีที่จะโพสต์ให้ทุกคนเห็น

การโฮสต์ GitLab ของตัวเองทำให้ฉันมีการควบคุมเต็มที่เหนือโครงการต่าง ๆ

ฉันเป็นคนรับผิดชอบเรื่องความปลอดภัยของเซิร์ฟเวอร์บ้านของฉัน

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

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

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

มีใครสามารถทำการวิศวกรรมย้อนกลับแอปที่ฉันปล่อยเพื่อหาซอร์สโค้ดได้ไหม? ฉันมั่นใจว่าได้ แต่การทำแบบนั้นต้องใช้การสืบค้นและงานมากกว่าการบังเอิญเจอรีโปที่ใครบางคนลืมตั้งค่าเป็นส่วนตัว หรือแย่กว่านั้นคือการที่ใครบางคนแฮ็กเข้าไปเพราะบัญชีออนไลน์ถูกบุกรุก.


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

อย่างไรก็ตาม ในท้ายที่สุด รหัสของคุณก็มีความปลอดภัยเท่ากับบัญชี GitHub ของคุณ (หรือ GitHub เอง…หรือแม้แต่ Microsoft เอง) ซึ่งคุณก็ทำอะไรได้น้อยมากหากมีสิ่งใดถูกบุกรุก

บทความที่เกี่ยวข้อง