Gogs là dịch vụ Git miễn phí và mã nguồn mở được viết bằng ngôn ngữ Go. Đây là dịch vụ git tự lưu trữ, không gây khó khăn 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 máy chủ CentOS 7. Hướng dẫn này sẽ đề cập đến các chủ đề bao gồm, cài đặt Go trên hệ thống CentOS 7, cài đặt PostgreSQL và cài đặt/cấu hình máy chủ web Nginx làm proxy ngược cho ứng dụng Go.
Kho EPEL đã được thêm vào máy chủ CentOS 7.
Cài đặt cơ sở dữ liệu PostgreSQL bằng lệnh yum bên dưới.
Sau khi cài đặt hoàn tất, chúng ta cần khởi tạo cơ sở dữ liệu và cấu hình PostgreSQL.
Chạy lệnh bên dưới.
Tiếp theo, chúng ta sẽ cấu hình PostgreSQL để chạy dưới địa chỉ IP cục bộ '127.0.0.1' và cho phép tất cả người dùng trên địa chỉ máy chủ cục bộ đăng nhập bằng xác thực md5.
Đăng nhập với tư cách là người dùng Postgres.
Bây giờ hãy đến thư mục 'data' và chỉnh sửa tệp 'postgresql.conf' bằng vim.
Bỏ chú thích dòng 'listen_addresses' và thay đổi giá trị thành '127.0.0.1'.
Lưu và thoát.
Chỉnh sửa 'pg_hba.conf' để cấu hình xác thực.
Trên cấu hình máy chủ cục bộ '127.0.0.1/32', hãy thay đổi phương thức xác thực thành 'md5' như bên dưới.
Lưu và thoát.
Bây giờ 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.
Cơ sở dữ liệu PostgreSQL đã được cài đặt trên máy chủ CentOS 7 - hãy kiểm tra bằng lệnh netstat.
Và hãy đảm bảo rằng bạn thấy PostgreSQL đang chạy trên địa chỉ IP cục bộ '127.0.0.1' với cổng 5432.
Tiếp theo, chúng ta sẽ tạo một cơ sở dữ liệu mới để cài đặt Gogs. Chúng tôi sẽ tạo một cơ sở dữ liệu mới có tên 'gogs_production' với người dùng 'git'.
Đăng nhập với tư cách là người dùng Postgres và truy cập shell psql.
Tạo người dùng 'git' mới bằng lệnh bên dưới.
Bây giờ hãy tạo cơ sở dữ liệu 'gogs_production' và đặt chủ sở hữu là người dùng 'git'.
Cơ sở dữ liệu PostgreSQL để cài đặt Gogs đã được tạo.
Bây giờ hãy thêm người dùng mới 'git' vào hệ thống.
Đăng nhập vào người dùng 'git' và tạo thư mục 'local' mới.
Đi đến thư mục 'local' và tải xuống phiên bản Go mới nhất bằng lệnh wget.
Giải nén tệp nén go, sau đó xóa tệp lưu trữ.
Các 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, vì vậy chúng ta cần xác định thư mục 'GOROOT' và 'GOPATH' để chạy lệnh go trong hệ thống với tư cách là người dùng 'git'.
Chạy các lệnh bên dưới.
Và tải lại bash bằng cách chạy lệnh 'source ~/.bashrc' như bên dưới.
Đả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.
Và đảm bảo bạn nhận được kết quả như hiển thị bên dưới.
Go hiện đã được cài đặt trên hệ thống dưới người dùng 'git'.
Lệnh này sẽ tải xuống toàn bộ mã nguồn Gogs vào thư mục 'GOPATH/src'.
Đi đến 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.
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.
Lệnh này sẽ chạy Gogs trên địa chỉ IP công khai với cổng mặc định là 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.
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 hiện đã được cài đặt trên hệ thống CentOS 7. Bây giờ quay lại terminal của bạn và nhấn 'Ctrl + c' để thoát.
Đi đến thư mục cài đặt gogs và tạo thư mục 'custom/conf' mới.
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.
Trong phần '[server]', hãy đổi 'HOST_ADDR' của máy chủ thành '127.0.0.1'.
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.
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 sau.
Và đảm bảo bạn nhận được kết quả như bên dưới.
Gogs là hiện đang chạy với cấu hình tùy chỉnh của chúng tôi và dưới địa chỉ IP cục bộ '127.0.0.1' với cổng 3000.
Đi đến thư mục '/etc/systemd/system' và tạo tệp dịch vụ mới 'gogs.service' bằng trình soạn thảo vim.
Dán cấu hình dịch vụ gogs sau vào đó.
Lưu và thoát.
Bây giờ hãy tải lại các dịch vụ systemd.
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.
Gogs hiện đang chạy dưới dạng dịch vụ trên hệ thống CentOS 7.
Kiểm tra bằng các lệnh sau.
Và bạn sẽ nhận được kết quả như hiển thị bên dưới.
Chạy lệnh yum bên dưới để cài đặt Nginx.
Sau khi cài đặt hoàn tất, chúng ta cần tạo cấu hình máy chủ ảo mới cho Gogs.
Vì vậy, hãy đến thư mục cấu hình '/etc/nginx' và tạo một tệp máy chủ ảo mới 'gogs' trong thư mục 'conf.d'.
Dán cấu hình sau vào đó.
Lưu và thoát.
Tiếp theo, chúng ta cần kiểm tra cấu hình nginx và đảm bảo không có lỗi
Khởi động dịch vụ Nginx và cho phép nó khởi chạy khi khởi động hệ thống.
Máy chủ web Nginx hiện đã được cài đặt - hãy kiểm tra bằng lệnh netstat bên dưới.
và bạn sẽ thấy cổng HTTP 80 trong danh sách.
http://git.hakase-labs.co/
Trên trang đầu tiên, hãy nhập tất cả Thông tin cơ sở dữ liệu PostgreSQL.
Bây giờ hãy cuộn xuống trang dưới cùng - 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.
Dưới đây 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ủ CentOS 7.
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 máy chủ CentOS 7. Hướng dẫn này sẽ đề cập đến các chủ đề bao gồm, cài đặt Go trên hệ thống CentOS 7, cài đặt PostgreSQL và cài đặt/cấu hình máy chủ web Nginx làm proxy ngược cho ứng dụng Go.
- Máy chủ CentOS 7
- Quyền root
- Cài đặt EPEL Repository
- Cài đặt và cấu hình cơ sở dữ liệu PostgreSQL
- Cài đặt Go và Git
- Cài đặt Gogs Go Git Service
- Cấu hình Gogs Go Git Service
- Chạy Gogs dưới dạng dịch vụ trên CentOS 7
- Cài đặt và cấu hình Nginx làm proxy ngược cho Gogs
- Kiểm tra thiết lập
Bước 1 - Cài đặt EPEL Repository
Bước đầu tiên chúng ta sẽ thực hiện trong hướng dẫn này là cài đặt EPEL repository. Cài đặt kho EPEL bằng lệnh bên dưới.
Mã:
sudo yum -y install epel-release
Bước 2 - Cài đặt và cấu hình cơ sở dữ liệu 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 ta 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 cơ sở dữ liệu PostgreSQL bằng lệnh yum bên dưới.
Mã:
sudo yum -y install postgresql-server postgresql-contrib
Chạy lệnh bên dưới.
Mã:
sudo postgresql-setup initdb
Đăng nhập với tư cách là người dùng Postgres.
Mã:
su - postgres
Mã:
cd data/
vim postgresql.conf
Mã:
listen_addresses = '127.0.0.1'
Chỉnh sửa 'pg_hba.conf' để cấu hình xác thực.
Mã:
vim pg_hba.conf
Mã:
host all all 127.0.0.1/32 md5
Bây giờ 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ã:
sudo systemctl start postgresql
sudo systemctl enable postgresql
Cơ sở dữ liệu PostgreSQL đã được cài đặt trên máy chủ CentOS 7 - hãy kiểm tra bằng lệnh netstat.
Mã:
netstat -plntu
Tiếp theo, chúng ta sẽ tạo một cơ sở dữ liệu mới để cài đặt Gogs. Chúng tôi sẽ tạo một cơ sở dữ liệu mới có tên 'gogs_production' với người dùng 'git'.
Đăng nhập với tư cách là người dùng Postgres và truy cập shell psql.
Mã:
su - postgres
psql
Mã:
CREATE USER git CREATEDB;
\password git
Mã:
CREATE DATABASE gogs_production OWNER git;
exit
Bước 3 - Cài đặt Go và Git
Cài đặt Git từ kho lưu trữ bằng lệnh yum bên dưới.
Mã:
sudo yum -y install git
Mã:
useradd -m -s /bin/bash git
passwd git
Mã:
su - git
mkdir -p /home/git/local
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 lưu trữ.
Mã:
tar -xf go1.9.2.linux-amd64.tar.gz
rm -f go1.9.2.linux-amd64.tar.gz
Chạy các lệnh bên dưới.
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
Mã:
source ~/.bashrc
Bây giờ hãy chạy lệnh go để kiểm tra phiên bản.
Mã:
phiên bản go
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 như bên dưới.
Mã:
su - git
go get -u github.com/gogits/gogs
Đi đến 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
Bây giờ hãy chạy Gogs Go Git Service bằng lệnh bên dưới.
Mã:
./gogs web
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.
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 hiện đã được cài đặt trên hệ thống CentOS 7. 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/
Mã:
cp conf/app.ini custom/conf/app.ini
vim custom/conf/app.ini
Mã:
[server]
GIAO THỨC = http
DOMAIN = localhost
ROOT_URL = %(PROTOCOL)s://%(DOMAIN)s:%(HTTP_PORT)s/
HTTP_ADDR = 127.0.0.1
HTTP_PORT = 3000
Mã:
[database]
DB_TYPE = postgres
HOST = 127.0.0.1:5432
NAME = gogs_production
USER = git
PASSWD = aqwe123@
Bây giờ hãy xác minh cấu hình bằng cách chạy lệnh sau.
Mã:
./gogs web
Gogs là hiện đang chạy với cấu hình tùy chỉnh của chúng tôi và dưới địa chỉ IP cục bộ '127.0.0.1' với cổng 3000.
Bước 6 - Chạy Gogs dưới dạng dịch vụ trên CentOS 7
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 CentOS 7. Chúng tôi sẽ tạo cấu hình tệp 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 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
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à gặp 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
[Install]
WantedBy=multi-user.target
Bây giờ hãy tải lại các dịch vụ systemd.
Mã:
systemctl daemon-reload
Mã:
systemctl start gogs
systemctl enable gogs
Kiểm tra bằng các lệnh sau.
Mã:
netstat -plntu
systemctl status gogs
Bước 7 - Cài đặt và cấu hình Nginx làm Proxy ngược cho Gogs
Trong bước này, chúng ta sẽ cài đặt và cấu hình Nginx làm proxy ngược cho Gogs. Chúng tôi sẽ cài đặt các gói Nginx từ kho lưu trữ EPEL.Chạy lệnh yum bên dưới để cài đặt Nginx.
Mã:
yum -y install nginx
Vì vậy, hãy đến thư mục cấu hình '/etc/nginx' và tạo một tệp máy chủ ảo mới 'gogs' trong thư mục 'conf.d'.
Mã:
cd /etc/nginx/
vim conf.d/gogs.conf
Mã:
server {
listen 80;
server_name git.hakase-labs.co;
location / {
proxy_pass http://127.0.0.1:3000;
}
}
Tiếp theo, chúng ta cần kiểm tra cấu hình nginx và đảm bảo không có lỗi
Mã:
nginx -t
Mã:
systemctl restart nginx
systemctl enable nginx
Mã:
netstat -plntu
Bước 8 - Kiểm tra
Mở trình duyệt web và nhập URL cài đặt Gogs của bạn vào thanh địa chỉ.http://git.hakase-labs.co/
Trên trang đầu tiên, hãy nhập tất cả Thông tin cơ sở dữ liệu PostgreSQL.
Bây giờ hãy cuộn xuống trang dưới cùng - 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.
Dưới đây 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ủ CentOS 7.