เห็นว่ามันใช้ฟรี 100%
ทำงานเหมือนเราต่อกับ Github เลย เพียงแต่ run บน local computer ได้
แต่เราก็ต้อง backup เครื่องเราเอง เกิดมันพังไปอะไรไป
ขั้นตอนตรงนี้ได้มาจาก Gemini
แต่ลองแล้ว ทำงานได้อยู่
เพียงแต่ตอนนี้มันทำงานด้วย SQLite มั้ง อาจจะยังรับกับ project ใหญ่ๆไม่ดี (หรือเปล่า)
เอาไว้ทดลองเพิ่มกับ Database ตัวอื่น
จากรูปนี้คือทดลอง access ผ่านจากอีกเครื่องใน network มาได้เลย
แต่ยังไม่ได้ลองทาง cmd line ผ่านทาง SSH

1. เตรียมไฟล์ docker-compose.yml
สร้างโฟลเดอร์สำหรับเก็บข้อมูล (เช่น forgejo) แล้วสร้างไฟล์ชื่อ docker-compose.yml ไว้ข้างใน โดยคัดลอกการตั้งค่านี้ไปวาง:
YAML
services:
server:
image: codeberg.org/forgejo/forgejo:10 # แนะนำให้ระบุเวอร์ชัน หรือใช้ :latest
container_name: forgejo
environment:
- USER_UID=1000
- USER_GID=1000
restart: always
networks:
- forgejo
volumes:
- ./forgejo-data:/data
- /etc/localtime:/etc/localtime:ro
ports:
- "3000:3000" # พอร์ตสำหรับหน้าเว็บ (HTTP)
- "222:22" # พอร์ตสำหรับ SSH (Git clone)
networks:
forgejo:
external: false
2. เริ่มการทำงาน (Startup)
เปิด Terminal ในโฟลเดอร์ที่มีไฟล์นั้นอยู่ แล้วรันคำสั่ง:
Bash
docker compose up -d
3. การตั้งค่าครั้งแรก (Initial Setup)
- เปิดเบราว์เซอร์ไปที่
http://localhost:3000 - คุณจะพบกับหน้า Install Page:
- Database Type: หากต้องการอะไรง่ายๆ สำหรับใช้ส่วนตัว ให้เลือก SQLite3 (ไม่ต้องตั้งค่าฐานข้อมูลเพิ่ม) แต่ถ้าใช้จริงจังแนะนำให้เพิ่มบริการ PostgreSQL ใน Docker Compose ครับ
- SSH Port: เปลี่ยนจาก
22เป็น222(ตามที่เราตั้งไว้ในไฟล์ Compose) - HTTP Port: ยังคงเป็น
3000
- เลื่อนลงมาด้านล่างสุดเพื่อสร้าง Admin Account (สำคัญมาก) แล้วกด Install Forgejo
ข้อควรทราบเพิ่มเติม
- การใช้ฐานข้อมูลภายนอก: หากคุณต้องการใช้ PostgreSQL หรือ MariaDB คุณต้องเพิ่ม Service นั้นๆ ลงใน
docker-compose.ymlและเชื่อมต่อผ่าน Network เดียวกัน - Environment Variables: คุณสามารถตั้งค่าคอนฟิกเกอร์ล่วงหน้าได้ผ่าน Env เช่น
FORGEJO__database__DB_TYPE=sqlite3เป็นต้น - Forgejo Runner: หากต้องการใช้ระบบ CI/CD (Actions) คุณจะต้องติดตั้ง
forgejo-runnerแยกต่างหากเป็นอีกหนึ่ง Container ครับ
เมื่อคุณติดตั้ง Forgejo เรียบร้อยแล้ว ขั้นตอนต่อไปคือการสร้างโปรเจกต์และเชื่อมโยงโค้ดในเครื่องของคุณ (Local) เข้ากับ Server ครับ
นี่คือขั้นตอนการทำงานแบบ Step-by-Step:
1. สร้าง Repository บน Forgejo
- เข้าไปที่หน้าเว็บ Forgejo ของคุณ (เช่น
http://localhost:3000) - กดปุ่ม + ที่มุมขวาบน แล้วเลือก New Repository
- ตั้งชื่อโปรเจกต์ (เช่น
my-awesome-app) และตั้งค่าความเป็นส่วนตัว (Public/Private) - กดปุ่ม Create Repository
2. เชื่อมต่อจากเครื่องของคุณ (Local)
หลังจากสร้างในเว็บแล้ว คุณจะได้ URL สำหรับเชื่อมต่อ (เช่น http://localhost:3000/username/my-awesome-app.git) ให้เลือกทำตามสถานการณ์ของคุณดังนี้:
กรณีที่ 1: มีโค้ดอยู่ในเครื่องอยู่แล้ว
เปิด Terminal ในโฟลเดอร์โปรเจกต์ของคุณแล้วรันคำสั่ง:
Bash
# เริ่มใช้งาน Git ในโฟลเดอร์ git init # เพิ่มไฟล์ทั้งหมดเข้าสู่การติดตาม git add . # บันทึกการเปลี่ยนแปลงครั้งแรก git commit -m "Initial commit" # เชื่อมต่อกับ Forgejo Server (เปลี่ยน URL เป็นของคุณ) git remote add origin http://localhost:3000/username/my-awesome-app.git # ส่งโค้ดขึ้นไปบน Server git push -u origin main
กรณีที่ 2: เริ่มจากศูนย์ (Clone ลงมา)
หากคุณสร้างไฟล์ README หรือไฟล์อื่นๆ บนเว็บไว้ก่อนแล้ว ให้ใช้วิธี Clone ลงมาที่เครื่อง:
Bash
git clone http://localhost:3000/username/my-awesome-app.git cd my-awesome-app
3. การใช้งานในโปรแกรมเขียนโค้ด (VS Code)
หากคุณใช้ VS Code จะทำงานได้ง่ายขึ้นมาก:
- เปิดโฟลเดอร์โปรเจกต์ด้วย VS Code
- ไปที่แถบ Source Control (ไอคอนรูปง่ามทางซ้าย หรือกด
Ctrl+Shift+G) - คุณสามารถกดปุ่ม Commit และ Push/Pull ได้ผ่านหน้าจอ UI โดยไม่ต้องพิมพ์คำสั่ง
💡 ทริคแนะนำ: การใช้ SSH Key
ถ้าคุณไม่อยากกรอก Username/Password ทุกครั้งที่ Push โค้ด แนะนำให้ตั้งค่า SSH Key:
- สร้าง Key ในเครื่องด้วยคำสั่ง
ssh-keygen - คัดลอกเนื้อหาในไฟล์
.pub(ปกติอยู่ที่~/.ssh/id_rsa.pub) - ไปที่ Forgejo: Settings > SSH / GPG Keys > Add Key แล้ววางลงไป
- เวลา Clone ให้ใช้ URL แบบ SSH (เช่น
git@localhost:222:username/my-awesome-app.git)