Cách cài đặt Gitea Code Hosting bằng Docker trên Rocky Linux 8

theanh

Administrator
Nhân viên
Gitea là dịch vụ lưu trữ mã tự lưu trữ tương tự như Github, Bitbucket và Gitlab. Gitea được viết bằng ngôn ngữ Go và có thể cài đặt trên nhiều hệ điều hành, bao gồm Linux, macOS, Windows và các kiến trúc như amd64, i386, ARM và các kiến trúc khác. Là một ứng dụng nhẹ, Gitea có thể được cài đặt với yêu cầu phần cứng tối thiểu. Nó bao gồm trình chỉnh sửa tệp kho lưu trữ, máy chủ OpenSSH, theo dõi sự cố, yêu cầu kéo, quản lý người dùng, thông báo, wiki tích hợp, hỗ trợ LFS, Git hooks và nhiều hơn nữa.

Trong bài viết này, bạn sẽ học cách cài đặt Gitea bằng Docker trên máy chủ Rocky Linux 8.

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


  • Máy chủ chạy Rocky Linux 8.5.

  • Người dùng không phải root có quyền sudo.

  • Vô hiệu hóa SELinux.

  • Cập nhật mọi thứ.
Mã:
$ sudo dnf update
[*]
Cài đặt các gói thiết yếu.
Mã:
$ sudo dnf install yum-utils nano curl
[*]
Tên miền đủ điều kiện (FQDN) trỏ đến máy chủ như gitea.example.com.

Bước 1 - Cấu hình Tường lửa​

Bước đầu tiên là cấu hình tường lửa. Rocky Linux sử dụng Tường lửa Firewalld. Kiểm tra trạng thái của tường lửa.
Mã:
$ sudo firewall-cmd --staterunning
Tường lửa hoạt động với các vùng khác nhau và vùng công cộng là vùng mặc định mà chúng ta sẽ sử dụng. Liệt kê tất cả các dịch vụ và cổng đang hoạt động trên tường lửa.
Mã:
$ sudo firewall-cmd --permanent --list-services
Nó sẽ hiển thị đầu ra sau.
Mã:
cockpit dhcpv6-client ssh
Cho phép các cổng HTTP và HTTPS.
Mã:
$ sudo firewall-cmd --permanent --add-service=http$ sudo firewall-cmd --permanent --add-service=https
Mở cổng 2221 cho SSH.
Mã:
$ sudo firewall-cmd --permanent --add-port=2221/tcp
Liệt kê tất cả các dịch vụ đang được tường lửa bật.
Mã:
$ sudo firewall-cmd --permanent --list-all
Bạn sẽ thấy đầu ra tương tự.
Mã:
public target: default icmp-block-inversion: no interfaces: sources: services: cockpit dhcpv6-client http https ssh ports: 2221/tcp protocols: forward: no masquerade: no forward-ports: source-ports: icmp-blocks: rich rules:
Tải lại tường lửa để kích hoạt các thay đổi.
Mã:
$ sudo firewall-cmd --reload

Bước 2 - Cài đặt Docker​

Rocky Linux được tích hợp sẵn phiên bản Docker cũ hơn. Để cài đặt phiên bản mới nhất, trước tiên, hãy cài đặt kho lưu trữ Docker chính thức.
Mã:
$ sudo yum-config-manager \ --add-repo \ https://download.docker.com/linux/centos/docker-ce.repo
Cài đặt phiên bản Docker mới nhất.
Mã:
$ sudo dnf install docker-ce docker-ce-cli containerd.io
Bật và chạy daemon Docker.
Mã:
$ sudo systemctl enable docker --now
Xác minh rằng nó đang chạy.
Mã:
? docker.service - Docker Application Container Engine Đã tải: đã tải (/usr/lib/systemd/system/docker.service; đã bật; cài đặt trước của nhà cung cấp: đã tắt) Đang hoạt động: đang hoạt động (đang chạy) kể từ Thứ bảy 2022-04-02 13:26:08 UTC; 2 giây trước Tài liệu: https://docs.docker.com PID chính: 21152 (dockerd) Nhiệm vụ: 7 Bộ nhớ: 30,9M CGroup: /system.slice/docker.service ??21152 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock...
Theo mặc định, Docker yêu cầu quyền root. Nếu bạn muốn tránh sử dụng sudo mỗi khi chạy lệnh docker, hãy thêm tên người dùng của bạn vào nhóm docker.
Mã:
$ sudo usermod -aG docker $(whoami)
Bạn sẽ cần đăng xuất khỏi máy chủ và đăng nhập lại với cùng một người dùng để bật thay đổi này.

Bước 3 - Cài đặt Docker Compose​

Tải xuống bản phát hành ổn định mới nhất của Docker Compose.
Mã:
$ sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
Áp dụng quyền thực thi cho tệp nhị phân Docker Compose file.
Mã:
$ sudo chmod +x /usr/local/bin/docker-compose
Kiểm tra cài đặt.
Mã:
$ docker-compose --versiondocker-compose phiên bản 1.29.2, bản dựng 5becea4c
Cài đặt tập lệnh Docker-compose Bash Completion.
Mã:
$ sudo curl \ -L https://raw.githubusercontent.com/docker/compose/1.29.2/contrib/completion/bash/docker-compose \ -o /etc/bash_completion.d/docker-compose
Tải lại cài đặt hồ sơ của bạn để bash-completion hoạt động.
Mã:
$ source ~/.bashrc

Bước 4 - Cấu hình và cài đặt Gitea​

Cấu hình múi giờ hệ thống​

Bạn có thể kiểm tra múi giờ hiện tại của hệ thống bằng lệnh sau.
Mã:
$ timedatectl Giờ địa phương: Thứ Hai 2022-05-02 06:38:36 UTC Giờ quốc tế: Thứ Hai 2022-05-02 06:38:36 UTC Giờ RTC: Thứ Hai 2022-05-02 06:38:36 Múi giờ: Etc/UTC (UTC, +0000)Đồng bộ hóa đồng hồ hệ thống: có Dịch vụ NTP: hoạt động RTC tại TZ cục bộ: không
Bạn có thể thấy hệ thống được đặt thành múi giờ GMT hoặc UTC. Nếu bạn sống ở khu vực có múi giờ khác hoặc muốn thay đổi múi giờ, hãy sử dụng lệnh sau để thực hiện.
Mã:
$ sudo timedatectl set-timezone Asia/Kolkata
Kiểm tra lại múi giờ.
Mã:
$ timedatectlGiờ địa phương: Thứ Hai 2022-05-02 12:09:23 IST Giờ quốc tế: Thứ Hai 2022-05-02 06:39:23 UTC Giờ RTC: Thứ Hai 2022-05-02 06:39:22 Múi giờ: Châu Á/Kolkata (IST, +0530)Đồng bộ hóa đồng hồ hệ thống: có Dịch vụ NTP: đang hoạt động RTC tại TZ cục bộ: không
Bạn có thể thấy múi giờ đã được cập nhật thành IST, tức là GMT+5:30.

Tạo Gitea Thư mục​

Tạo thư mục cho Gitea.
Mã:
$ mkdir ~/gitea-docker
Chuyển sang thư mục Gitea.
Mã:
$ cd ~/gitea-docker
Tạo thư mục để lưu trữ dữ liệu Gitea và cơ sở dữ liệu PostgreSQL.
Mã:
$ mkdir {gitea,postgres}

Cấu hình tệp Gitea Docker Compose​

Lấy giá trị UID (Mã định danh người dùng) và GID (Mã định danh nhóm) cho người dùng hiện đang đăng nhập. Lệnh đầu tiên tạo UID, trong khi lệnh thứ hai tạo GID. Sao chép cả hai giá trị vì chúng sẽ cần thiết để cấu hình tệp Docker compose.
Mã:
$ echo $(id -u)1000$ echo $(id -g)1000
Tạo và mở tệp Docker Compose để chỉnh sửa.
Mã:
$ nano docker-compose.yml
Dán mã sau vào đó. Dán các giá trị UID và GID được tạo trước đó.
Mã:
version: "3"networks: gitea: external: falseservices: server: image: gitea/gitea:1.16.6 container_name: gitea environment: - USER_UID=1000 - USER_GID=1000 - GITEA__database__DB_TYPE=postgres - GITEA__database__HOST=db:5432 - GITEA__database__NAME=gitea - GITEA__database__USER=gitea - GITEA__database__PASSWD=gitea restart: always networks: - gitea volumes: - ./gitea:/data - /etc/timezone:/etc/timezone:ro - /etc/localtime:/etc/localtime:ro ports: - "3000:3000" - "2221:22" depends_on: - db db: image: postgres:14 restart: always environment: - POSTGRES_USER=gitea - POSTGRES_PASSWORD=gitea - POSTGRES_DB=gitea networks: - gitea volumes: - ./postgres:/var/lib/postgresql/data
Lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc.

Tệp Docker Compose ở trên triển khai hai vùng chứa - một cho Gitea và một cho PostgreSQL. Chúng tôi đã thêm một vài biến môi trường để cấu hình chi tiết cơ sở dữ liệu. Để kết nối cơ sở dữ liệu PostgreSQL với vùng chứa Gitea, chúng tôi đã chỉ định máy chủ làm tên của dịch vụ PostgreSQL trong tệp.

Các tham số cổng "3000:3000" và "2221:22" chỉ định ánh xạ cổng trong đó cổng bên trái biểu thị cổng máy chủ và cổng bên phải biểu thị cổng vùng chứa. Gitea sử dụng cổng 3000 cho dịch vụ web của mình, đây cũng là cổng mà chúng tôi đã đưa lên máy chủ. Đối với SSH, hệ thống của chúng tôi đã sử dụng cổng 22 cho mục đích ghi nhật ký. Do đó, chúng tôi chỉ định một cổng tùy chỉnh để thực hiện các hoạt động SSH. Trong trường hợp của chúng tôi, chúng tôi đang sử dụng cổng 2221. Cổng này cũng cần được mở thông qua tường lửa của bạn, chúng tôi đã thực hiện ở bước 1 của hướng dẫn này.

Cả Gitea và các container PostgreSQL đều được kết nối thông qua một mạng Docker nội bộ chung có tên là gitea. Các mount ổ đĩa sẽ tự động tạo các thư mục gitea và postgres trong thư mục hiện tại khi bạn bắt đầu cài đặt Docker. ID người dùng được chỉ định trong tệp compose là ID mà container Gitea sẽ sử dụng để tạo thư mục gitea.Mặt khác, container PostgreSQL sẽ được quản lý bởi người dùng systemd-coredump, đây là hành vi mặc định. Bạn có thể thay đổi hành vi đó, nhưng điều đó không cần thiết.

Tùy chỉnh Cài đặt Gitea của bạn​

Bạn có thể tùy chỉnh cài đặt Gitea của mình bằng cách thêm tệp app.ini vào thư mục ~/gitea-docker/gitea/gitea/conf. Sau khi cài đặt, tệp này có thể được chỉnh sửa từ bên trong vùng chứa từ vị trí /data/gitea/conf/app.ini. Bạn có thể sử dụng tệp ini mẫu từ kho lưu trữ Github của Gitea để tham khảo.

Cài đặt Gitea​

Chạy lệnh sau để khởi chạy các container Gitea.
Mã:
$ docker-compose up -d
Kiểm tra trạng thái của các container để đảm bảo chúng đang chạy đúng cách.
Mã:
$ docker psCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMESbd06e370c46b gitea/gitea:1.16.6 "/usr/bin/entrypoint…" 19 phút trước Đã hoạt động 19 phút 0.0.0.0:3000->3000/tcp, :::3000->3000/tcp, 0.0.0.0:2221->22/tcp, :::2221->22/tcp gitea3fc6c4bce810 postgres:14 "docker-entrypoint.s…" 19 phút trước Đã hoạt động 19 phút 5432/tcp gitea_db_1
Bạn cũng có thể sử dụng lệnh sau để kiểm tra trạng thái.
Mã:
$ docker-compose ps Tên Lệnh Trạng thái Cổng-------------------------------------------------------------------------------------------------------------------------------------------------------gitea /usr/bin/entrypoint /bin/s ... Đã hoạt động 0.0.0.0:2221->22/tcp,:::2221->22/tcp, 0.0.0.0:3000->3000/tcp,:::3000->3000/tcpgitea_db_1 docker-entrypoint.sh postgres Up 5432/tcp

Bước 5 - Cài đặt SSL​

Để cài đặt chứng chỉ SSL bằng Let's Encrypt, chúng ta cần cài đặt công cụ Certbot.

Trước tiên, bạn cần tải xuống và cài đặt kho lưu trữ EPEL.
Mã:
$ sudo dnf install epel-release
Chạy các lệnh sau để cài đặt Certbot.
Mã:
$ sudo dnf install certbot
Tạo chứng chỉ SSL.
Mã:
$ sudo certbot certonly --standalone --agree-tos --no-eff-email --staple-ocsp --preferred-challenges http -m [emailprotected] -d gitea.example.com
Lệnh trên sẽ tải xuống chứng chỉ vào thư mục /etc/letsencrypt/live/gitea.example.com trên máy chủ của bạn.

Tạo chứng chỉ nhóm Diffie-Hellman.
Mã:
$ sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 4096
Tạo thư mục gốc web thử thách để tự động gia hạn Let's Encrypt.
Mã:
$ sudo mkdir -p /var/lib/letsencrypt
Tạo Cron Job để gia hạn SSL. Nó sẽ chạy hàng ngày để kiểm tra chứng chỉ và gia hạn nếu cần. Để thực hiện việc đó, trước tiên, hãy tạo tệp /etc/cron.daily/certbot-renew và mở tệp đó để chỉnh sửa.
Mã:
$ sudo nano /etc/cron.daily/certbot-renew
Dán mã sau.
Mã:
#!/bin/shcertbot renew --cert-name gitea.example.com --webroot -w /var/lib/letsencrypt/ --post-hook "systemctl reload nginx"
Lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc.

Thay đổi quyền trên tệp tác vụ để làm cho tệp đó có thể thực thi được.
Mã:
$ sudo chmod +x /etc/cron.daily/certbot-renew

Bước 6 - Cài đặt Nginx​

Chúng tôi sẽ cài đặt phiên bản Nginx mới nhất. Tạo và mở tệp /etc/yum.repos.d/nginx.repo để chỉnh sửa.
Mã:
$ sudo nano /etc/yum.repos.d/nginx.repo
Dán các dòng sau vào đó.
Mã:
[nginx-stable]name=nginx stable repobaseurl=http://nginx.org/packages/centos/$releasever/$basearch/gpgcheck=1enabled=1gpgkey=https://nginx.org/keys/nginx_signing.keymodule_hotfixes=true[nginx-mainline]name=nginx mainline repobaseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/gpgcheck=1enabled=0gpgkey=https://nginx.org/keys/nginx_signing.keymodule_hotfixes=true
Lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc.

Cài đặt Nginx.
Mã:
$ sudo dnf install nginx
Xác minh cài đặt.
Mã:
$ nginx -vphiên bản nginx: nginx/1.20.2
Bật và khởi động dịch vụ Nginx.
Mã:
$ sudo systemctl enable nginx --now
Tạo và mở tệp /etc/nginx/conf.d/gitea.conf để chỉnh sửa.
Mã:
$ sudo nano /etc/nginx/conf.d/gitea.conf
Dán mã sau vào đó.
Mã:
# Chuyển hướng tất cả không được mã hóa sang được mã hóaserver { listen 80; listen [::]:80; server_name gitea.example.com; return 301 https://$host$request_uri;}server { listen 443 ssl http2; listen [::]:443 ssl http2; server_name gitea.example.com; ssl_certificate /etc/letsencrypt/live/gitea.example.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/gitea.example.com/privkey.pem; ssl_trusted_certificate /etc/letsencrypt/live/gitea.example.com/chain.pem; ssl_session_timeout 1d; ssl_session_cache shared:MozSSL:10m; tắt ssl_session_tickets; bật ssl_stapling; bật ssl_stapling_verify; ssl_dhparam /etc/ssl/certs/dhparam.pem; ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384; nhật ký truy cập /var/log/nginx/gitea.example.com.access.log chính; nhật ký lỗi /var/log/nginx/gitea.example.com.error.log; vị trí / { kích thước_phần_thể_tối_đa của_khách_hàng 100M; proxy_pass http://localhost:3000; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; }}
Sau khi hoàn tất, hãy lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc. Cấu hình trên cho phép Nginx hoạt động như một máy chủ proxy và liên kết với cổng 3000 trên localhost. Để cho phép tải lên các tệp lớn cho Git LFS, bạn có thể thay đổi giá trị của biến client_max_body_size theo yêu cầu. Đối với hướng dẫn của chúng tôi, chúng tôi sử dụng 100 MB làm giới hạn.

Mở tệp /etc/nginx/nginx.conf để chỉnh sửa.
Mã:
$ sudo nano /etc/nginx/nginx.conf
Thêm dòng sau trước dòng include /etc/nginx/conf.d/*.conf;.
Mã:
server_names_hash_bucket_size 64;
Lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc.

Xác minh cú pháp tệp cấu hình Nginx.
Mã:
$ sudo nginx -tnginx: cú pháp tệp cấu hình /etc/nginx/nginx.conf là oknginx: tệp cấu hình Kiểm tra /etc/nginx/nginx.conf thành công
Khởi động lại dịch vụ Nginx để kích hoạt cấu hình mới.
Mã:
$ sudo systemctl restart nginx

Bước 7 - Truy cập và thiết lập Gitea​

Truy cập URL https://gitea.example.com trong trình duyệt của bạn và màn hình cài đặt sau sẽ xuất hiện.



Hầu hết các trường sẽ được điền sẵn cho bạn dựa trên các giá trị từ tệp Docker compose.



Nhập gitea.example.com làm Miền máy chủhttps://gitea.example.com làm URL cơ sở Gitea. Thay đổi giá trị cho Cổng máy chủ SSH từ 22 thành 2221. Giữ nguyên các thiết lập còn lại.

Nếu bạn muốn sử dụng các tính năng thư, bạn có thể thêm thông tin chi tiết về máy chủ SMTP của mình. Mở rộng phần Cài đặt email của trang và nhập các giá trị như trong ảnh chụp màn hình. Đảm bảo bao gồm cổng SMTP của bạn với tên máy chủ như được hiển thị. Đối với hướng dẫn của chúng tôi, chúng tôi đang sử dụng dịch vụ Amazon SES. Bạn có thể sử dụng bất kỳ dịch vụ SMTP nào bạn chọn.



Có một số thiết lập khác mà bạn nên kiểm tra trước khi cài đặt. Để thay đổi chúng, hãy mở rộng phần Cài đặt máy chủ và dịch vụ của bên thứ ba của trang.



Thay đổi các thiết lập theo yêu cầu của bạn. Chúng tôi đã bật tùy chọn Ẩn địa chỉ email theo mặc định để đảm bảo quyền riêng tư cao hơn. Nếu bạn không muốn mọi người đăng ký tài khoản, hãy bật tùy chọn Tắt tự đăng ký.

Cuối cùng nhưng không kém phần quan trọng, hãy thiết lập tài khoản quản trị viên của bạn. Mở rộng phần Cài đặt tài khoản quản trị viên của trang và điền vào các giá trị bắt buộc.



Nhấp vào nút Cài đặt Gitea khi hoàn tất để hoàn tất quá trình cài đặt. Bạn sẽ được chuyển hướng đến bảng điều khiển Gitea. Nếu vì lý do nào đó, bạn gặp lỗi 502, hãy làm mới trang.


Bước 8 - Tạo kho lưu trữ đầu tiên​

Chúng ta hãy tạo kho lưu trữ đầu tiên. Để thực hiện việc đó, hãy nhấp vào dấu + trên bảng điều khiển.



Nhập thông tin chi tiết về kho lưu trữ. Chọn nhãn Sự cố mặc định bằng cách chọn từ menu thả xuống. Chọn giấy phép phù hợp cho kho lưu trữ của bạn.



Chọn nhánh mặc định cho kho lưu trữ của bạn.



Sau khi hài lòng, hãy nhấp vào nút Tạo kho lưu trữ để tạo kho lưu trữ đầu tiên của bạn trên bản cài đặt Gitea. Bạn sẽ được chuyển hướng đến trang chủ kho lưu trữ của mình.


Bước 9 - Thiết lập SSH​

Chúng ta hãy thiết lập SSH để sử dụng với kho lưu trữ mới tạo của mình.

Đối với hướng dẫn này, chúng ta sẽ sử dụng một máy tính cục bộ có cài đặt sẵn Ubuntu. Tuy nhiên, các lệnh sẽ hoạt động trên bất kỳ thiết bị đầu cuối hệ điều hành nào mà không cần thay đổi nhiều.

Tạo một khóa SSH mới để sử dụng với Gitea trên máy tính cục bộ của bạn.
Mã:
$ ssh-keygen -f ~/.ssh/gitea-demo -t rsa -b 4096 -C "HowtoForge Gitea Demo" -q -N "yourpassphrase"
Nhập một mật khẩu mạnh thay cho chỗ giữ chỗ trong lệnh ở trên. Thao tác này sẽ tạo khóa SSH tại vị trí ~/.ssh/gitea-demo.

Tiếp theo, mở cài đặt hồ sơ Gitea của bạn như hiển thị bằng cách nhấp vào menu thả xuống trên ảnh hồ sơ của bạn và chọn tùy chọn Cài đặt.



Tiếp theo, chuyển sang tab Khóa SSH/GPG trên trang.



Thêm tên cho khóa SSH của bạn. Quay lại thiết bị đầu cuối trên PC cục bộ của bạn và chạy lệnh sau để xuất khóa công khai cho Gitea.
Mã:
$ cat ~/.ssh/gitea-demo.pub
Sao chép đầu ra kết quả và dán lại vào hộp Nội dung trên trang khóa SSH của Gitea.

Nhấp vào nút Thêm khóa để hoàn tất việc thêm khóa.



Quay lại PC cục bộ của bạn và thiết lập tác nhân SSH để duy trì hoạt động trong 1 giờ.
Mã:
$ eval $(ssh-agent -t 3600)b
Thêm khóa SSH mới tạo vào tác nhân SSH.
Mã:
$ ssh-add ~/.ssh/gitea-demoNhập cụm mật khẩu cho /home/navjot/.ssh/gitea-demo:Đã thêm danh tính: /home/navjot/.ssh/gitea-demo (Bản demo HowtoForge Gitea)
Bạn sẽ được nhắc nhập mật khẩu.

Bước 10 - Sao chép kho lưu trữ bằng SSH​

Chúng ta hãy sao chép kho lưu trữ mới tạo bằng SSH. Truy cập lại trang kho lưu trữ và sao chép URL SSH sau khi chọn tùy chọn SSH.



Nó sẽ trông giống như sau.
Mã:
ssh://[emailprotected]:2221/navjot/howtoforge.git
Chạy lệnh sau trên PC cục bộ của bạn để sao chép kho lưu trữ bằng SSH.
Mã:
$ git clone ssh://[emailprotected]:2221/navjot/howtoforge.gitĐang sao chép vào 'howtoforge'...Không thể thiết lập tính xác thực của máy chủ '[gitea.example.com]:2221 ([209.23.11.75]:2221)'.Dấu vân tay khóa ECDSA là SHA256:sN0N4OkpChwuR00xpGZU1mGJrp7ktwHRC7uxGP7Nh08.Bạn có chắc chắn muốn tiếp tục kết nối (có/không/[dấu vân tay]) không? cóCảnh báo: Đã thêm vĩnh viễn '[gitea.example.com]:2221,[209.23.11.75]:2221' (ECDSA) vào danh sách các máy chủ đã biết.remote: Đang liệt kê các đối tượng: 4, xong.remote: Đang đếm các đối tượng: 100% (4/4), xong.remote: Đang nén các đối tượng: 100% (3/3), xong.remote: Tổng cộng 4 (delta 0), đã sử dụng lại 0 (delta 0), đã sử dụng lại gói 0Đang nhận các đối tượng: 100% (4/4), xong.
Bạn sẽ được nhắc thêm thông tin xác thực của máy chủ. Nhập yes để tiến hành sao chép kho lưu trữ.

Bạn sẽ thấy kho lưu trữ đã sao chép trên hệ thống của mình.
Mã:
$ lshowtoforge
Chuyển đến thư mục.
Mã:
$ cd howtoforge
Kiểm tra trạng thái Git của kho lưu trữ mới được sao chép. Để thực hiện việc này, bạn nên cài đặt Git trên PC cục bộ của mình.
Mã:
$ git statusTrên nhánh masterNhánh của bạn đã được cập nhật với 'origin/master'.không có gì để cam kết, cây làm việc sạch sẽ
Điều này kết luận rằng SSH đang hoạt động hoàn hảo.

Bước 11 - Kiểm tra lần cam kết đầu tiên​

Bây giờ chúng ta đã thiết lập kho lưu trữ đầu tiên, đã đến lúc thực hiện một số thay đổi và cam kết chúng trở lại.

Chúng ta hãy cập nhật tệp README.md. Trên PC cục bộ của bạn, hãy mở tệp readme để chỉnh sửa.
Mã:
$ nano README.md
Chỉnh sửa tệp và khi hoàn tất, hãy lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc.

Kiểm tra lại trạng thái Git.
Mã:
$ git statusTrên nhánh masterNhánh của bạn đã được cập nhật với 'origin/master'.Những thay đổi không được dàn dựng để cam kết: (sử dụng "git add ..." để cập nhật những gì sẽ được cam kết) (sử dụng "git restore ..." để hủy những thay đổi trong thư mục làm việc) đã sửa đổi: README.mdkhông có thay đổi nào được thêm vào cam kết (sử dụng "git add" và/hoặc "git commit -a")
Điều này cho thấy tệp Readme đã được chỉnh sửa nhưng chưa được cam kết. Thêm tệp để chuẩn bị cho cam kết.
Mã:
$ git add README.md
Cam kết tệp.
Mã:
$ git commit -m "Cập nhật tệp Readme cho hướng dẫn Gitea."[master 5e9b039] Cập nhật tệp Readme cho hướng dẫn Gitea. 1 tệp đã thay đổi, 3 lần chèn (+), 1 lần xóa (-)
Đẩy tệp lên Máy chủ Gitea của bạn.
Mã:
$ git push origin masterĐang liệt kê các đối tượng: 5, xong.Đang đếm các đối tượng: 100% (5/5), xong.Nén delta sử dụng tối đa 4 luồngĐang nén các đối tượng: 100% (3/3), xong.Đang ghi các đối tượng: 100% (3/3), 392 byte | 392,00 KiB/giây, xong.Tổng cộng 3 (delta 0), đã sử dụng lại 0 (delta 0)remote: . Đang xử lý 1 tham chiếuremote: Đã xử lý tổng cộng 1 tham chiếuĐến ssh://gitea.example.com:2221/navjot/howtoforge.git a61dfce..5e9b039 master -> master
Để xác nhận, hãy quay lại trang kho lưu trữ Gitea.



Bạn có thể nhận thấy rằng tệp Readme đã được cập nhật và thông báo cam kết mới nhất cũng được hiển thị. Để xem các thay đổi, hãy nhấp vào thông báo xác nhận và bạn có thể xem trang sau với các điểm khác biệt.



Đây là lần xác nhận đầu tiên của chúng ta cho kho lưu trữ. Bạn có thể bắt đầu làm việc trên cài đặt Gitea cho các dự án của mình.

Bước 12 - Nâng cấp Gitea​

Nâng cấp Gitea là một quá trình đơn giản.

Tắt và xóa các vùng chứa hiện có. Vì dữ liệu được lưu bên ngoài các vùng chứa trên máy chủ nên dữ liệu sẽ được giữ lại.
Mã:
$ cd ~/gitea-docker$ docker-compose down --remove-orphans
Mở tệp docker-compose.yml và thay đổi phiên bản của vùng chứa Gitea. Tiếp theo, kéo hình ảnh Gitea mới.
Mã:
$ docker pull
Khởi động các container mới.
Mã:
$ docker-compose up -d
Kiểm tra trạng thái.
Mã:
$ docker ps

Kết luận​

Như vậy là kết thúc hướng dẫn cài đặt Gitea Code Hosting Service bằng Docker trên máy chủ Rocky Linux. Chúng tôi cũng cài đặt máy chủ Nginx để hoạt động như một proxy và hiển thị Gitea qua URL công khai bằng SSL. Nếu bạn có bất kỳ câu hỏi nào, hãy đăng chúng trong phần bình luận bên dưới.
 
Back
Bên trên