เชื่อม Git (GitHub / GitLab) ให้ BrewInTH ดึงโค้ดไป deploy

เผยแพร่แอปจาก Git repository แทนไฟล์ ZIP: ใส่ลิงก์ https เลือก branch ทำ token อ่านอย่างเดียวสำหรับ private และข้อจำกัดที่ควรรู้
ถ้าโค้ดของคุณอยู่บน GitHub หรือ GitLab อยู่แล้ว การบีบเป็นไฟล์ ZIP แล้วอัปโหลดทุกครั้งที่แก้เป็นงานซ้ำซ้อน และบางทีก็เผลอส่งไฟล์ชุดเก่าขึ้นไป
BrewInTH ดึงโค้ดจาก Git repository ไป build และเผยแพร่ให้ได้โดยตรง บทความนี้อธิบายวิธีตั้งค่าทีละขั้น ทั้ง repository แบบ public และ private วิธีทำ token แบบอ่านอย่างเดียว และข้อจำกัดที่ควรรู้ก่อนใช้
สรุปสั้นก่อนอ่าน
✅ โปรเจกต์แบบแอป (Node, Python, PHP, Laravel, Go, Java, .NET, Ruby, Bun) เผยแพร่จาก Git repository ได้แทนไฟล์ ZIP
✅ ใช้ลิงก์แบบ https เท่านั้น ได้ทั้ง GitHub, GitLab, Bitbucket หรือ Git host อื่นที่เข้าถึงจากอินเทอร์เน็ต
✅ repository แบบ private ใช้ token อ่านอย่างเดียวที่เจ้าของบันทึกในคอนโซล ระบบเก็บแบบเข้ารหัสและไม่แสดงอีก
✅ ระบบไม่เผยแพร่เองเมื่อ push ต้องกด Build และเผยแพร่ หรือสั่ง AI ทุกครั้งที่อยากให้ขึ้น
✅ ทุกเวอร์ชันบันทึก commit ที่ build ไว้ จึงรู้เสมอว่าเว็บตอนนี้คือโค้ดชุดไหน
เผยแพร่จาก Git คืออะไร ต่างจากอัปโหลด ZIP ยังไง
ปกติการนำแอปขึ้น BrewInTH คือส่งซอร์สโค้ดเป็นไฟล์ ZIP หนึ่งไฟล์ แล้วเครื่อง build ของระบบติดตั้ง dependency และสร้างเวอร์ชันใหม่ให้ การเผยแพร่จาก Git ทำงานเหมือนกันทุกอย่าง ต่างกันแค่ที่มาของโค้ด คือระบบไป clone จาก repository ของคุณเองแทนการรอไฟล์

เหมาะกับใคร
- คนที่ใช้ coding agent เขียนโค้ดแล้ว push ขึ้น GitHub เป็นประจำ
- ทีมที่ทำงานหลายคนบน repository เดียวกัน
- คนที่อยากรู้ชัดว่าเว็บที่ออนไลน์อยู่ตรงกับ commit ไหน
ถ้าคุณไม่เคยใช้ Git และให้ AI ส่งไฟล์ให้โดยตรง ใช้วิธีเดิมต่อได้ ไม่จำเป็นต้องเปลี่ยน
ต้องเตรียมอะไรบ้าง
- โปรเจกต์แบบแอปที่เลือกเทคโนโลยีไว้แล้ว การเผยแพร่จาก Git ใช้กับเว็บ static ไม่ได้ และโปรเจกต์ที่ตั้งเทคโนโลยีเป็น "ให้ระบบเลือกให้" ต้องเผยแพร่ครั้งแรกด้วยการอัปโหลดก่อน หรือเลือกเทคโนโลยีให้ชัดตั้งแต่ตอนสร้างโปรเจกต์
- ลิงก์ repository แบบ https เช่น
https://github.com/myname/myappลิงก์แบบgit@github.com:...หรือssh://ใช้ไม่ได้ และห้ามใส่ชื่อผู้ใช้หรือ token ไว้ในลิงก์ - ไฟล์ของแอปอยู่ที่รากของ repository เช่น
package.jsonพร้อม lock file,requirements.txtหรือcomposer.jsonเหมือนกับที่ต้องอยู่ที่รากของไฟล์ ZIP - ถ้าเป็น private: token แบบอ่านอย่างเดียว (ดูหัวข้อถัดไป)
ตั้งค่าทีละขั้น

1. เปิดแท็บการเผยแพร่ แล้วเลือก Git repository
เปิดโปรเจกต์ ไปที่แท็บ การเผยแพร่ ในส่วน เผยแพร่เวอร์ชันใหม่ จะมีตัวเลือกสองแบบ คือ ไฟล์ .zip ที่อัปโหลด และ Git repository เลือกแบบหลัง
2. ใส่ลิงก์และ branch
- ลิงก์ repository (https) เช่น
https://github.com/myname/myapp - Branch / tag / commit เช่น
mainถ้าเว้นว่าง ระบบใช้ default branch ของ repository
3. repository แบบ private: ใส่ token
ช่อง Token สำหรับ private repository ใส่เฉพาะเมื่อ repository เป็น private ถ้าเป็น public ข้ามไปได้เลย ช่อง ชื่อผู้ใช้ของ token เว้นว่างได้สำหรับ GitHub, GitLab และ Bitbucket
4. บันทึกและตรวจการเข้าถึง
กด บันทึกแหล่งโค้ด แล้วกด ตรวจการเข้าถึง (ใช้ token ที่บันทึกไว้) ถ้าทุกอย่างถูก จะขึ้นข้อความ เข้าถึงได้ พร้อมชื่อ branch และรหัส commit 7 ตัวแรก ถ้าไม่ผ่าน ข้อความจะบอกว่าลิงก์ผิด token ไม่มีสิทธิ์ หรือหา branch ไม่เจอ
5. กด Build และเผยแพร่
ดูผลใน ตรวจความพร้อมก่อนเผยแพร่ แล้วกด Build และเผยแพร่ ระบบจะ clone โค้ด build บนเครื่องแยก แล้วสลับขึ้นใช้งานเมื่อแอปตอบได้ปกติ ใน ประวัติการเผยแพร่ เวอร์ชันที่มาจาก Git จะมีป้าย เช่น main@a1b2c3d บอก branch และ commit
ทำ token อ่านอย่างเดียวสำหรับ private repository
หลักคือให้สิทธิ์ น้อยที่สุด: อ่านโค้ดได้อย่างเดียว และเฉพาะ repository นี้
- GitHub: สร้าง fine-grained personal access token เลือกเฉพาะ repository ที่ต้องใช้ และให้สิทธิ์ Contents แบบ Read-only
- GitLab: สร้าง deploy token หรือ project access token ที่มี scope
read_repository - Bitbucket: สร้าง repository access token ที่มีสิทธิ์อ่าน repository
ชื่อเมนูในแต่ละเว็บเปลี่ยนได้ตามเวอร์ชัน ถ้าหาไม่เจอ ถาม AI ว่า "สร้าง token อ่านอย่างเดียวสำหรับ repository เดียวบน GitHub ยังไง" ได้เลย
สิ่งที่ BrewInTH ทำกับ token
- เก็บแบบเข้ารหัส และ ไม่แสดงให้ดูอีก หลังบันทึก
- ใช้กับ Git host ที่บันทึกไว้เท่านั้น ถ้า repository ถูกย้ายไป host อื่น token จะไม่ถูกส่งตามไป
- ตั้งหรือเปลี่ยนได้จากคอนโซลของเจ้าของเท่านั้น AI ที่ถือ token ของโปรเจกต์สั่งเผยแพร่จาก repository นี้ได้ แต่ตั้งหรืออ่าน token ของ repository ไม่ได้
- ลบได้ทุกเมื่อด้วยปุ่ม ลบ token
เมื่อ token หมดอายุ การเผยแพร่ครั้งถัดไปจะไม่ผ่าน ให้สร้าง token ใหม่แล้วใส่ในช่องเดิม
อัปเดตเว็บเมื่อแก้โค้ด
BrewInTH ไม่เผยแพร่เองเมื่อคุณ push การ push เป็นแค่การเก็บโค้ด เว็บจะเปลี่ยนเมื่อคุณสั่งเท่านั้น ซึ่งดีตรงที่งานที่ยังไม่เสร็จจะไม่หลุดขึ้นเว็บจริง
มีสองวิธี
- กดเอง: แท็บ การเผยแพร่ เลือก Git repository แล้วกด Build และเผยแพร่ ระบบดึง commit ล่าสุดของ branch ที่บันทึกไว้
- ให้ AI ทำ: ใน coding agent ที่เชื่อมกับโปรเจกต์แล้ว สั่งแบบนี้
push งานล่าสุดขึ้น branch main แล้วเผยแพร่โปรเจกต์บน BrewInTH จาก Git repository ที่บันทึกไว้
(deployment_plan แล้ว deployment_apply ด้วย {"git":{}})
รอจนเวอร์ชันใหม่ active แล้วเปิดเว็บตรวจว่าใช้งานได้ บอก commit ที่ถูก build ด้วย
อยากปล่อยเฉพาะเวอร์ชันที่ตั้งใจ ให้ใช้ tag เช่น ใส่ v1.2.0 ในช่อง Branch / tag / commit แทนชื่อ branch
ข้อจำกัดที่ควรรู้

- ไม่ดึง submodule และ Git LFS ระบบ clone แบบตื้นเฉพาะ branch หรือ tag ที่เลือก ถ้าโปรเจกต์ใช้ submodule ให้รวมโค้ดนั้นเข้ามาใน repository หรือกลับไปใช้ไฟล์ ZIP
- ไม่รับ symlink และขนาดโค้ดมีเพดานเดียวกับไฟล์ ZIP
- ค่าลับไม่ควรอยู่ใน repository ไฟล์
.envที่มีรหัสจริงอย่า commit ให้ตั้งในแท็บ ตั้งค่าแอป ของโปรเจกต์แทน - เว็บ static ยังต้องอัปโหลดไฟล์ ถ้าเป็นเว็บ React หรือ Vue ที่ต้อง build ให้สร้างโปรเจกต์เป็น Node แล้วระบบจะ build ให้
- โปรเจกต์ที่ผูก Git แล้ว จะไม่อยู่ในรายการให้เลือกของหน้า อัปโหลดแล้วขึ้นเว็บ เพื่อกันไฟล์ ZIP ไปทับงานที่มาจาก repository
ดูวิดีโอประกอบ
▶ ตัวอย่างตั้งแต่สร้างโปรเจกต์จนเปิดเว็บ (1:30 นาที)
ดูบน YouTube
คำถามที่พบบ่อย
push แล้วเว็บอัปเดตเองไหม
ไม่ ต้องกด Build และเผยแพร่ หรือให้ AI สั่งเผยแพร่ทุกครั้ง
ใช้ลิงก์แบบ SSH (git@github.com) ได้ไหม
ไม่ได้ รองรับเฉพาะลิงก์ที่ขึ้นต้นด้วย https:// ในหน้า repository ของ GitHub หรือ GitLab เลือกคัดลอกลิงก์แบบ HTTPS
แอปอยู่ในโฟลเดอร์ย่อยของ repository ได้ไหม
ไฟล์กำหนดโปรเจกต์ เช่น package.json ต้องอยู่ที่รากของ repository ถ้า repository มีหลายแอป แนะนำแยกแอปที่จะขึ้นเว็บออกเป็น repository ของตัวเอง หรือใช้ไฟล์ ZIP ของโฟลเดอร์นั้น
เปลี่ยนกลับไปใช้ไฟล์ ZIP ได้ไหม
ได้ ในแท็บ การเผยแพร่ เลือก ไฟล์ .zip ที่อัปโหลด แล้วเผยแพร่ตามปกติ แต่ละเวอร์ชันเลือกแหล่งโค้ดได้อิสระ
เวอร์ชันใหม่มีปัญหา ย้อนกลับได้ไหม
ได้ ใน ประวัติการเผยแพร่ กด กลับมาใช้เวอร์ชันนี้ ที่เวอร์ชันก่อนหน้า ป้าย branch และ commit ช่วยให้รู้ว่ากำลังย้อนไปโค้ดชุดไหน
build ไม่ผ่าน ดูสาเหตุที่ไหน
เปิด log ของเวอร์ชันนั้นในประวัติการเผยแพร่ หรือให้ AI อ่าน log แล้วแก้ จากนั้น push และเผยแพร่ใหม่
สรุป
ถ้าโค้ดอยู่บน Git อยู่แล้ว ให้ BrewInTH ดึงไป build เองสะดวกกว่าและตรวจสอบย้อนหลังได้ดีกว่า ใส่ลิงก์ https เลือก branch ใส่ token อ่านอย่างเดียวถ้าเป็น private กดตรวจการเข้าถึง แล้วกด Build และเผยแพร่ ทุกครั้งที่พร้อมปล่อย
