Gitea là một open source git server tự động lưu trữ và được viết bằng Go. Gitea cung cấp khả năng chỉnh sửa file trong kho lưu trữ , theo dõi vấn đề của dự án ,quản lý người dùng ,thông báo ….
Gitea là ưu điểm là dung lượng nhẹ có thể đáp ứng cho những hệ thống tầm trung. Nếu bạn đang tìm giải pháp thay cho Gitlab thì Gitea là một lựa chọn với dung lượng nhỏ hơn.
Bài viết này mình sẽ hướng dẫn cách cài đặt và cấu hình Gitea trên CenOS 8.
Xem thêm: Cài đặt git trên centos 7
Cài Đặt SQlite
Gitea hỗ trợ nhiều cơ sở dữ liệu dưới dạng phụ trợ như SQlite, ProtgreSQL và MySQL/MariaDB. Và mình sẽ sử dụng SQlite và cài đặt như sau :# sudo dnf install sqlitehãy đảm bảo đã tắt SELinux
Cài đặt Gitea
1. Cài đặt Git
sau khi đã cài đặt SQLite thì mình tiếp tục cài đặt thêm git. Bước đầu tiên để cài đặt Gitea mình sẽ cài đặt Git từ kho dữ liệu của CentOS :# sudo dnf install gitĐể biết git đã cài đặt chưa ta sử dụng cách kiểm tra phiên bản của Git :
# git --version
2. Tạo user Git
Dưới đây mình sẽ một số user và group và mình sẽ chỉ dịnh ở thư mục /home/git . Bắt đầu mình sẽ tạo người dùng để chạy ứng dụng Gitea :# sudo useradd \ --system \ --shell /bin/bash \ --comment 'Git Version Control' \ --create-home \ --home /home/git \ git
3. Tải về file Gitea
Ở đây mình sẽ sử dụng phiên bản 1.12.3 và mình sử dụng wget để tải xuống thư mục /tmp# sudo wget -O /tmp/gitea https://dl.gitea.io/gitea/1.12.3/gitea-1.12.3-linux-amd64sau đó mình sẽ đi chuyển file vừa tải về vào thư mục /usr/local/bin :
# sudo mv /tmp/gitea /usr/local/bincấp thêm quyền x cho gitea :
# sudo chmod +x /usr/local/bin/giteaCác câu lệnh phía dưới sẽ tạo ra các thư mục cần thiết và phân quyền :
# sudo mkdir -p /var/lib/gitea/{custom,data,indexers,public,log} # sudo chown git: /var/lib/gitea/{data,indexers,log} # sudo chmod 750 /var/lib/gitea/{data,indexers,log} # sudo mkdir /etc/gitea # sudo chown root:git /etc/gitea # sudo chmod 770 /etc/giteaCấu trúc thư mục ở trên được khuyến nghị bởi Gitea.
4. Tạo file đợn vị của hệ thống
Mình sẽ tải file systemd vào thư mục /etc/systemd/system/ như sau :# sudo wget https://raw.githubusercontent.com/go-gitea/gitea/master/contrib/systemd/gitea.service -P /etc/systemd/system/Tiếp theo mình sẽ khởi động lại dịch vụ của Gitea :
# sudo systemctl daemon-reload # sudo systemctl enable --now gitea
Cấu hình Gitea
Mặc định thì Gitea sẽ đi ở port 3000 nên mình sẽ mở port 3000 bằng lệnh sau :# sudo firewall-cmd --permanent --zone=public --add-port=3000/tcp # sudo firewall-cmd --reloadSau khi đã bật firewall thì mình mở trình duyệt và bắt đầu đăng nhập vào :
# http://"tên miền hoặc địa chỉ ip của bạn":3000/installVà điền các thông tin sau :
- Database Type thì chọn là SQLite3
- Path là var//lib/gitea/gitea.db
- SSH Server Domain mình để IP hoặc domain của mình
- Gitea Base URL mình cũng để IP hoặc domain của mình
- Các phần còn lại để mặc định
# chmod 750 /etc/gitea # chmod 640 /etc/gitea/app.ini
Cấu hình để thông báo qua email
để email được gửi đi bạn cần cài đặt Postfix hoặc có thể sử dụng các dịch vụ mail khác . Mình sẽ sửa file sau để bật thông báo qua email :# sudo vi /etc/gitea/app.ini [mailer] ENABLED = true HOST = SMTP_SERVER:SMTP_PORT FROM = SENDER_EMAIL USER = SMTP_USER PASSWD = YOUR_SMTP_PASSWORDVà sau đó mình khởi động lại Gitea :
# systemctl restart giteavậy là thông báo sẽ được gửi qua mail
Cách update Gitea
Vì gitea không có sẵn trong thư viện của CentOS nên khi nâng cấp ta sẽ tải về bản mới nhất của Gitea và thay thế vào bản Gitea cũ. Và mình tiến hành như sau. Đầu tiên thì mình sẽ dừng tất cả dịch vụ của Gitea bằng lệnh :# systemctl stop giteavà mình sẽ lấy bản Gitea mới nhất và chuyển vào thư mục /usr/local/bin :
# VERSION=<THE_LATEST_GITEA_VERSION>
# wget -O /tmp/gitea https://dl.gitea.io/gitea/${VERSION}/gitea-${VERSION}-linux-amd64 # mv /tmp/gitea /usr/local/binphân thêm quyền thực thi cho tệp mình mới chuyển :
# sudo chmod +x /usr/local/bin/giteasau đó khởi động lại dịch vụ Gitea là có thể sử dụng phiên bản mới nhất :
# sudo systemctl restart gitea
Kết Luận
Ở trên thì mình đã trình bày cách cài đặt Gitea trên CenOS 8 và cấu hình để có thể gửi thông báo qua mail… Nếu bạn có những câu hỏi nào hoặc vẫn đề nào đừng quên để lại câu hỏi bên dưới mình sẽ giải quyết tất cả cho bạn.Nguồn : Linuxize.com