Gitea là một ứng dụng web lưu trữ mã được viết bằng Go và phân nhánh từ Gogs. Như tên gọi của nó, nó được thiết kế để sử dụng với chương trình kiểm soát nguồn phổ biến Git, tương tự như Gitlab và Github. Hướng dẫn này sẽ giải thích cách cài đặt Gitea trên Debian 10 đằng sau proxy ngược HTTPS (Nginx).
Đối với thiết lập này, cần có một số gói phần mềm:
Tiếp theo, tạo một người dùng để chạy Gitea:
Sau đó, tạo cấu trúc thư mục cho Gitea:
Và đặt quyền sở hữu và quyền như sau:
Quyền trên /etc/gitea là tạm thời và sẽ được thắt chặt sau khi chạy trình cài đặt web.
Sau đó, tạo vai trò người dùng và cơ sở dữ liệu để Gitea sử dụng:
Tiếp theo, tạo tệp đơn vị systemd cho Gitea:
Và nhập thông tin sau:
Đảm bảo đơn vị mới đã được tải:
Sau đó hướng dẫn systemd khởi động Gitea khi khởi động hệ thống:
Sau đó, điều hướng đến http://your_domain:3000/install và điền vào các tham số bắt buộc như sau:
Dừng Gitea trước khi tiếp tục:
Thắt chặt quyền đối với /etc/gitea như được hiển thị bên dưới. Điều này ngăn không cho bất kỳ ai không thuộc nhóm gitea đọc app.ini, chứa thông tin nhạy cảm, bao gồm thông tin xác thực cơ sở dữ liệu.
Mở tệp cấu hình của nó:
Sử dụng lệnh sau để lấy chứng chỉ cho tên miền của bạn:
Let's Encrypt sẽ xác minh quyền sở hữu tên miền trước khi cấp chứng chỉ. Chứng chỉ, chuỗi và khóa riêng của bạn sẽ được lưu trữ trong /etc/letsencrypt/live/your_domain/.
Bây giờ chúng ta có thể cấu hình Nginx. Tạo tệp cấu hình mới:
Và nhập cấu hình sau:
Khối máy chủ đầu tiên chỉ đơn giản phục vụ cho việc chuyển hướng tất cả các yêu cầu HTTP sang HTTPS. Khối thứ hai lắng nghe các kết nối HTTPS và chuyển tiếp chúng đến socket unix mà chúng ta đã cấu hình Gitea để lắng nghe.
Sau khi lưu cấu hình trên, hãy chạy lệnh sau để bật cấu hình:
Kiểm tra xem có lỗi cú pháp nào không và chỉnh sửa cấu hình của bạn cho phù hợp:
Cuối cùng, hãy khởi động Nginx và Gitea:
Hiện tại, phiên bản Gitea của bạn sẽ chạy thành công. Nếu bạn không tạo tài khoản quản trị viên bằng trình cài đặt web ban đầu, người dùng đầu tiên đăng ký sẽ được cấp vai trò quản trị viên.
Khởi động lại Gitea để các thay đổi có hiệu lực:
Và thay đổi cổng SSH thành bất kỳ số nào lớn hơn 1000, ví dụ:
Sau đó, khởi động lại Gitea để áp dụng các thay đổi.
Yêu cầu
- Hệ thống Debian 10 mà bạn có quyền root.
- Tên miền đã đăng ký trỏ đến máy chủ của bạn.
- Biến môi trường $EDITOR phải được đặt.
- Truy cập vào máy chủ SMTP để nhận thông báo qua email (tùy chọn).
Bước 1: Chuẩn bị hệ thống
Bắt đầu bằng cách cập nhật chỉ mục gói của bạn và cài đặt bất kỳ bản cập nhật nào có sẵn:
Mã:
apt updateapt upgrade -yreboot
- Git, một phần phụ thuộc của Gitea.
- PostgreSQL, vì Gitea yêu cầu cơ sở dữ liệu.
- Nginx, sẽ được sử dụng làm proxy.
- Certbot, một tiện ích để lấy chứng chỉ SSL Let's Encrypt.
- Sudo, để chạy các lệnh với tư cách là người dùng hệ thống postgres.
Mã:
apt install -y git nginx certbot postgresql sudo
Mã:
adduser --system --disabled-password --group --shell /bin/bash --home /home/gitea gitea
Mã:
mkdir -p /var/lib/gitea/{data,log} /etc/gitea /run/gitea
Mã:
chown -R gitea:gitea /var/lib/giteachown -R gitea:gitea /run/giteachown -R root:gitea /etc/giteachmod -R 750 /var/lib/giteachmod 770 /etc/gitea
Bước 2: Thiết lập cơ sở dữ liệu
Đảm bảo Postgres được bật và đang chạy:
Mã:
systemctl enable --now [emailprotected]
Mã:
sudo -u postgres psqlpostgres=# CREATE ROLE gitea LOGIN ENCRYPTED PASSWORD 'your_password';postgres=# CREATE DATABASE gitea;postgres=# CẤP TẤT CẢ CÁC QUYỀN TRÊN CƠ SỞ DỮ LIỆU gitea CHO gitea;postgres=# exit;
Bước 3: Cài đặt Gitea
Tải xuống tệp nhị phânlinux-amd64 mới nhất từ trang tải xuống của Gitea. Ví dụ:
Mã:
wget https://dl.gitea.io/gitea/master/gitea-master-linux-amd64 -O /usr/local/bin/giteachmod 755 /usr/local/bin/gitea
Mã:
$EDITOR /etc/systemd/system/gitea.service
Mã:
[Unit]Description=Gitea (Git with a cup of tea)After=syslog.targetAfter=network.targetRequires=postgresql.service[Service]Type=simpleUser=giteaGroup=giteaWorkingDirectory=/var/lib/gitea/RuntimeDirectory=giteaExecStart=/usr/local/bin/gitea web -c /etc/gitea/app.iniRestart=alwaysEnvironment=USER=gitea HOME=/home/gitea GITEA_WORK_DIR=/var/lib/gitea[Cài đặt]WantedBy=multi-user.target
Mã:
systemctl daemon-reload
Mã:
systemctl enable gitea.service
Bước 4: Cấu hình Gitea
Đối với cấu hình ban đầu, chúng tôi sẽ sử dụng tập lệnh cài đặt web đi kèm. Trước tiên, hãy khởi động Gitea:
Mã:
systemctl start gitea.service
- Loại cơ sở dữ liệu: PostgreSQL
- Máy chủ: 127.0.0.1:5432
- Tên người dùng: gitea
- Mật khẩu: Nhập mật khẩu bạn đã chọn trong quá trình tạo vai trò Postgres.
- Tên cơ sở dữ liệu: gitea
- SSL: Tắt
- Tiêu đề trang web: Tiêu đề bạn chọn.
- Đường dẫn gốc của kho lưu trữ: /var/lib/gitea/data/repositories
- Đường dẫn gốc của Git LFS: /var/lib/gitea/data/lfs
- Chạy với tư cách là tên người dùng: gitea
- Tên miền máy chủ SSH: your_domain
- SSH Cổng máy chủ: 22
- Gitea HTTP Listen Post: 3000
- URL cơ sở Gitea: https://your_domain/
- Đường dẫn nhật ký: /var/lib/gitea/log
Dừng Gitea trước khi tiếp tục:
Mã:
systemctl stop gitea.service
Mã:
chmod 750 /etc/giteachown root:gitea /etc/gitea/app.inichmod 640 /etc/gitea/app.ini
Mã:
$EDITOR /etc/gitea/app.ini
Mã:
Xóa dòng sau khỏi phần [máy chủ]:
Mã:
HTTP_PORT = 3000
Mã:
Và thêm các dòng sau vào phần [máy chủ]:
Mã:
HTTP_ADDR = /run/gitea/gitea.sockPROTOCOL = unixUNIX_SOCKET_PERMISSION = 666
Bước 5: Thiết lập Proxy ngược
Mã:
Dừng Nginx nếu nó đang chạy, vì certbot sẽ cần liên kết với cổng 80:
Mã:
systemctl stop nginx.service
Mã:
certbot certonly --standalone --agree-tos -m [emailprotected] -d your_domain
Bây giờ chúng ta có thể cấu hình Nginx. Tạo tệp cấu hình mới:
Mã:
$EDITOR /etc/nginx/sites-available/gitea
Mã:
server { listen 80; listen [::]:80; server_name your_domain; return 301 https://$server_name$request_uri; access_log /var/log/nginx/gitea-proxy_access.log; error_log /var/log/nginx/gitea-proxy_error.log;}server { listen 443 ssl; listen [::]:443 ssl; server_name your_domain; ssl on; ssl_certificate /etc/letsencrypt/live/your_domain/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/your_domain/privkey.pem; location / { proxy_pass http://unix:/var/run/gitea/gitea.sock; } access_log /var/log/nginx/gitea-proxy_access.log; error_log /var/log/nginx/gitea-proxy_error.log;}
Sau khi lưu cấu hình trên, hãy chạy lệnh sau để bật cấu hình:
Mã:
ln -s /etc/nginx/sites-available/gitea /etc/nginx/sites-enabled
Mã:
nginx -t
Mã:
systemctl start nginx.service gitea.service
Các bước tùy chọn
Cấu hình ghi nhật ký
Theo mặc định, Gitea ghi nhật ký các thông báo có mức độ nghiêm trọng Info trở lên. Bạn rất có thể sẽ muốn thay đổi thành Warn hoặc Error. Để thực hiện, hãy mở /etc/gitea/app.ini và thay đổi tham số LEVEL trong phần [log] thành một trong các mục sau: trace, debug, info, warn, error, critical, fatal, none. Ví dụ, để ghi nhật ký các thông báo có mức độ nghiêm trọng Warn trở lên, hãy sử dụng:
Mã:
[log]MODE = fileLEVEL = warnROOT_PATH = /var/lib/gitea/log
Mã:
systemctl restart gitea.service
Máy chủ SSH riêng
Gitea cũng có thể sử dụng máy chủ SSH riêng. Để bật máy chủ này, hãy thêm dòng sau vào phần cấu hình [server]:
Mã:
START_SSH_SERVER = true
Mã:
SSH_PORT = 2222