git: private repository โดยใช้ synology server

เดี่ยวนี้ถ้าต้องการจะใช้ git repository ก็แค่สมัครสมาชิกเว็บอย่าง github แค่กรอกข้อมูลใน Join GitHub ไม่นานก็ได้พื้นที่สำหรับ backup ข้อมูลได้แล้ว ติดแค่ว่าถ้าเป็น project ภายในหรือเป็นเรื่องเกี่ยวกับธุรกิจการจะเปิดให้คนอื่นใครก็ได้เข้ามาดู source code คงจะไม่ดีแน่ ทำให้ต้องจ่ายค่าบริการเพื่ิอสร้างเป็น private repository หรืออีกทางเลือกคือ สร้าง git server ไว้ใช้เอง

ผมมีตัว nas ของ synology อยู่แล้วเลยใช้มันเป็นที่สำรองข้อมูลซะเลย จะได้ไม่ต้องสร้าง linux มาทำเป็น server อีกตัว

  1. login เข้า synology Control Panel โดยใช้ user ที่มีสิทธิ administrator
  2. ลง git package โดยวิธี Install or Buy Packages
  3. set user permission ให้ใช้ group git ได้โดยวิธี Manage Groups
  4. เปิดให้ใช้ ssh ได้โดยวิธีตาม Terminal
  5. SSH login synology nas ได้โดยวิธี How to login to DSM with root permission via SSH/Telnet
  6. สร้าง folder ไว้เก็บข้อมูล git ทั้งหมดและเซ็ทสิทธิไว้
    # Create the directory
    mkdir /volume1/git

    # folder owner and permission
    chown -R admin:administrators git
    chmod -R 772 git

  7. เตรียมการสำเร็จแล้ว เราสามารถสร้าง repository ขึ้นมาใหม่ได้โดย
    cd /volume1/git
    git init --bare --shared [my-project].git

    โดยแทนที่

    [my-project]

    โดยชื่อ git project

    ในขั้นตอนนี้ folder [my-project].git จะถูกสร้างขึ้นมาใหม่ใน /volume1/git/ และจะเห็นข้อความประมาณ Initialized empty shared Git repository in /volume1/git/snippets.git/ ก็เป็นอันเสร็จกับทางฝั่ง git server แล้ว

  8. จากนั้นก็ clone git ในเครื่อง client (ฝั่ง local) ได้โดยใช้คำสั่ง
    git clone ssh://[git-user]@[syn-ip-addr]/volume1/git/[my-project].gitโดย
    [git-user]
    user ที่เซ็ตไว้
    [syn-ip-addr]
    ip ของตัว nas synology
    [my-project]
    path และชือ repository

    เช่น
    git clone ssh://phunsanit@198.2.8.5/volume1/git/chromeExtensions/pittBookmarks.git

อาจจะดูยุ่งยากแต่ repository ต่อไปแค่ทำ 2 ขั้นตอนสุดท้าย ก็สามารถทำงานอย่างเป็นส่วนตัวได้แล้ว