Thứ Bảy, Tháng 4 19, 2025
Google search engine
HomelinuxCách cài đặt Gitea bằng Docker trên Ubuntu 22.04

Cách cài đặt Gitea bằng Docker trên Ubuntu 22.04

Cách cài đặt Gitea bằng Docker trên Ubuntu 22.04

Gitea là một dịch vụ Git tự lưu trữ mã nguồn mở và miễn phí như GitHub, BitBuacket và GitLab. Đó là một nhánh cộng đồng của dịch vụ Gogs git, được viết bằng Go với Giấy phép MIT. Gitea cung cấp các tính năng để phát triển cộng tác và nhóm như theo dõi lỗi, wiki và đánh giá mã. Gita là một ứng dụng đa nền tảng, có thể được cài đặt trên nhiều hệ điều hành như Linux, macOS, Windows và ARM.

Mục tiêu chính của Gitea là cung cấp cách dễ nhất, nhanh nhất và đơn giản nhất để tạo và triển khai dịch vụ Git trên máy chủ của bạn. Ngoài ra, Gitea hỗ trợ nhiều phương thức xác thực như LDAP, PAM, SMTP và FreeIPA. Đối với các sự kiện trong kho lưu trữ webhook, Gitea hỗ trợ nhiều webhook như Slack, Discord, Microsoft Team, Telegram, v.v.

Trong hướng dẫn này, bạn sẽ học cách cài đặt và cấu hình máy chủ Git tự lưu trữ có tên Gitea với Docker trên máy chủ Ubuntu 22.04 mới nhất. Điều này cũng bao gồm cài đặt và cấu hình máy chủ web Nginx như một proxy ngược cho dịch vụ vùng chứa Gitea.

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

  • Máy chủ Ubuntu – hướng dẫn này sử dụng máy chủ Ubuntu 22.04 mới nhất.
  • Người dùng không phải root có đặc quyền root – hoặc bạn cũng có thể sử dụng người dùng root.

Cài đặt và định cấu hình Docker

Bước đầu tiên bạn sẽ làm là cài đặt và cấu hình Docker trên máy Ubuntu của mình. Đối với hướng dẫn này, bạn sẽ cài đặt Docker từ kho lưu trữ Docker chính thức, vì vậy bạn sẽ cần thêm khóa và kho lưu trữ Docker GPG vào hệ thống của mình.

Trước khi bắt đầu, hãy chạy lệnh apt bên dưới để cài đặt các gói phụ thuộc cơ bản như gnupg2 và curl.

sudo apt install
    ca-certificates
    curl
    gnupg
    lsb-release

Sau khi cài đặt xong, hãy chạy lệnh dưới đây để tải xuống và thêm khóa GPG vào kho lưu trữ Docker. Khóa GPG sẽ được lưu trữ trong thư mục / etc / apt / keyrings .

sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

Tiếp theo, thêm kho lưu trữ Docker bằng lệnh sau.

echo
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu
  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

Sau đó, cập nhật và làm mới kho lưu trữ Ubuntu của bạn bằng lệnh bên dưới.

sudo apt update

Trong ảnh chụp màn hình bên dưới, bạn có thể thấy kho lưu trữ Docker cho Ubuntu 22.04 được thêm vào.

thiết lập kho lưu trữ docker

Cuối cùng, bạn có thể cài đặt công cụ Docker vào hệ thống Ubuntu của mình bằng lệnh sau. Plugin trình soạn thảo gói là sự thay thế của Docker Compose, hiện có thể được sử dụng làm plugin cho Docker.

sudo apt install docker-ce docker-ce-cli containerd.io docker-compose-plugin

Nhập Y để xác nhận cài đặt và nhấn ENTER để tiếp tục. Quá trình cài đặt Docker sẽ bắt đầu.

cài đặt docker và soạn docker

Bây giờ hãy chạy lệnh docker bên dưới để xác minh cài đặt Docker của bạn.

sudo docker run hello-world

Nếu cài đặt Docker của bạn thành công, bạn sẽ thấy thông báo Hello World từ Docker.

docker run hello-world

Thiết lập Môi trường Triển khai Gitea

Sau khi bạn đã cài đặt Docker thành công, bây giờ bạn sẽ thiết lập môi trường cài đặt Gitea. Trong ví dụ này, dịch vụ vùng chứa Gitea sẽ chạy với tư cách người dùng không phải root, vì vậy bạn sẽ cần tạo người dùng mới trên hệ thống của mình và thêm người dùng vào nhóm ‘docker’ để cho phép người dùng thực thi và chạy Docker hộp đựng.

Chạy lệnh dưới đây để thêm người dùng mới có tên gitea . Tùy chọn -m ở đây được sử dụng để tự động tạo một thư mục chính mới cho người dùng ‘ gitea ‘ và trình bao mặc định cho người dùng mới là / bin / bash .

useradd -m -s /bin/bash gitea

Tiếp theo, thêm người dùng ‘ gitea ‘ vào nhóm ‘ docker ‘ bằng lệnh sau. Và bây giờ người dùng ‘ gitea ‘ sẽ có thể chạy các vùng chứa Docker.

usermod -aG docker gitea

Để xác minh, hãy đăng nhập với tư cách người dùng ‘gitea’ bằng lệnh sau.

su - gitea

Bây giờ, hãy chạy lệnh docker bên dưới để bắt đầu một vùng chứa mới với hình ảnh ” hello-world “.

docker run hello-world

Bạn sẽ thấy thông báo Hello-world từ Docker, có nghĩa là bạn đã sẵn sàng bắt đầu cấu hình một dự án mới để cài đặt Gitea.

thiết lập docker cho người dùng không phải root

Xây dựng dịch vụ container Gitea

Sau khi thêm người dùng mới để chạy dịch vụ vùng chứa Gitea, bây giờ bạn sẽ thiết lập cài đặt dự án Gitea. Tất cả các lệnh trong phần này đang chạy dưới người dùng mới ‘ gitea ‘.

Đầu tiên, tạo một thư mục dự án mới với tên ” myapp ” và thay đổi thư mục làm việc thành thư mục đó.

mkdir -p myapp; cd myapp/

Tạo tệp docker-compost.yml mới bằng trình soạn thảo nano.

nano docker-compose.yml

Thêm cấu hình sau vào tệp docker-compost.yml .

phiên bản: "2"

khối lượng:
gitea-data:
tài xế: địa phương
gitea-config:
tài xế: địa phương

dịch vụ:
người phục vụ:
image: gitea / gitea: 1.16.8-rootless
Môi trường:
- GITEA__database__DB_TYPE = postgres
- GITEA__database__HOST = db: 5432
- GITEA__database__NAME = gitea
- GITEA__database__USER = gitea
- GITEA__database__PASSWD = gitea
khởi động lại: luôn luôn
khối lượng:
- ./data:/var/lib/gitea
- gitea-data: / var / lib / gitea
- ./config:/etc/gitea
- gitea-config: / etc / gitea
- / etc / timezone: / etc / timezone: ro
- / etc / localtime: / etc / localtime: ro
các cổng:
- "3000: 3000"
- "2222: 2222"
phụ thuộc:
- db

db:
hình ảnh: postgres: 14
khởi động lại: luôn luôn
Môi trường:
- POSTGRES_USER = gitea
- POSTGRES_PASSWORD = gitea
- POSTGRES_DB = gitea
khối lượng:
- ./postgres:/var/lib/postgresql/data

Lưu và đóng tệp khi bạn hoàn tất.

Với các cấu hình này, bạn sẽ tạo các tài nguyên sau:

  • Hai khối lượng Docker gitea-dat a và gitea-config để lưu trữ dữ liệu người dùng Gitea và các tệp cấu hình.
  • Hai dịch vụ với tên ” máy chủ ” và ” db “.
  • Dịch vụ vùng chứa Gitea sẽ chạy với tên ” máy chủ “, dựa trên hình ảnh Docker “gitea / gitea: 1.16.8-rootless ” và xuất các cổng TCP 30002222 .
  • Dịch vụ vùng chứa Gitea sẽ chạy với dịch vụ cơ sở dữ liệu PostgreSQL có tên ” db “.
  • Dịch vụ ” db ” sẽ chạy dưới dạng cơ sở dữ liệu cho dịch vụ Gitea với hình ảnh Docker mặc định là PostgreSQL ” postgres: 14 “. Tất cả dữ liệu liên quan đến dịch vụ ” db ” sẽ được lưu trữ cục bộ trên thư mục có tên ” postgres “.

Tiếp theo, chạy lệnh docker bên dưới để bắt đầu xây dựng và khởi động các dịch vụ vùng chứa Gitea.

docker compose up -d

Dưới đây, bạn có thể xem quá trình tải xuống các hình ảnh Docker cần thiết cho Gitea.

bắt đầu triển khai gitea

Khi tất cả quá trình hoàn tất, bạn sẽ thấy kết quả giống như ảnh chụp màn hình sau.

triển khai gitea đã hoàn thành

Bây giờ hãy chạy lệnh docker bên dưới để kiểm tra các dịch vụ vùng chứa gitea.

docker compose ps

Trong ảnh chụp màn hình sau, bạn có thể thấy dịch vụ có tên ” máy chủ ” và ” db ” đang chạy, có nghĩa là việc triển khai dịch vụ vùng chứa Gitea đã hoàn tất và thành công.

Dịch vụ Gitea đang chạy trên máy chủ cục bộ với cổng 3000 . Và cổng 2222 có thể được sử dụng cho các kết nối SSH.

kiểm tra dịch vụ container gitea

nếu bạn gặp lỗi trong khi cài đặt, bạn luôn kiểm tra nhật ký của các dịch vụ vùng chứa bằng cách sử dụng các lệnh dưới đây.

Kiểm tra nhật ký từ tất cả các dịch vụ container.

docker compose logs

Kiểm tra nhật ký cho từng dịch vụ vùng chứa db và máy chủ.

docker compose logs db
docker compose logs server

Thiết lập Nginx làm Reverse Proxy cho Gitea

Bạn đã hoàn tất cài đặt dịch vụ vùng chứa Gitea, bây giờ bạn sẽ cài đặt và định cấu hình máy chủ web Nginx làm proxy ngược cho dịch vụ vùng chứa Gitea đang chạy trên cổng mặc định 3000.

Trong ví dụ này, dịch vụ vùng chứa Gitea sẽ chạy với tên miền git.hwdomain.io và SSL Letsencrypt được bật. Vì vậy, trước khi bạn thiết lập proxy ngược nginx, hãy đảm bảo rằng bạn có tên miền và SSL được mã hóa cho tên miền của bạn.

Bây giờ cài đặt gói Nginx bằng lệnh apt bên dưới.

sudo apt install nginx

Nhập Y để xác nhận cài đặt và nhấn ENTER để tiếp tục.

cài đặt nginx

Tiếp theo, tạo cấu hình SSL mới /etc/nginx/snippets/ssl.conf bằng trình chỉnh sửa nano.

sudo nano /etc/nginx/snippets/ssl.conf

Thêm cấu hình sau vào tệp. Ngoài ra, bạn sẽ cần thay đổi đường dẫn chứng chỉ SSL.

ssl_certificate /etc/letsencrypt/live/git.hwdomain.io/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/git.hwdomain.io/privkey.pem;

# từ https://cipherli.st/
# và https://raymii.org/s/tutorials/Strong_SSL_Security_On_nginx.html

ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers trên;
ssl_ciphers "EECDH + AESGCM: EDH + AESGCM: AES256 + EECDH: AES256 + EDH";
ssl_ecdh_curve secp384r1;
ssl_session_cache được chia sẻ: SSL: 10m;
tắt ssl_session_tickets;
#ssl_stapling trên;
#ssl_stapling_verify trên;
#resolver 8.8.8.8 8.8.4.4 hợp lệ = 300 giây;
#resolver_timeout 5s;
# Tắt tải trước HSTS ngay bây giờ. Bạn có thể sử dụng dòng tiêu đề đã nhận xét bao gồm
# lệnh "tải trước" nếu bạn hiểu hàm ý.
#add_header Nghiêm ngặt-Vận chuyển-Bảo mật "max-age = 63072000; includeSubdomains; tải trước";
add_header Nghiêm ngặt-Vận chuyển-Bảo mật "max-age = 63072000; includeSubdomains";
add_header X-Frame-Options DENY;
add_header X-Content-Type-Options nosniff;

Lưu và đóng tệp khi bạn hoàn tất.

Tiếp theo, tạo cấu hình khối máy chủ Nginx mới cho proxy ngược Gitea /etc/nginx/sites-available/gitea.conf bằng trình chỉnh sửa nano.

sudo nano /etc/nginx/sites-available/gitea.conf

Thêm cấu hình sau vào tệp và đảm bảo không thay đổi tên miền git.hwdomain.io với miền của bạn.

người phục vụ {
server_name git.hwdomain.io;
nghe 443 ssl http2;
bao gồm các đoạn mã / ssl.conf;

# Tệp nhật ký
access_log /var/log/nginx/gitea.access.log;
error_log /var/log/nginx/gitea.error.log;

địa điểm / {
proxy_pass http: // localhost: 3000;
proxy_set_header Máy chủ $ host;
proxy_set_header X-Real-IP $ remote_addr;
proxy_set_header X-Được chuyển tiếp-Đối với $ proxy_add_x_osystemed_for;
proxy_set_header X-Forwarded-Proto $ lược đồ;
}
}

Lưu và đóng tệp khi bạn hoàn tất.

Bây giờ hãy chạy lệnh sau để kích hoạt cấu hình khối máy chủ gitea.conf và xác minh cấu hình Nginx.

sudo ln -s /etc/nginx/sites-available/gitea.conf /etc/nginx/sites-enabled/
sudo nginx -t

Nếu cấu hình của bạn đúng, bạn sẽ thấy thông báo xuất ra như ” cú pháp là ok – kiểm tra thành công “.

Cuối cùng, khởi động lại dịch vụ nginx để áp dụng cấu hình khối máy chủ Nginx mới gitea.conf và cấu hình SSL ssl.conf.

sudo systemctl restart nginx

Bây giờ bạn đã hoàn thành cấu hình Nginx làm proxy ngược cho dịch vụ vùng chứa Gitea, hiện đang chạy trên tên miền https://git.hwdomain.io với SSL được bật ở trên cùng.

Bắt đầu cấu hình cài đặt Gitea

Để bắt đầu cài đặt và cấu hình Gitea, hãy mở trình duyệt web của bạn và truy cập vào tên miền gitea để cài đặt của bạn (ví dụ: https://git.hwdomain.io). Và bây giờ bạn sẽ thấy trang cài đặt Gitea.

Trong phần Cấu hình ban đầu, hãy để nó làm mặc định vì nó tự động điền thông tin đăng nhập cơ sở dữ liệu PostgreSQL từ tệp docker-compost.yml.

cấu hình ban đầu gitea

Bây giờ thay đổi ” Tên miền máy chủ ” và ” URL cơ sở của Gitea ” với cài đặt tên miền của bạn. Trong ví dụ này, tên miền là https://git.hwdomain.io.

thiết lập tên miền gitea

Trên phần “Cài đặt tùy chọn”, nhấp vào mũi tên trên ” Cài đặt tài khoản quản trị viên “. Bây giờ nhập tên người dùng, mật khẩu và địa chỉ email quản trị viên mới cho máy chủ Gitea của bạn và nhấp vào nút ” Cài đặt Gitea “.

tạo người dùng quản trị

Sau khi quá trình cài đặt hoàn tất, bạn sẽ được chuyển đến trang chủ của Gitea và đăng nhập với tư cách người dùng mới mà bạn vừa tạo.

bảng điều khiển người dùng gitea

Quá trình cài đặt và cấu hình Gitea với Docker trên Ubuntu 22.04 mới nhất đã hoàn tất và thành công.

Sự kết luận

Xin chúc mừng! Bây giờ bạn đã hoàn tất cài đặt máy chủ git tự lưu trữ có tên Gitea với Docker trên máy chủ Ubuntu 22.04 mới nhất. Ngoài ra, bạn đã học được cấu hình cơ bản của docker -omp.yml để tạo các dịch vụ vùng chứa. Ngoài ra, bạn đã học cách thiết lập Nginx làm proxy ngược cho ứng dụng vùng chứa, trong ví dụ này là dịch vụ vùng chứa Gitea.

xem dưới dạng pdf | in

Chia sẻ trang này:

RELATED ARTICLES

LEAVE A REPLY

Please enter your comment!
Please enter your name here

- Advertisment -
Google search engine

Most Popular

Recent Comments