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 ปรากฏขึ้น

Comments are closed.