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.
Chạy các lệnh apt bên dưới.
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.
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.
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.
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'.
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.
Cơ sở dữ liệu PostgreSQL mới 'gogs_production' và người dùng 'git' để 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ới tư cách là người dùng 'git' và tạo một thư mục 'local' mới.
Đ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.
Giải nén tệp nén go, sau đó xóa tệp đó.
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.
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 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ị 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'.
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.
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 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.
Đ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 thay đổi máy chủ 'HOST_ADDR' 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 như hiển thị bên dưới.
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.
Đ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.
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 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.
Và bạn sẽ nhận được kết quả như hiển thị bên dưới.
Thêm kho lưu trữ Nginx bằng lệnh add-apt.
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.
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'.
Dán cấu hình sau vào đó.
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 bảo không có lỗi, sau đó khởi động lại dịch vụ Nginx.
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
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
- Cập nhật và nâng cấp hệ thống
- Cài đặt và cấu hình PostgreSQL
- Cài đặt Go và Git
- Cài đặt Gogs
- Cấu hình Gogs
- Chạy Gogs dưới dạng dịch vụ
- Cài đặt và cấu hình Nginx làm proxy ngược
- 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
Mã:
systemctl start postgresql
systemctl enable postgresql
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
Mã:
CREATE USER git CREATEDB;
\password git
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
Mã:
sudo adduser --disabled-login --gecos 'Gogs' 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 đó.
Mã:
tar -xf go1.9.2.linux-amd64.tar.gz
rm -f go1.9.2.linux-amd64.tar.gz
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
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'.
Mã:
su - git
go get -u github.com/gogits/gogs
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
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, 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/
Mã:
cp conf/app.ini custom/conf/app.ini
vim custom/conf/app.ini
Mã:
[server]
PROTOCOL = 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 như hiển thị bên dưới.
Mã:
./gogs web
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
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
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
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
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
Mã:
sudo apt update
sudo apt install nginx -y
Mã:
cd /etc/nginx/sites-available
vim gogs
Mã:
server {
listen 80;
server_name git.hakase-labs.co;
location / {
proxy_pass http://localhost:3000;
}
}
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ã:
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.coBâ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