Cách cài đặt dịch vụ Gogs Go Git trên Ubuntu 16.04

theanh

Administrator
Nhân viên
Gogs là dịch vụ Git miễn phí và mã nguồn mở được viết bằng ngôn ngữ Go. Gogs là dịch vụ git tự lưu trữ dễ dàng cho phép bạn tạo và chạy máy chủ Git của riêng mình trên máy chủ phần cứng tối thiểu. Giao diện người dùng web của Gogs rất giống với GitHub và cung cấp hỗ trợ cho cơ sở dữ liệu MySQL, PostgreSQL và SQLite.

Trong hướng dẫn này, chúng tôi sẽ chỉ cho bạn từng bước cách cài đặt và cấu hình dịch vụ Git của riêng bạn bằng Gogs trên Ubuntu 16.04. Hướng dẫn này sẽ trình bày chi tiết bao gồm cách cài đặt Go trên hệ thống Ubuntu, cài đặt PostgreSQL và cài đặt và cấu hình máy chủ web Nginx làm proxy ngược cho ứng dụng Go.

Điều kiện tiên quyết​

  • Ubuntu 16.04
  • Quyền root

Những việc chúng ta sẽ làm​

  1. Cập nhật và nâng cấp hệ thống
  2. Cài đặt và cấu hình PostgreSQL
  3. Cài đặt Go và Git
  4. Cài đặt Gogs
  5. Cấu hình Gogs
  6. Chạy Gogs dưới dạng dịch vụ
  7. Cài đặt và cấu hình Nginx làm proxy ngược
  8. Kiểm tra

Bước 1 - Cập nhật và nâng cấp hệ thống​

Trước khi thực hiện bất kỳ bước nào khác, hãy cập nhật tất cả các kho lưu trữ Ubuntu và nâng cấp tất cả các gói.

Chạy các lệnh apt bên dưới.
Mã:
sudo apt update
sudo apt upgrade

Bước 2 - Cài đặt và cấu hình PostgreSQL​

Gogs hỗ trợ các hệ thống cơ sở dữ liệu MySQL, PostgreSQL, SQLite3, MSSQL và TiDB.

Trong hướng dẫn này, chúng tôi sẽ sử dụng PostgreSQL làm cơ sở dữ liệu cho các cài đặt Gogs của mình.

Cài đặt PostgreSQL bằng lệnh apt bên dưới.
Mã:
sudo apt install -y postgresql postgresql-client libpq-dev
Sau khi cài đặt hoàn tất, hãy khởi động dịch vụ PostgreSQL và cho phép dịch vụ này khởi chạy mọi lúc khi khởi động hệ thống.
Mã:
systemctl start postgresql
systemctl enable postgresql
Cơ sở dữ liệu PostgreSQL đã được cài đặt trên hệ thống Ubuntu.

Tiếp theo, chúng ta cần tạo cơ sở dữ liệu và người dùng mới cho Gogs.

Đăng nhập với tư cách là người dùng 'postgres' và chạy lệnh 'psql' để lấy shell PostgreSQL.
Mã:
su - postgres
psql
Tạo người dùng mới có tên 'git' và cấp cho người dùng các quyền đối với 'CREATEDB'.
Mã:
CREATE USER git CREATEDB;
\password git
Tạo cơ sở dữ liệu có tên 'gogs_production' và đặt người dùng 'git' làm chủ sở hữu của cơ sở dữ liệu.
Mã:
TẠO CƠ SỞ DỮ LIỆU gogs_production CHỦ SỞ HỮU git;


Cơ sở dữ liệu PostgreSQL mới 'gogs_production' và người dùng 'git' để cài đặt Gogs đã được tạo.

Bước 3 - Cài đặt Go và Git​

Cài đặt Git từ kho lưu trữ bằng lệnh apt bên dưới.
Mã:
sudo apt install git
Bây giờ hãy thêm người dùng mới 'git' vào hệ thống.
Mã:
sudo adduser --disabled-login --gecos 'Gogs' git
Đăng nhập với tư cách là người dùng 'git' và tạo một thư mục 'local' mới.
Mã:
su - git
mkdir -p /home/git/local
Đi đến thư mục 'local' và tải xuống 'Go' (phiên bản mới nhất) bằng lệnh wget như được hiển thị bên dưới.
Mã:
cd ~/local
wget https://dl.google.com/go/go1.9.2.linux-amd64.tar.gz


Giải nén tệp nén go, sau đó xóa tệp đó.
Mã:
tar -xf go1.9.2.linux-amd64.tar.gz
rm -f go1.9.2.linux-amd64.tar.gz
Tệp nhị phân 'Go' đã được tải xuống trong thư mục '~/local/go'. Bây giờ chúng ta cần thiết lập môi trường - chúng ta cần xác định các thư mục 'GOROOT' và 'GOPATH để có thể chạy lệnh 'go' trên hệ thống với người dùng 'git'.

Chạy tất cả các lệnh sau.
Mã:
cd ~/
echo 'export GOROOT=$HOME/local/go' >> $HOME/.bashrc
echo 'export GOPATH=$HOME/go' >> $HOME/.bashrc
echo 'export PATH=$PATH:$GOROOT/bin:$GOPATH/bin' >> $HOME/.bashrc
Và tải lại Bash bằng cách chạy lệnh 'source ~/.bashrc' như hiển thị bên dưới.
Mã:
source ~/.bashrc
Đảm bảo bạn đang sử dụng Bash làm shell mặc định của mình.



Bây giờ hãy chạy lệnh 'go' để kiểm tra phiên bản.
Mã:
phiên bản go
Và đảm bảo bạn nhận được kết quả như hiển thị trong ảnh chụp màn hình sau.



Go hiện đã được cài đặt trên hệ thống dưới người dùng 'git'.

Bước 4 - Cài đặt Dịch vụ Gogs Go Git​

Đăng nhập với tư cách là người dùng 'git' và tải xuống 'Gogs' từ GitHub bằng lệnh 'go'.
Mã:
su - git
go get -u github.com/gogits/gogs
Lệnh này sẽ tải xuống toàn bộ mã nguồn Gogs trong thư mục 'GOPATH/src'.

Truy cập thư mục '$GOPATH/src/github.com/gogits/gogs' và xây dựng gogs bằng các lệnh bên dưới.
Mã:
cd $GOPATH/src/github.com/gogits/gogs
go build
Và đảm bảo bạn không gặp lỗi nào.

Bây giờ hãy chạy Gogs Go Git Service bằng lệnh bên dưới.
Mã:
./gogs web
Lệnh sẽ chạy Gogs trên cổng mặc định 3000.



Mở trình duyệt web của bạn và nhập địa chỉ IP máy chủ của bạn với cổng 3000, của tôi là http://192.168.33.10:3000/

Và bạn sẽ nhận được kết quả như hiển thị bên dưới.



Gogs được cài đặt trên hệ thống Ubuntu. Bây giờ quay lại terminal của bạn và nhấn 'Ctrl + c' để thoát.

Bước 5 - Cấu hình Gogs Go Git Service​

Trong bước này, chúng ta sẽ tạo cấu hình tùy chỉnh cho Gogs.

Đi đến thư mục cài đặt Gogs và tạo thư mục 'custom/conf' mới.
Mã:
cd $GOPATH/src/github.com/gogits/gogs
mkdir -p custom/conf/
Sao chép cấu hình mặc định vào thư mục tùy chỉnh và chỉnh sửa bằng vim.
Mã:
cp conf/app.ini custom/conf/app.ini
vim custom/conf/app.ini
Trong phần '[server]', hãy thay đổi máy chủ 'HOST_ADDR' thành '127.0.0.1'.
Mã:
[server]
 PROTOCOL = http
 DOMAIN = localhost
 ROOT_URL = %(PROTOCOL)s://%(DOMAIN)s:%(HTTP_PORT)s/
 HTTP_ADDR = 127.0.0.1
 HTTP_PORT = 3000
Trong phần '[database]', hãy thay đổi mọi thứ bằng thông tin cơ sở dữ liệu của riêng bạn.
Mã:
[database]
 DB_TYPE = postgres
 HOST = 127.0.0.1:5432
 NAME = gogs_production
 USER = git
 PASSWD = aqwe123@#
Lưu và thoát.

Bây giờ hãy xác minh cấu hình bằng cách chạy lệnh như hiển thị bên dưới.
Mã:
./gogs web
Và đảm bảo bạn nhận được kết quả như sau.



Gogs hiện đang chạy với cấu hình tùy chỉnh của chúng tôi, dưới 'localhost' với cổng 3000.

Bước 6 - Chạy Gogs dưới dạng Dịch vụ​

Trong bước này, chúng tôi sẽ cấu hình Gogs dưới dạng dịch vụ trên hệ thống Ubuntu. Chúng tôi sẽ tạo một tệp cấu hình dịch vụ mới 'gogs.service' trong thư mục '/etc/systemd/system'.

Đi đến thư mục '/etc/systemd/system' và tạo một tệp dịch vụ mới 'gogs.service' bằng trình soạn thảo vim.
Mã:
cd /etc/systemd/system
vim gogs.service
Dán cấu hình dịch vụ gogs sau vào đó.
Mã:
[Unit]
 Description=Gogs
 After=syslog.target
 After=network.target
 After=mariadb.service mysqld.service postgresql.service memcached.service redis.service
 
 [Service]
 # Sửa đổi hai giá trị này và bỏ chú thích nếu bạn có
 # kho lưu trữ có nhiều tệp và nhận được lỗi HTTP 500 vì
 # trong số đó
 ###
 #LimitMEMLOCK=infinity
 #LimitNOFILE=65535
 Type=simple
 User=git
 Group=git
 WorkingDirectory=/home/git/go/src/github.com/gogits/gogs
 ExecStart=/home/git/go/src/github.com/gogits/gogs/gogs web
 Restart=always
 Environment=USER=git HOME=/home/git
 
 [Cài đặt]
 WantedBy=multi-user.target
Lưu và thoát.

Bây giờ hãy tải lại các dịch vụ systemd.
Mã:
systemctl daemon-reload
Khởi động dịch vụ gogs và cho phép dịch vụ này khởi chạy mọi lúc khi khởi động hệ thống bằng lệnh systemctl.
Mã:
systemctl start gogs
systemctl enable gogs


Gogs hiện đang chạy như một dịch vụ trên hệ thống Ubuntu.

Kiểm tra bằng các lệnh bên dưới.
Mã:
netstat -plntu
systemctl status gogs
Và bạn sẽ nhận được kết quả như hiển thị bên dưới.


Bước 7 - Cấu hình Nginx làm Proxy ngược cho Gogs​

Trong bước này, chúng ta sẽ cấu hình Nginx làm proxy ngược cho Gogs. Chúng tôi sẽ sử dụng các gói Nginx từ kho lưu trữ riêng của nó.

Thêm kho lưu trữ Nginx bằng lệnh add-apt.
Mã:
sudo add-apt-repository -y ppa:nginx/stable
Bây giờ hãy cập nhật tất cả các kho lưu trữ Ubuntu và cài đặt Nginx bằng lệnh apt bên dưới.
Mã:
sudo apt update
sudo apt install nginx -y
Tiếp theo, hãy chuyển đến thư mục '/etc/nginx/sites-available' và tạo tệp máy chủ ảo mới 'gogs'.
Mã:
cd /etc/nginx/sites-available
vim gogs
Dán cấu hình sau vào đó.
Mã:
server {
 listen 80;
 server_name git.hakase-labs.co;
 
 location / {
 proxy_pass http://localhost:3000;
 }
 }
Lưu và thoát.

Lưu ý:

Thay đổi dòng 'server_name' bằng tên miền của riêng bạn.

Bây giờ hãy kích hoạt máy chủ ảo mới và kiểm tra cấu hình nginx.
Mã:
ln -s /etc/nginx/sites-available/gogs /etc/nginx/sites-enabled/
nginx -t
Đảm bảo không có lỗi, sau đó khởi động lại dịch vụ Nginx.
Mã:
systemctl restart nginx

Bước 8 - Kiểm tra​

Mở trình duyệt web của bạn và nhập URL gogs, của tôi là http://git.hakase-labs.co

Bây giờ bạn sẽ nhận được trang cài đặt. Ở đầu trang, nhập tất cả thông tin cơ sở dữ liệu PostgreSQL của bạn.



Bây giờ, hãy cuộn xuống dưới cùng và nhấp vào menu thả xuống 'Cài đặt tài khoản quản trị'.

Nhập tên người dùng quản trị, mật khẩu và email của bạn.



Sau đó, nhấp vào nút 'Cài đặt Gogs'.

Và bạn sẽ được chuyển hướng đến Bảng điều khiển người dùng Gogs như hiển thị bên dưới.



Bên dưới là 'Bảng điều khiển quản trị' của Gogs.



Gogs hiện đã được cài đặt với cơ sở dữ liệu PostgreSQL và máy chủ web Nginx trên máy chủ Ubuntu 16.04

Tham khảo​

 
Back
Bên trên