Trang chủHướng dẫnCách cài đặt và cấu hình GitLab trên Ubuntu

Cách cài đặt và cấu hình GitLab trên Ubuntu

CyStack blog 12 phút để đọc
CyStack blog16/10/2025
Locker Avatar

Chris Pham

Technical Writer

Locker logo social
Reading Time: 12 minutes

GitLab là một ứng dụng mã nguồn mở chủ yếu dùng để lưu trữ các kho Git, đồng thời cung cấp các tính năng hỗ trợ phát triển như theo dõi vấn đề. GitLab được thiết kế để bạn có thể tự cài đặt trên hạ tầng riêng của mình, giúp linh hoạt triển khai làm kho lưu trữ nội bộ cho nhóm phát triển, làm giao diện công khai tương tác với người dùng, hoặc cho phép các cộng tác viên tự lưu trữ dự án của họ.

cài đặt và cấu hình GitLab trên Ubuntu

Dự án GitLab cho phép bạn tạo một phiên bản GitLab trên phần cứng của riêng mình với cơ chế cài đặt tối giản.

Hướng dẫn này sẽ giúp bạn cài đặt và cấu hình GitLab trên Ubuntu.

Yêu cầu chuẩn bị

Nếu bạn đang dùng phiên bản Ubuntu 16.04 hoặc thấp hơn, chúng tôi khuyên bạn nâng cấp lên phiên bản mới hơn vì Ubuntu đã không còn hỗ trợ các phiên bản này. Bộ hướng dẫn này sẽ giúp bạn nâng cấp phiên bản Ubuntu.

Để làm theo hướng dẫn này, bạn cần có:

  • Một máy chủ chạy Ubuntu, cùng với tài khoản người dùng không phải root có quyền sudo và tường lửa đang hoạt động.
  • Yêu cầu phần cứng được khuyến nghị cho GitLab gồm tối thiểu:
    • CPU 4 nhân
    • RAM 4GB

Mặc dù có thể dùng bộ nhớ swap thay thế một phần RAM, nhưng điều này không được khuyến khích. Các ví dụ trong hướng dẫn này sử dụng tài nguyên tối thiểu như trên.

  • Một tên miền trỏ về máy chủ của bạn.

Bước 1: Cài đặt các phụ thuộc

Trước khi cài GitLab, bạn cần cài các phần mềm mà GitLab sử dụng trong quá trình cài đặt và vận hành. Các phần mềm này có thể được cài đặt từ kho gói mặc định của Ubuntu.

Trước tiên, làm mới chỉ mục gói cục bộ bằng lệnh sau:

$ sudo apt update

Sau đó, cài đặt các phụ thuộc bằng cách nhập lệnh sau:

$ sudo apt install ca-certificates curl openssh-server postfix tzdata perl

Bạn có thể đã cài một số phần mềm này rồi. Khi cài đặt postfix, chọn Internet Site khi được hỏi. Ở màn hình tiếp theo, nhập tên miền máy chủ của bạn để cấu hình hệ thống gửi email.

Sau khi đã cài xong các phụ thuộc, bạn đã sẵn sàng để cài GitLab.

Bước 2: Cài đặt GitLab

Với các phụ thuộc đã sẵn sàng, bạn có thể tiến hành cài đặt GitLab. Quá trình này sử dụng một script cài đặt để cấu hình hệ thống với kho GitLab.

Trước tiên, chuyển vào thư mục /tmp bằng lệnh:

$ cd /tmp

Tiếp theo, tải script cài đặt bằng lệnh:

$ curl -LO <https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh>

Bạn có thể xem xét kỹ script đã tải về để đảm bảo rằng bạn hiểu và yên tâm với những thao tác mà nó sẽ thực hiện.

$ less /tmp/script.deb.sh

Khi bạn đã chắc chắn về độ an toàn của script, hãy chạy trình cài đặt:

$ sudo bash /tmp/script.deb.sh

Script này sẽ thiết lập máy chủ của bạn để sử dụng các kho lưu trữ do GitLab duy trì. Điều này cho phép bạn quản lý GitLab bằng các công cụ quản lý gói giống như với các phần mềm khác trên hệ thống của bạn. Khi quá trình này hoàn tất, bạn có thể cài đặt ứng dụng GitLab thực tế bằng lệnh apt:

$ sudo apt install gitlab-ce

Lệnh này sẽ cài đặt các thành phần cần thiết trên hệ thống của bạn và có thể mất một khoảng thời gian để hoàn thành.

Bước 3: Điều chỉnh quy tắc tường lửa

Trước khi cấu hình GitLab, bạn cần đảm bảo rằng các quy tắc tường lửa cho phép lưu lượng web. Nếu bạn đã làm theo hướng dẫn trong phần yêu cầu chuẩn bị, tường lửa ufw của bạn đã được bật.

Xem trạng thái hiện tại của tường lửa đang hoạt động bằng lệnh sau:

$ sudo ufw status
Output
Status: active

To                         Action      From

--                         ------      ----

OpenSSH                    ALLOW       Anywhere

OpenSSH (v6)               ALLOW       Anywhere (v6)

Các quy tắc hiện tại cho phép lưu lượng SSH, nhưng việc truy cập các dịch vụ khác bị giới hạn. Vì GitLab là một ứng dụng web, bạn cần cho phép truy cập HTTP. Đồng thời, do bạn sẽ sử dụng tính năng GitLab tự động yêu cầu và kích hoạt chứng chỉ TLS/SSL miễn phí từ Let’s Encrypt, bạn cũng cần cho phép truy cập HTTPS.

Bản đồ giao thức tới cổng cho HTTP và HTTPS có trong file /etc/services, nên bạn có thể cho phép lưu lượng này theo tên dịch vụ. Nếu bạn chưa bật lưu lượng OpenSSH, hãy cho phép nó bằng lệnh sau:

$ sudo ufw allow http
$ sudo ufw allow https
$ sudo ufw allow OpenSSH

Bạn có thể kiểm tra lại ufw status để đảm bảo rằng bạn đã cấp quyền truy cập cho ít nhất hai dịch vụ này bằng lệnh:

$ sudo ufw status
Output
Status: active

To                         Action      From

--                         ------      ----

OpenSSH                    ALLOW       Anywhere

80/tcp                     ALLOW       Anywhere

443/tcp                    ALLOW       Anywhere

OpenSSH (v6)               ALLOW       Anywhere (v6)

80/tcp (v6)                ALLOW       Anywhere (v6)

443/tcp (v6)               ALLOW       Anywhere (v6)

Kết quả này cho thấy giao diện web của GitLab đã có thể truy cập được sau khi bạn cấu hình ứng dụng.

Bước 4: Chỉnh sửa file cấu hình GitLab

Trước khi sử dụng ứng dụng, bạn cần cập nhật file cấu hình và chạy lệnh tái cấu hình. Trước tiên, mở file cấu hình của GitLab bằng trình soạn thảo văn bản mà bạn ưa thích. Ví dụ này sử dụng nano:

$ sudo nano /etc/gitlab/gitlab.rb

Tìm dòng cấu hình external_url. Cập nhật dòng này cho phù hợp với tên miền của bạn và nhớ đổi http thành https để tự động chuyển hướng người dùng đến trang web được bảo vệ bằng chứng chỉ Let’s Encrypt:

...
## GitLab URL

##! URL on which GitLab will be reachable.

##! For more details on configuring external_url see:

##! <https://docs.gitlab.com/omnibus/settings/configuration.html#configuring-the-external-url-for-gitlab>

##!

##! Note: During installation/upgrades, the value of the environment variable

##! EXTERNAL_URL will be used to populate/replace this value.

##! On AWS EC2 instances, we also attempt to fetch the public hostname/IP

##! address from AWS. For more details, see:

##! <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instancedata-data-retrieval.html>

external_url 'https://your_domain'

...

Tiếp theo, tìm thiết lập letsencrypt['contact_emails']. Nếu bạn dùng nano, nhấn CTRL+W để mở hộp tìm kiếm, nhập letsencrypt['contact_emails'] rồi nhấn ENTER. Thiết lập này định nghĩa danh sách các địa chỉ email mà dự án Let’s Encrypt có thể dùng để liên hệ với bạn nếu có sự cố liên quan đến tên miền. Bạn nên bỏ chú thích (uncomment) và điền email của mình để nhận thông báo khi có vấn đề xảy ra:

letsencrypt['contact_emails'] = ['sammy@example.com']

Khi đã chỉnh sửa xong, lưu và đóng file. Nếu bạn dùng nano, nhấn CTRL+X, sau đó nhấn Y, rồi nhấn ENTER.

Tiếp theo, chạy lệnh sau để tái cấu hình GitLab:

$ sudo gitlab-ctl reconfigure

Lệnh này sẽ khởi tạo GitLab dựa trên thông tin nó thu thập được về máy chủ của bạn. Đây là một quá trình hoàn toàn tự động, nên bạn sẽ không cần phải trả lời bất kỳ câu hỏi nào. Quá trình này cũng sẽ tự động cấu hình chứng chỉ Let’s Encrypt cho tên miền của bạn.

Bước 5: Thực hiện cấu hình ban đầu qua giao diện web

Khi GitLab đang chạy, bạn có thể thực hiện cấu hình ban đầu của ứng dụng thông qua giao diện web.

Đăng nhập lần đầu

Truy cập tên miền của máy chủ GitLab trong trình duyệt web của bạn:

https://your_domain

Khi truy cập lần đầu tiên, bạn sẽ được chào đón bằng một trang đăng nhập:

cài đặ GitLab trên Ubuntu

GitLab sẽ tạo một mật khẩu bảo mật ban đầu cho bạn. Mật khẩu này được lưu trong một thư mục mà bạn có thể truy cập với quyền người dùng quản trị (sudo):

$ sudo nano /etc/gitlab/initial_root_password
# WARNING: This value is valid only in the following conditions

#          1. If provided manually (either via `GITLAB_ROOT_PASSWORD` environment variable or via `gitlab_rails['initial_root_password']` setting in `gitlab.rb`, it was provided before database was seeded for the firs$

#          2. Password hasn't been changed manually, either via UI or via command line.

#

#          If the password shown here doesn't work, you must reset the admin password following <https://docs.gitlab.com/ee/security/reset_user_password.html#reset-your-root-password>.

Password: YOUR_PASSWORD

# NOTE: This file will be automatically deleted in the first reconfigure run after 24 hours.

Quay lại trang đăng nhập, nhập các thông tin sau:

  • Username**:** root
  • Password**:** [mật khẩu được liệt kê trong /etc/gitlab/initial_root_password]

Nhập các giá trị này vào các trường tương ứng và nhấn nút Sign in. Bạn sẽ được đăng nhập vào ứng dụng và chuyển đến trang chào mừng, nơi hiển thị lời nhắc bắt đầu thêm dự án.

Cách cài đặt và cấu hình GitLab trên Ubuntu

Bây giờ bạn có thể tinh chỉnh GitLab instance của mình.

Cập nhật mật khẩu

Một trong những việc đầu tiên bạn nên làm sau khi đăng nhập là thay đổi mật khẩu.

Để thực hiện, hãy nhấp vào biểu tượng ở góc trên bên phải của thanh điều hướng và chọn Edit Profile.

Cách cài đặt GitLab trên Ubuntu

Khi đó, bạn sẽ được chuyển đến trang User Settings. Trên thanh điều hướng bên trái, chọn Password để thay đổi mật khẩu do GitLab tạo sang một mật khẩu bảo mật hơn, sau đó nhấp vào nút Save password khi bạn đã hoàn tất cập nhật.

Cách cài đặt và cấu hình GitLab trên Ubuntu

Bạn sẽ được đưa trở lại màn hình đăng nhập với thông báo rằng mật khẩu của bạn đã được thay đổi. Nhập mật khẩu mới để đăng nhập lại vào GitLab instance của bạn.

Cách cài đặt và cấu hình GitLab trên Ubuntu

Điều chỉnh cài đặt hồ sơ của bạn

GitLab đặt một số giá trị mặc định hợp lý, nhưng thường không phù hợp khi bạn bắt đầu sử dụng phần mềm.

Để thực hiện các chỉnh sửa cần thiết, nhấp vào biểu tượng người dùng ở góc trên bên phải thanh điều hướng và chọn Edit Profile.

Bạn có thể điều chỉnh NameEmail address từ “Administrator” và “admin@example.com” thành thông tin chính xác hơn. Tên bạn chọn sẽ được hiển thị cho những người dùng khác, còn email sẽ được sử dụng cho việc phát hiện avatar mặc định, gửi thông báo, thực hiện các thao tác Git thông qua giao diện, và nhiều mục đích khác:

Cách cài đặt GitLab trên Ubuntu

Nhấp vào nút Update Profile settings ở cuối trang khi bạn hoàn tất các chỉnh sửa. Bạn sẽ được yêu cầu nhập mật khẩu để xác nhận thay đổi.

Một email xác nhận sẽ được gửi đến địa chỉ bạn đã cung cấp. Hãy làm theo hướng dẫn trong email để xác nhận tài khoản, từ đó bạn có thể bắt đầu sử dụng GitLab.

Thay đổi tên tài khoản

Tiếp theo, chọn Account trong thanh điều hướng bên trái:

Cách cài đặt và cấu hình GitLab trên Ubuntu

Tại đây, bạn có thể bật xác thực hai yếu tố và thay đổi username của mình. Theo mặc định, tài khoản quản trị đầu tiên sẽ có tên root. Vì đây là tên tài khoản phổ biến và ai cũng biết, nên việc đổi sang tên khác sẽ an toàn hơn. Bạn vẫn sẽ giữ nguyên quyền quản trị; điều duy nhất thay đổi là tên tài khoản. Hãy thay thế root bằng tên người dùng mà bạn muốn:

Nhấp vào nút Update username để áp dụng thay đổi. Sau đó, bạn sẽ được yêu cầu xác nhận việc thay đổi này.

Lần đăng nhập tiếp theo vào GitLab, hãy nhớ sử dụng username ****mới của bạn.

Thêm khóa SSH vào tài khoản

Bạn có thể kích hoạt khóa SSH với Git để tương tác với các dự án GitLab của mình. Để thực hiện, bạn cần thêm khóa công khai SSH vào tài khoản GitLab.

Trong thanh điều hướng bên trái, chọn SSH Keys:

Cách cài đặt GitLab trên Ubuntu

Nếu bạn đã tạo một cặp khóa SSH trên máy tính cục bộ, bạn có thể xem khóa công khai bằng cách nhập:

$ cat ~/.ssh/id_rsa.pub
Output
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDMuyMtMl6aWwqBCvQx7YXvZd7bCFVDsyln3yh5/8Pu23LW88VXfJgsBvhZZ9W0rPBGYyzE/TDzwwITvVQcKrwQrvQlYxTVbqZQDlmsC41HnwDfGFXg+QouZemQ2YgMeHfBzy+w26/gg480nC2PPNd0OG79+e7gFVrTL79JA/MyePBugvYqOAbl30h7M1a7EHP3IV5DQUQg4YUq49v4d3AvM0aia4EUowJs0P/j83nsZt8yiE2JEYR03kDgT/qziPK7LnVFqpFDSPC3MR3b8B354E9Af4C/JHgvglv2tsxOyvKupyZonbyr68CqSorO2rAwY/jWFEiArIaVuDiR9YM5 sammy@mydesktop

Sao chép đoạn văn bản này và dán vào ô Key trong GitLab của bạn.

Nếu thay vào đó, bạn nhận được một thông báo khác, nghĩa là bạn chưa cấu hình cặp khóa SSH trên máy của mình.

Output
cat: /home/sammy/.ssh/id_rsa.pub: No such file or directory

Nếu đúng như vậy, bạn có thể tạo một cặp khóa SSH bằng cách nhập lệnh sau:

$
$ [environment local]
$
$ ssh-keygen

Chấp nhận các giá trị mặc định và tùy chọn nhập mật khẩu để bảo mật khóa trên máy cục bộ:

Output

[environment local]

Generating public/private rsa key pair.

Enter file in which to save the key (/home/sammy/.ssh/id_rsa):

Enter passphrase (empty for no passphrase):

Enter same passphrase again:

Your identification has been saved in /home/sammy/.ssh/id_rsa.

Your public key has been saved in /home/sammy/.ssh/id_rsa.pub.

The key fingerprint is:

SHA256:I8v5/M5xOicZRZq/XRcSBNxTQV2BZszjlWaIHi5chc0 sammy@gitlab.docsthat.work

The key's randomart image is:

+---[RSA 2048]----+

|          ..%o==B|

|           *.E =.|

|        . ++= B  |

|         ooo.o . |

|      . S .o  . .|

|     . + .. .   o|

|      +   .o.o ..|

|       o .++o .  |

|        oo=+     |

+----[SHA256]-----+

Khi đã tạo xong, bạn có thể hiển thị khóa công khai của mình giống như ví dụ trước bằng cách nhập lệnh sau:

$ cat ~/.ssh/id_rsa.pub
Output

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDMuyMtMl6aWwqBCvQx7YXvZd7bCFVDsyln3yh5/8Pu23LW88VXfJgsBvhZZ9W0rPBGYyzE/TDzwwITvVQcKrwQrvQlYxTVbqZQDlmsC41HnwDfGFXg+QouZemQ2YgMeHfBzy+w26/gg480nC2PPNd0OG79+e7gFVrTL79JA/MyePBugvYqOAbl30h7M1a7EHP3IV5DQUQg4YUq49v4d3AvM0aia4EUowJs0P/j83nsZt8yiE2JEYR03kDgT/qziPK7LnVFqpFDSPC3MR3b8B354E9Af4C/JHgvglv2tsxOyvKupyZonbyr68CqSorO2rAwY/jWFEiArIaVuDiR9YM5 sammy@mydesktop

Chèn khối văn bản này từ đầu ra và nhập nó vào ô Key trong GitLab. Đặt cho nó một tiêu đề mô tả, rồi nhấp vào nút Add key.

Bây giờ, bạn đã có thể quản lý các dự án và kho GitLab của mình từ máy cục bộ mà không cần nhập thông tin đăng nhập tài khoản GitLab mỗi lần.

Bước 6: Hạn chế hoặc vô hiệu hóa việc đăng ký công khai

Với cấu hình hiện tại, bất kỳ ai cũng có thể đăng ký tài khoản khi truy cập trang chính của GitLab instance. Điều này có thể phù hợp nếu bạn muốn lưu trữ một dự án công khai. Tuy nhiên, trong nhiều trường hợp, bạn sẽ muốn thiết lập các hạn chế hơn.

Để bắt đầu, hãy truy cập khu vực quản trị bằng cách nhấp vào biểu tượng menu ba gạch ở thanh điều hướng trên cùng, rồi chọn Admin từ menu thả xuống.

Cách cài đặt và cấu hình GitLab trên Ubuntu

Chọn Settings từ thanh điều hướng bên trái:

Cách cài đặt và cấu hình GitLab trên Ubuntu

Bạn sẽ được chuyển đến trang cài đặt toàn cục của GitLab instance. Ở đây, bạn có thể điều chỉnh nhiều thiết lập liên quan đến việc người dùng mới có thể đăng ký và mức độ truy cập của họ.

Tắt tính năng đăng ký

Nếu bạn muốn vô hiệu hóa hoàn toàn việc đăng ký, hãy cuộn xuống mục Sign-up Restrictions và nhấn Expand để xem các tùy chọn.

Sau đó, bỏ chọn ô Sign-up enabled.

tính năng đăng ký

Nhớ nhấn nút Save changes sau khi thực hiện thay đổi.

Phần đăng ký giờ sẽ bị xóa khỏi trang chính của GitLab.

Giới hạn đăng ký theo tên miền

Nếu bạn sử dụng GitLab cho một tổ chức cung cấp địa chỉ email gắn với một tên miền cụ thể, bạn có thể giới hạn đăng ký theo tên miền thay vì tắt hoàn toàn.

Trong mục Sign-up Restrictions, chọn Send confirmation email on sign-up để chỉ cho phép người dùng đăng nhập sau khi họ đã xác nhận email.

Tiếp theo, thêm tên miền của bạn (hoặc nhiều tên miền) vào ô Whitelisted domains for sign-ups, mỗi tên miền một dòng. Bạn có thể dùng ký tự “*“để chỉ định tên miền dạng wildcard.

cấu hình GitLab trên Ubuntu

Khi hoàn tất, nhấn Save changes.

Phần đăng ký sẽ bị xóa khỏi trang chính GitLab.

Giới hạn việc tạo dự án

Mặc định, người dùng mới có thể tạo tối đa 10 dự án. Nếu bạn muốn cho phép người dùng bên ngoài tham gia và theo dõi, nhưng muốn giới hạn khả năng tạo dự án mới, bạn có thể cấu hình trong mục Account and Limit Settings.

Tại đây, thay đổi giá trị Default projects limit thành 0 để vô hiệu hóa hoàn toàn khả năng tạo dự án mới của người dùng.

Cài đặt và cấu hình GitLab trên Ubuntu

Người dùng mới vẫn có thể được thêm thủ công vào các dự án và có quyền truy cập vào các dự án nội bộ hoặc công khai do người dùng khác tạo.

Sau khi cập nhật, nhớ nhấn Save changes.

Từ giờ, người dùng mới vẫn có thể tạo tài khoản nhưng sẽ không thể tạo dự án.

Gia hạn chứng chỉ Let’s Encrypt

Mặc định, GitLab có một tác vụ được lên lịch để gia hạn chứng chỉ Let’s Encrypt sau nửa đêm mỗi 4 ngày, với phút cụ thể dựa trên giá trị external_url của bạn. Bạn có thể chỉnh sửa các cài đặt này trong tệp /etc/gitlab/gitlab.rb.

Ví dụ, nếu muốn gia hạn vào mỗi ngày thứ 7 lúc 12:30, bạn có thể cấu hình như sau. Trước tiên, điều hướng đến tệp cấu hình:

$ sudo nano /etc/gitlab/gitlab.rb

Sau đó, tìm các dòng sau trong tệp và bỏ ký tự # ở đầu, rồi cập nhật nội dung thành như sau:

...

################################################################################

# Let's Encrypt integration

################################################################################

# letsencrypt['enable'] = nil

letsencrypt['contact_emails'] = ['sammy@digitalocean'] # This should be an array of email addresses to add as contacts

# letsencrypt['group'] = 'root'

# letsencrypt['key_size'] = 2048

# letsencrypt['owner'] = 'root'

# letsencrypt['wwwroot'] = '/var/opt/gitlab/nginx/www'

# See <http://docs.gitlab.com/omnibus/settings/ssl.html#automatic-renewal> for more on these settings

letsencrypt['auto_renew'] = true

letsencrypt['auto_renew_hour'] = "12"

letsencrypt['auto_renew_minute'] = "30"

letsencrypt['auto_renew_day_of_month'] = "*/7"

...

Bạn cũng có thể tắt tính năng tự động gia hạn bằng cách đặt giá trị letsencrypt['auto_renew'] thành false:

...
letsencrypt['auto_renew'] = false
...

Vậy là bạn đã có một GitLab instance hoạt động trên máy chủ của mình, sẵn sàng để nhập hoặc tạo dự án mới và thiết lập quyền truy cập phù hợp cho nhóm. Với cơ chế tự động gia hạn Let’s Encrypt, bạn cũng không cần lo về gián đoạn dịch vụ.

GitLab thường xuyên bổ sung tính năng và cập nhật nền tảng, vì vậy bạn nên theo dõi trang chủ của dự án để nắm bắt các cải tiến hoặc thông báo quan trọng.

0 Bình luận

Đăng nhập để thảo luận

Chuyên mục Hướng dẫn

Tổng hợp các bài viết hướng dẫn, nghiên cứu và phân tích chi tiết về kỹ thuật, các xu hướng công nghệ mới nhất dành cho lập trình viên.

Đăng ký nhận bản tin của chúng tôi

Hãy trở thành người nhận được các nội dung hữu ích của CyStack sớm nhất

Xem chính sách của chúng tôi Chính sách bảo mật.

Đăng ký nhận Newsletter

Nhận các nội dung hữu ích mới nhất