Cách cài đặt dịch vụ Gitea Git trên Debian 11

theanh

Administrator
Nhân viên
Gitea là một máy chủ Git miễn phí, mã nguồn mở, tự lưu trữ và nổi tiếng được viết bằng ngôn ngữ lập trình Go. Đây là một nền tảng kiểm soát phiên bản tương tự như Github. Nó mạnh mẽ, có thể mở rộng và cung cấp nhiều tính năng bao gồm theo dõi sự cố và thời gian, phân nhánh kho lưu trữ, khóa tệp và gắn thẻ, hợp nhất và nhiều tính năng khác. Nếu bạn đang tìm kiếm một dịch vụ Git tự lưu trữ, thì có lẽ Gitea là lựa chọn tốt nhất mà bạn có thể sử dụng.

Trong hướng dẫn này, tôi sẽ chỉ cho bạn cách cài đặt Gitea trên Debian 11.

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

  • Một máy chủ chạy Debian 11.
  • Mật khẩu gốc được cấu hình trên máy chủ.

Cài đặt và cấu hình cơ sở dữ liệu MariaDB​

Gitea sử dụng MariaDB/MySQL làm cơ sở dữ liệu phụ trợ. Vì vậy, máy chủ cơ sở dữ liệu phải được cài đặt trong máy chủ của bạn. Nếu chưa cài đặt, bạn có thể cài đặt bằng cách chạy lệnh sau:
Mã:
apt-get install mariadb-server -y
Sau khi MariaDB được cài đặt, bạn sẽ cần đặt mật khẩu MariaDB và bảo mật cài đặt. Bạn có thể thực hiện bằng cách chạy tập lệnh mysql_secure_installation:
Mã:
mysql_secure_installation
Trả lời tất cả các câu hỏi như hiển thị bên dưới:
Mã:
Nhập mật khẩu hiện tại cho root (nhập nếu không có):OK, đã sử dụng mật khẩu thành công, tiếp tục...Đặt mật khẩu root? [Y/n] YXóa người dùng ẩn danh? [Y/n] YKhông cho phép đăng nhập root từ xa? [Y/n] YXóa cơ sở dữ liệu thử nghiệm và truy cập vào cơ sở dữ liệu đó? [Y/n] YTải lại bảng đặc quyền ngay bây giờ? [Y/n] Y
Tiếp theo, kết nối với giao diện MariaDB bằng lệnh sau:
Mã:
mysql -u root -p
Sau khi kết nối, hãy tạo cơ sở dữ liệu và người dùng cho Gitea bằng lệnh sau:
Mã:
MariaDB [(none)]> CREATE DATABASE gitea;
MariaDB [(none)]> GRANT ALL PRIVILEGES ON gitea.* TO 'gitea'@'localhost' IDENTIFIED BY 'password';
Tiếp theo, xóa các đặc quyền và thoát khỏi MariaDB bằng lệnh sau:
Mã:
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> QUIT;

Cài đặt Gitea​

Đầu tiên, bạn sẽ cần tạo một người dùng chuyên dụng để chạy Gitea. Bạn có thể tạo nó bằng lệnh sau:
Mã:
adduser --system --shell /bin/bash --gecos 'Git Version Control' --group --disabled-password --home /opt/git git
Bạn sẽ thấy đầu ra sau:
Mã:
Adding system user `git' (UID 109) ...Adding new group `git' (GID 115) ...Adding new user `git' (UID 109) with group `git' ...Creating home directory `/opt/git' ...
Tiếp theo, tải xuống phiên bản Gitea mới nhất bằng lệnh sau:
Mã:
curl -s https://api.github.com/repos/go-gitea/gitea/releases/latest |grep browser_download_url | cut -d '"' -f 4 | grep '\linux-amd64$' | wget -i -
Tiếp theo, di chuyển tệp nhị phân Gitea đến đường dẫn hệ thống bằng lệnh sau:
Mã:
mv gitea-*-linux-amd64 /usr/local/bin/gitea
Tiếp theo, đặt quyền thực thi cho tệp nhị phân Gitea:
Mã:
chmod +x /usr/local/bin/gitea
Tiếp theo, xác minh phiên bản Gitea bằng lệnh sau:
Mã:
gitea --version
Bạn sẽ thấy đầu ra sau:
Mã:
Gitea phiên bản 1.15.3 được xây dựng bằng GNU Make 4.1, go1.16.8: bindata, sqlite, sqlite_unlock_notify
Tiếp theo, bạn sẽ cần tạo cấu trúc thư mục cho Gitea. Bạn có thể tạo cấu trúc này bằng lệnh sau lệnh:
Mã:
mkdir -p /etc/gitea /var/lib/gitea/{custom,data,indexers,public,log}
Tiếp theo, thiết lập quyền và quyền sở hữu phù hợp bằng lệnh sau:
Mã:
chown git:git /var/lib/gitea/{data,indexers,log}
chmod 750 /var/lib/gitea/{data,indexers,log}
chown root:git /etc/gitea
chmod 770 /etc/gitea
Sau khi hoàn tất, bạn có thể tiến hành bước tiếp theo.

Tạo tệp dịch vụ Systemd cho Gitea​

Tiếp theo, bạn sẽ cần tạo tệp dịch vụ systemd cho Gitea. Bạn có thể tạo nó bằng lệnh sau:
Mã:
nano /etc/systemd/system/gitea.service
Thêm các dòng sau:
Mã:
[Unit]Description=Gitea (Git with a cup of tea)After=syslog.targetAfter=network.targetAfter=mysql.service[Service]LimitMEMLOCK=infinityLimitNOFILE=65535RestartSec=2sType=simpleUser=gitGroup=gitWorkingDirectory=/var/lib/gitea/ExecStart=/usr/local/bin/gitea web -c /etc/gitea/app.iniRestart=alwaysEnvironment=USER=git HOME=/opt/git GITEA_WORK_DIR=/var/lib/gitea[Install]WantedBy=multi-user.target
Lưu và đóng tệp sau đó tải lại systemd daemon với lệnh sau:
Mã:
systemctl daemon-reload
Tiếp theo, hãy khởi động và kích hoạt dịch vụ Gitea bằng lệnh sau:
Mã:
systemctl start gitea
systemctl enable gitea
Để kiểm tra dịch vụ Gitea, hãy chạy lệnh sau:
Mã:
systemctl status gitea
Bạn sẽ thấy đầu ra sau:
Mã:
? gitea.service - Gitea (Git with a cup of tea) Đã tải: đã tải (/etc/systemd/system/gitea.service; đã tắt; cài đặt trước của nhà cung cấp: đã bật) Đang hoạt động: đang hoạt động (đang chạy) kể từ Thứ bảy 2021-10-02 12:59:27 UTC; 9 giây trước PID chính: 19179 (gitea) Nhiệm vụ: 8 (giới hạn: 4679) Bộ nhớ: 128,3M CPU: 1,415 giây CGroup: /system.slice/gitea.service ??19179 /usr/local/bin/gitea web -c /etc/gitea/app.ini02/10 12:59:28 debian11 gitea[19179]: 02/10/2021 12:59:28 cmd/web.go:102:runWeb() [I] Đang khởi động Gitea trên PID: 1917902/10 12:59:28 debian11 gitea[19179]: 02/10/2021 12:59:28 ...s/setting/setting.go:569:NewContext() [W] Cấu hình tùy chỉnh '/etc/gitea/app.ini' không>02/10 12:59:28 debian11 gitea[19179]: 2021/10/02 12:59:28 ...s/install/setting.go:21:PreloadSettings() [I] AppPath: /usr/local/bin/gitea02/10 12:59:28 debian11 gitea[19179]: 2021/10/02 12:59:28 ...s/install/setting.go:22:PreloadSettings() [I] AppWorkPath: /var/lib/gitea02/10 12:59:28 debian11 gitea[19179]: 2021/10/02 12:59:28 ...s/install/setting.go:23:PreloadSettings() [I] Đường dẫn tùy chỉnh: /var/lib/gitea/custom02/10 12:59:28 debian11 gitea[19179]: 2021/10/02 12:59:28 ...s/install/setting.go:23:PreloadSettings() [I] Đường dẫn tùy chỉnh: /var/lib/gitea/custom0 02 12:59:28 debian11 gitea[19179]: 2021/10/02 12:59:28 ...s/install/setting.go:24:PreloadSettings() [I] Đường dẫn nhật ký: /var/lib/gitea/log02/10 12:59:28 debian11 gitea[19179]: 2021/10/02 12:59:28 ...s/install/setting.go:25:PreloadSettings() [I] Chuẩn bị chạy trang cài đặt02/10 12:59:28 debian11 gitea[19179]: 2021/10/02 12:59:28 ...s/install/setting.go:28:PreloadSettings() [I] Hỗ trợ SQLite302/10 12:59:29 debian11 gitea[19179]: 2021/10/02 12:59:29 cmd/web.go:196:listen() [I] Nghe: http://0.0.0.0:300002/10 12:59:29 debian11 gitea[19179]: 2021/10/02 12:59:29 ...s/graceful/server.go:62:NewServer() [I] Đang khởi động máy chủ Web mới: tcp:0.0.0.0:300>
Lúc này, Gitea đã được khởi động và lắng nghe trên cổng 3000. Bạn có thể kiểm tra bằng lệnh sau:
Mã:
ss -antpl | grep 3000
Bạn sẽ thấy kết quả sau:
Mã:
LISTEN 0 4096 *:3000 *:* users:(("gitea",pid=19179,fd=6))
Sau khi hoàn tất, bạn có thể tiến hành bước tiếp theo.

Cấu hình Nginx cho Gitea​

Tiếp theo, bạn sẽ cần cài đặt và cấu hình Nginx làm proxy ngược cho Gitea. Trước tiên, hãy cài đặt Nginx bằng lệnh sau:
Mã:
apt-get install nginx -y
Tiếp theo, hãy tạo tệp cấu hình máy chủ ảo Nginx bằng lệnh sau:
Mã:
nano /etc/nginx/conf.d/gitea.conf
Thêm các dòng sau:
Mã:
server { listen 80; server_name gitea.example.com; access_log /var/log/nginx/gitea_access.log; error_log /var/log/nginx/gitea_error.log; location / { proxy_pass http://localhost:3000; }}
Lưu và đóng tệp, sau đó xác minh Nginx xem có lỗi cú pháp nào không:
Mã:
nginx -t
Bạn sẽ thấy đầu ra sau:
Mã:
nginx: cú pháp tệp cấu hình /etc/nginx/nginx.conf là oknginx: thử nghiệm tệp cấu hình /etc/nginx/nginx.conf thành công
Tiếp theo, khởi động lại dịch vụ Nginx bằng lệnh sau:
Mã:
systemctl restart nginx
Để kiểm tra trạng thái Nginx, hãy chạy lệnh sau:
Mã:
systemctl status nginx
Bạn sẽ thấy đầu ra sau:
Mã:
? nginx.service - Máy chủ web hiệu suất cao và máy chủ proxy ngược Đã tải: đã tải (/lib/systemd/system/nginx.service; đã bật; cài đặt trước của nhà cung cấp: đã bật) Đang hoạt động: đang hoạt động (đang chạy) kể từ Sat 2021-10-02 13:00:33 UTC; 4 giây trước Tài liệu: man:nginx(8) Quy trình: 19209 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS) Quy trình: 19211 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS) PID chính: 19212 (nginx) Nhiệm vụ: 3 (giới hạn: 4679) Bộ nhớ: 3,2M CPU: 50ms CGroup: /system.slice/nginx.service ??19212 nginx: tiến trình chính /usr/sbin/nginx -g daemon bật; master_process bật; ??19213 nginx: tiến trình công nhân ??19214 nginx: tiến trình công nhân02/10 13:00:33 debian11 systemd[1]: Đang khởi động Một máy chủ web hiệu suất cao và một máy chủ proxy ngược...02/10 13:00:33 debian11 systemd[1]: Đã khởi động Một máy chủ web hiệu suất cao và một máy chủ proxy ngược.
Tiếp theo, bạn sẽ cần chỉnh sửa tệp Gitea app.ini và xác định thông tin miền của mình:
Mã:
nano /etc/gitea/app.ini
Thay đổi các dòng sau:
Mã:
DOMAIN = gitea.example.comROOT_URL = http://gitea.example.com/
Lưu và đóng tệp, sau đó khởi động lại dịch vụ Gitea để áp dụng các thay đổi:
Mã:
systemctl restart gitea
Sau khi hoàn tất, bạn có thể tiến hành bước tiếp theo bước.

Truy cập Giao diện Web Gitea​

Bây giờ, hãy mở trình duyệt web của bạn và truy cập giao diện web Gitea bằng URL . Bạn sẽ được chuyển hướng đến trang sau:







Cung cấp thông tin cơ sở dữ liệu Gitea, URL, tên người dùng quản trị, mật khẩu, cổng và nhấp vào nút Cài đặt Gitea. Bạn sẽ thấy bảng điều khiển Gitea trên trang sau:


Kết luận​

Xin chúc mừng! Bạn đã cài đặt thành công Gitea với Nginx làm proxy ngược trên Debian 11. Bạn có thể triển khai Gitea trong môi trường phát triển của mình để theo dõi và quản lý dự án của mình.
 
Back
Bên trên