Gogs เป็นโปรแกรมที่ใช้สำหรับการให้บริการ Git ภายในเครื่อง Server ส่วนตัวที่พัฒนาขึ้นมาจากภาษา Go สามารถอ่านข้อมูลเพิ่มเติมได้ที่ http://gogs.io/
ติดตั้งฐานข้อมูล MySQL ด้วยคำสั่ง
sudo apt-get -y install mysql-server
กำหนดรหัสผ่านและยืนยันรหัสผ่าน MySQL
สร้างไฟล์ gogs.sql เพื่อใช้งานในการสร้างฐานข้อมูลให้ Gogs ด้วยคำสั่ง
nano gogs.sql
โดยมีเนื้อหาไฟล์ดังนี้
DROP DATABASE IF EXISTS gogs; CREATE DATABASE IF NOT EXISTS gogs CHARACTER SET utf8 COLLATE utf8_general_ci;
นำไฟล์ gogs.spl มาใช้งานสั่งให้ MySQL สร้างฐานข้อมูลด้วยคำสั่ง
mysql -u root –p < gogs.sql
ติดตั้ง Mercurial และ Git ด้วยคำสั่ง
sudo apt-get -y install mercurial git
ติดตั้ง Go ด้วยวิธีการดังนี้
แก้ไขไฟล์ ~/.bashrc ด้วยคำสั่ง
sudo nano ~/.bashrc
โดยเพิ่มเนื้อหาไฟล์ดังนี้
export GOPATH=/home/git/go export GOROOT=/usr/local/src/go export PATH=${PATH}:$GOROOT/bin
เปลี่ยนแปลงไฟล์ ~/.bashrc ด้วยคำสั่ง
source ~/.bashrc
ดาวน์โหลดและติดตั้ง Go ด้วยคำสั่ง
wget https://storage.googleapis.com/golang/go1.4.2.linux-amd64.tar.gz
tar zxf go1.4.2.linux-amd64.tar.gz
sudo mv go $GOROOT
ทำสอบการทำงานของ Go ด้วยคำสั่ง
go
จะได้ผลลัพธ์ดังนี้
Go is a tool for managing Go source code. Usage: go command [arguments] ... Use "go help [topic]" for more information about that topic.
ติดตั้ง Gogs ด้วยคำสั่ง
sudo apt-get install gccgo-go
sudo go get -d github.com/gogits/gogs
cd $GOPATH/src/github.com/gogits/gogs
go build
ถ้าเกิดปัญหา cannot download, $GOPATH not set. ให้แก้ไขด้วยคำสั่งดังนี้
sudo su
mkdir git
export GOPATH=/home/git/go
source ~/.bashrc
ติดตั้ง Supervisor ด้วยคำสั่ง
sudo apt-get -y install supervisor
sudo mkdir -p /var/log/gogs
ตั้งค่า Supervisor โดยการแก้ไขไฟล์ supervisord.conf ด้วยคำสั่ง
sudo nano /etc/supervisor/supervisord.conf
โดยเพิ่มเนื้อหาดังนี้
[program:gogs] directory=/home/git/go/src/github.com/gogits/gogs/ command=/home/git/go/src/github.com/gogits/gogs/gogs web autostart=true autorestart=true startsecs=10 stdout_logfile=/var/log/gogs/stdout.log stdout_logfile_maxbytes=1MB stdout_logfile_backups=10 stdout_capture_maxbytes=1MB stderr_logfile=/var/log/gogs/stderr.log stderr_logfile_maxbytes=1MB stderr_logfile_backups=10 stderr_capture_maxbytes=1MB environment = HOME="/home/git", USER="git"
Restart Supervisor ด้วยคำสั่ง
sudo service supervisor restart
ติดตั้งและตั้งค่า Nginx
sudo apt-get -y install nginx
ตั้งค่า Nginx โดยการสร้างไฟล์ gogs ด้วยคำสั่ง
sudo nano /etc/nginx/sites-available/gogs
โดยมีเนื้อหาดังนี้
server { listen 80; server_name your_server_ip; proxy_set_header X-Real-IP $remote_addr; # pass on real client IP location / { proxy_pass http://localhost:3000; } }
โดยทำการเปลี่ยนค่า your_server_ip เป็น IP Address ของ Server
ทำการสร้าง symlink ด้วยคำสั่ง
sudo ln -s /etc/nginx/sites-available/gogs /etc/nginx/sites-enabled/gogs
Restart Nginx ด้วยคำสั่ง
sudo service nginx restart
เปิดเว็บเบราเซอร์แล้วไปที่ http://your_server_ip/install
ทำการตั้งค่าในส่วนของ Gogs requires MySQL, PostgreSQL or SQLite3 ดังนี้
- Database Type : MySQL
- Host : 127.0.0.1:3306
- User : root
- Password : รหัสผ่านฐานข้อมูล
- Database Name : gogs
ทำการตั้งค่าในส่วนของ General Settings of Gogs ดังนี้
- Repository Root Path : /home/git/gogs-repositories
- Run User : git
- Domain : IP Address ของเครื่อง Server
- HTTP Port : 3000
- Application URL : http://your_server_ip/
ทำการตั้งค่าในส่วนของ Admin Account Settings ดังนี้
- Username : ชื่อบัญชีผู้ใช้ดูแลระบบ
- Password : รหัสผ่าน
- Confirm Password : ยืนยันรหัสผ่าน
- E-mail : อีเมลผู้ดูแลระบบ
จากนั้นกดปุ่ม Install Gogs
Sing in เข้าสู่ระบบและทำการสร้าง Repository ชื่อ test-repo
กลับมาที่ Terminal แล้วทำการทดสอบ Gogs ด้วยคำสั่งดังนี้
git clone http://your_server_ip/your_admin_username/test-repo.git
cd test-repo
โดยทำการเปลี่ยน your_server_ip เป็น IP Address ของเครื่อง Server และ your_admin_username เป็น บัญชีผู้ใช้ Admin ที่ได้ทำการตั้งค่าไว้
ทำการปรับปรุงไฟล์ README.md ด้วยคำสั่ง
echo 'Hello Gogs!' >> README.md
ทำการ push ขึ้น Gogs ด้วยคำสั่ง
git add --all && git commit -m "init commit" && git push origin master
กลับมาที่เว็บเบราเซอร์จากนั้นกดปุ่ม Refresh ก็จะมีไฟล์ README.md ปรากฏขึ้น