โครงสร้างพื้นฐานส่วนตัว / ไม่ต้องใช้บัตรประชาชนอ่านหลักคำสอนด้านความเป็นส่วนตัว
บันทึกภาคสนาม KoalaVPS

โรงตีเหล็กเล็ก ๆ ที่คุณสร้างใหม่ได้

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

เลือกชั้นการทำงานร่วมกัน

Forgejo และ Gitea เป็นตัวอย่างของซอฟต์แวร์ forge แบบเบา Git SSH ธรรมดาอาจเพียงพอสำหรับเวิร์กโฟลว์ที่เล็กกว่า จับคู่ประเด็น การตรวจสอบ พื้นที่จัดเก็บแพ็กเกจ และข้อกำหนดด้านตัวตนให้เข้ากับโครงการ ตรวจสอบเวอร์ชันที่รองรับในปัจจุบันและใบอนุญาต

แยกบิลด์ออกจาก forge

CI runner รันโค้ดที่ควบคุมโดยโปรเจกต์และไม่ควรถือข้อมูลรับรอง forge หรือโฮสต์แบบไม่จำกัด แยก runner ออก ขอบเขตโทเค็น และหลีกเลี่ยงการรันงานที่ไม่น่าเชื่อถือบนบัญชีที่มีสิทธิ์สูงเดียวกับบริการที่เก็บโค้ด

ปกป้องการเข้าถึงและการลงทะเบียน

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

สำรองข้อมูลบริการทั้งหมด

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

รายการตรวจสอบการกู้คืน forge

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

จำกัดสิทธิ์การติดตั้งให้แคบ

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

ใช้บริการทำงานร่วมกันที่เล็กที่สุดที่เพียงพอ

สำหรับที่เก็บข้อมูลส่วนตัวเพียงไม่กี่แห่ง Git แบบ bare ผ่าน SSH ที่จำกัดอาจเพียงพอ Forgejo หรือ Gitea เพิ่มบัญชี คำขอดึง ปัญหา และแพ็กเกจเสริม โดยมีต้นทุนเป็นฐานข้อมูล การอัปเดตแอปพลิเคชัน และสถานะที่คงอยู่มากขึ้น บันทึกว่าทีมจะใช้ฟีเจอร์ใดจริง ๆ กันงบประมาณการเติบโตของที่เก็บข้อมูล ออบเจกต์ไฟล์ขนาดใหญ่ ไฟล์แนบ และอาร์ติแฟกต์บิลด์แยกต่างหาก การประมวลผล CI อาจเกินกว่าตัว forge เอง

  • เลือกชื่อ HTTPS แบบมาตรฐานและปกป้องบัญชี DNS ของมัน
  • ตัดสินใจว่าการสมัครสมาชิกจะปิดรับ แบบเชิญเท่านั้น หรือแบบมีผู้ดูแล
  • มอบตัวตนที่ไม่มีสิทธิ์พิเศษและที่จัดเก็บส่วนตัวแบบถาวรให้กับบริการ forge

แยกเส้นทางเว็บ SSH และฐานข้อมูลออกจากกัน

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

  • ตรวจสอบความเป็นเจ้าของ persistent volume ก่อนเริ่มแอปพลิเคชัน
  • ใช้ผู้ใช้ฐานข้อมูลที่จำกัดเฉพาะฐานข้อมูล forge
  • เก็บ CI runner ไว้ในขอบเขตความเชื่อถือแยกต่างหาก โดยเฉพาะสำหรับรีโพซิทอรีที่ไม่น่าเชื่อถือ

ตรวจสอบการโคลน การพุช และการดำเนินการที่ถูกปฏิเสธ

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

# Use the disposable repository URL advertised by your forge:
git clone ssh://[email protected]:2222/team/check.git
# In a clone, inspect which remote is configured:
git remote -v

กู้คืนการสนทนาพร้อมกับรีโพซิทอรี

สำรองข้อมูลแอปพลิเคชัน/ฐานข้อมูลอย่างสอดคล้องกัน ที่เก็บรีโพซิทอรี ไฟล์แนบ ข้อมูล LFS การกำหนดค่า และความลับการเข้ารหัสที่จำเป็น ปฏิบัติตามขั้นตอนสำรองข้อมูลของเวอร์ชันฟอร์จที่ติดตั้งไว้ คำสั่งสำรองข้อมูลของ Gitea ไม่สามารถใช้แทนกันได้โดยอัตโนมัติกับทุกเวอร์ชันของ Forgejo สร้างใหม่ในสภาพแยกและตรวจสอบ issue ไฟล์แนบ การเข้าสู่ระบบ และการโคลน หาก push ล้มเหลวหลังย้าย ให้ตรวจสอบโฮสต์/พอร์ต SSH การแมปคีย์ สิทธิ์ที่เก็บข้อมูล และ URL ของการโคลนที่ประกาศไว้ ก่อนเปลี่ยนสิทธิ์รีโพซิทอรีทั่วทั้งระบบ

กำหนดค่าโครงสร้างพื้นฐานของคุณ

ควบคุมด้วยตัวคุณเอง
ติดตั้งตามเงื่อนไขของคุณ

ไม่มีเอกสารยืนยันตัวตน เข้าถึงผู้ดูแลระบบเต็มรูปแบบ การเรียกเก็บเงินแบบคริปโตโดยกำเนิด