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.
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:
Trả lời tất cả các câu hỏi như hiển thị bên dưới:
Tiếp theo, kết nối với giao diện MariaDB bằng lệnh sau:
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:
Tiếp theo, xóa các đặc quyền và thoát khỏi MariaDB bằng lệnh sau:
Bạn sẽ thấy đầu ra sau:
Tiếp theo, tải xuống phiên bản Gitea mới nhất bằng lệnh sau:
Tiếp theo, di chuyển tệp nhị phân Gitea đến đường dẫn hệ thống bằng lệnh sau:
Tiếp theo, đặt quyền thực thi cho tệp nhị phân Gitea:
Tiếp theo, xác minh phiên bản Gitea bằng lệnh sau:
Bạn sẽ thấy đầu ra sau:
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:
Tiếp theo, thiết lập quyền và quyền sở hữu phù hợp bằng lệnh sau:
Sau khi hoàn tất, bạn có thể tiến hành bước tiếp theo.
Thêm các dòng sau:
Lưu và đóng tệp sau đó tải lại systemd daemon với lệnh sau:
Tiếp theo, hãy khởi động và kích hoạt dịch vụ Gitea bằng lệnh sau:
Để kiểm tra dịch vụ Gitea, hãy chạy lệnh sau:
Bạn sẽ thấy đầu ra sau:
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:
Bạn sẽ thấy kết quả sau:
Sau khi hoàn tất, bạn có thể tiến hành bước tiếp theo.
Tiếp theo, hãy tạo tệp cấu hình máy chủ ảo Nginx bằng lệnh sau:
Thêm các dòng sau:
Lưu và đóng tệp, sau đó xác minh Nginx xem có lỗi cú pháp nào không:
Bạn sẽ thấy đầu ra sau:
Tiếp theo, khởi động lại dịch vụ Nginx bằng lệnh sau:
Để kiểm tra trạng thái Nginx, hãy chạy lệnh sau:
Bạn sẽ thấy đầu ra sau:
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:
Thay đổi các dòng sau:
Lưu và đóng tệp, sau đó khởi động lại dịch vụ Gitea để áp dụng các thay đổi:
Sau khi hoàn tất, bạn có thể tiến hành bước tiếp theo bước.
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:
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
Mã:
mysql_secure_installation
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
Mã:
mysql -u root -p
Mã:
MariaDB [(none)]> CREATE DATABASE gitea;
MariaDB [(none)]> GRANT ALL PRIVILEGES ON gitea.* TO 'gitea'@'localhost' IDENTIFIED BY 'password';
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
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' ...
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 -
Mã:
mv gitea-*-linux-amd64 /usr/local/bin/gitea
Mã:
chmod +x /usr/local/bin/gitea
Mã:
gitea --version
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
Mã:
mkdir -p /etc/gitea /var/lib/gitea/{custom,data,indexers,public,log}
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
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
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
Mã:
systemctl daemon-reload
Mã:
systemctl start gitea
systemctl enable gitea
Mã:
systemctl status gitea
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>
Mã:
ss -antpl | grep 3000
Mã:
LISTEN 0 4096 *:3000 *:* users:(("gitea",pid=19179,fd=6))
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
Mã:
nano /etc/nginx/conf.d/gitea.conf
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; }}
Mã:
nginx -t
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
Mã:
systemctl restart nginx
Mã:
systemctl status nginx
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.
Mã:
nano /etc/gitea/app.ini
Mã:
DOMAIN = gitea.example.comROOT_URL = http://gitea.example.com/
Mã:
systemctl restart gitea
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: