Cách cài đặt hệ thống kiểm soát phiên bản Fossil trong Linux

Fossil là một hệ thống kiểm soát phiên bản (VCS) mạnh mẽ dành cho Linux. Nó là một giải pháp thay thế cho Github, nhưng không giống như Git, Fossil hoạt động bằng cách cung cấp một bộ công cụ hoàn chỉnh để tạo, sửa đổi và thậm chí chia sẻ kho lưu trữ của bạn trực tuyến. Bài viết này sẽ hướng dẫn bạn cách cài đặt và triển khai Fossil trên Ubuntu Linux.

Docker và các điều kiện tiên quyết của Fossil

Bước đầu tiên trong việc triển khai Fossil là lấy các file kho lưu trữ cho Docker. Để làm điều đó, hãy tìm signing key cho dự án Docker:

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg<br>sudo chmod a+r /etc/apt/keyrings/docker.gpg

Tạo một file mới trong “/etc/apt/sources.list.d”. Điều này sẽ chứa liên kết kho lưu trữ nơi Ubuntu sẽ tìm nạp các gói Docker:

sudo nano /etc/apt/sources.list.d/docker.list

Dán đoạn code sau vào file kho lưu trữ mới của bạn:

deb [arch=amd64 signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu jammy stable

Lưu file kho lưu trữ Docker của bạn, sau đó cài đặt gói snap core:

sudo snap install core

Tải xuống gói snap Certbot từ Electronic Frontier Foundation:

sudo snap install certbot --classic

Chạy lệnh sau để refresh danh sách gói hệ thống của bạn:

sudo apt update && sudo apt upgrade

Cài đặt Docker và Nginx cùng với các gói dependency của chúng:

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

Build và cài đặt Fossil trong Linux

Điều hướng đến trang tải xuống của Fossil, sau đó chọn tarball nguồn cho bản phát hành ổn định mới nhất. Ví dụ sẽ tải xuống phiên bản 2.23 của Fossil.

Liên kết đến bản phát hành ổn định mới nhất của Fossil.
Liên kết đến bản phát hành ổn định mới nhất của Fossil.

Di chuyển tarball nguồn vào thư mục chính của bạn, sau đó giải nén nó:

mv ~/Downloads/fossil-src-2.23.tar.gz<br>tar xvzf ~/fossil-src-2.23.tar.gz

Vào bên trong thư mục tarball, sau đó mở Dockerfile của Fossil bằng trình soạn thảo văn bản yêu thích:

cd ~/fossil-src-2.23<br>nano ./Dockerfile

Cuộn xuống cuối file, sau đó thêm dòng sau vào trước dòng "--user", "admin" ]:

"--https",              \
Flag "--https" để bật HTTPS theo mặc định trong Fossil.
Flag "--https" để bật HTTPS theo mặc định trong Fossil.

Lưu Dockerfile đã sửa đổi, sau đó build image container:

sudo docker build -t fossil .

Chạy Fossil và tạo SSL Reverse Proxy

Bây giờ, bạn có một phiên bản mới của Fossil VCS đang chạy dưới dạng container Docker trên máy chủ của mình. Để truy cập nó, bạn cần code hóa mọi kết nối bên ngoài tới Fossil.

Để bắt đầu, hãy tạo bản ghi DNS “A” mới trỏ đến địa chỉ IP của máy chủ Fossil.

Bản ghi DNS cho Fossil.
Bản ghi DNS cho Fossil.

Sử dụng trình soạn thảo văn bản yêu thích để tạo file cấu hình trang web mới cho phiên bản Fossil của bạn:

sudo nano /etc/nginx/sites-available/fossil-scm

Dán block code sau vào file cấu hình trang web mới:

server {<br><br>        server_name SUBDOMAIN.YOUR-ROOT.DOMAIN;<br><br>        location / {<br>                proxy_pass http://127.0.0.1:7777;<br>                proxy_http_version 1.1;<br>                proxy_set_header Upgrade $http_upgrade;<br>                proxy_set_header Connection "upgrade";<br>                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;<br>                proxy_set_header Host $host;<br>        }<br>}

Thay thế biến server_name bằng subdomain cho Fossil.

File cấu hình web proxy reverse trong Nginx.
File cấu hình web proxy reverse trong Nginx.

Tạo một symbol link cho file cấu hình trang web tới “/etc/nginx/sites-enabled/”:

sudo ln -s /etc/nginx/sites-available/fossil-scm /etc/nginx/sites-enabled/

Khởi động daemon Nginx của hệ thống bằng systemctl:

sudo systemctl enable --now nginx.service<br>sudo systemctl reload nginx.service

Khởi chạy image Fossil Docker mới bằng cách chạy lệnh sau:

sudo docker run \<br>    --publish 7777:8080 \<br>    --name fossil \<br>    --cap-drop AUDIT_WRITE \<br>    --cap-drop CHOWN \<br>    --cap-drop FSETID \<br>    --cap-drop KILL \<br>    --cap-drop MKNOD \<br>    --cap-drop NET_BIND_SERVICE \<br>    --cap-drop NET_RAW \<br>    --cap-drop SETFCAP \<br>    --cap-drop SETPCAP \<br>    fossil

Mở bảng điều khiển Tmux mới bằng cách nhấn Ctrl + B, sau đó nhấn C. Bên trong, chạy lệnh sau để yêu cầu chứng chỉ SSL từ Certbot:

sudo certbot --nginx -d fossil-scm.myvpsserver.top

Kiểm tra xem phiên bản Fossil của bạn có thể truy cập được qua Internet hay không bằng cách điều hướng đến subdomain.

Trang đích của phiên bản Fossil mới cài đặt.
Trang đích của phiên bản Fossil mới cài đặt.

Tạo kho lưu trữ Fossil đầu tiên

Với Fossil được thiết lập và chạy trên máy chủ Linux, giờ đây bạn có thể cấu hình phiên bản mới của mình. Nhấp vào liên kết setup/config trong phần Home.

Liên kết setup/config trên trang đích mặc định của Fossil.
Liên kết setup/config trên trang đích mặc định của Fossil.

Cung cấp thông tin chi tiết về tài khoản quản trị viên, sau đó nhấp vào đăng nhập. Bạn có thể tìm thấy mật khẩu cho tài khoản quản trị viên trong nhật ký đầu ra của container Docker.

Mật khẩu ngẫu nhiên cho tài khoản quản trị viên.
Mật khẩu ngẫu nhiên cho tài khoản quản trị viên.

Điền vào cả hai hộp văn bản Project NameProject Description với chi tiết kho lưu trữ của bạn, sau đó nhấp vào Apply Changes để lưu nó.

Lưu thay đổi cho cấu hình ban đầu của Fossil.
Lưu thay đổi cho cấu hình ban đầu của Fossil.

Clone và sử dụng kho lưu trữ Fossil

Để sử dụng kho lưu trữ code mới, trước tiên bạn cần tạo một bản sao của kho lưu trữ đó trên máy của mình. Để làm điều đó, hãy cài đặt phiên bản Fossil cục bộ trên desktop Linux:

sudo apt install fossil

Kéo toàn bộ kho vào máy của bạn và vào thư mục kho lưu trữ của nó:

fossil clone https://SUBDOMAIN.YOUR-ROOT.DOMAIN<br>cd ./YOUR-REPO-NAME

Thêm các file ban đầu, sau đó thực hiện các thay đổi đối với kho lưu trữ Fossil:

nano ./sample.file<br>fossil add ./sample.file<br>fossil commit

Cung cấp chi tiết về cam kết ban đầu của bạn, sau đó lưu nó bằng cách tạo một dòng mới bắt đầu bằng dấu chấm (.).

Định dạng thông báo cam kết cho Fossil.
Định dạng thông báo cam kết cho Fossil.

Đẩy các thay đổi cục bộ vào kho lưu trữ Fossil từ xa

Theo mặc định, Fossil không cung cấp bất kỳ quyền ghi nào vào kho lưu trữ từ xa của nó. Mọi thay đổi bạn thực hiện đối với kho lưu trữ cục bộ sẽ vẫn ở đó và không phản ánh trong phiên bản Fossil.

Để khắc phục điều này, hãy truy cập giao diện web của phiên bản Fossil rồi đăng nhập với tư cách quản trị viên.

Nhấp vào danh mục Admin trên menu trên cùng của trang tổng quan.

Vị trí của mục menu Admin trong bảng điều khiển Fossil.
Vị trí của mục menu Admin trong bảng điều khiển Fossil.

Chọn Users trên bảng điều khiển của quản trị viên.

Danh mục Users trong bảng điều khiển Admin.
Danh mục Users trong bảng điều khiển Admin.

Nhấp vào Add để tạo người dùng mới cho kho lưu trữ.

Nút "Add" để tạo người dùng mới.
Nút "Add" để tạo người dùng mới.

Cung cấp tên người dùng và mật khẩu cho user mới.

Tích vào hộp kiểm Developer trên danh mục Capabilities, sau đó nhấp vào Apply Changes để lưu user mới.

Thiết lập cam kết mặc định cho người dùng Fossil mới.
Thiết lập cam kết mặc định cho người dùng Fossil mới.

Quay trở lại terminal cục bộ của bạn, sau đó chạy lệnh sau:

fossil push https://YOUR-USERNAME@SUBDOMAIN.YOUR-ROOT.DOMAIN

Lưu ý: Bạn cũng có thể tìm nạp các thay đổi mới từ kho lưu trữ Fossil từ xa bằng cách chạy fossil pull.

Nhập mật khẩu cho người dùng Fossil, sau đó nhấn Enter để đẩy các thay đổi cục bộ vào kho lưu trữ từ xa của bạn.

Xác nhận rằng kho lưu trữ Fossil từ xa đã nhận được cam kết cục bộ bằng cách điều hướng đến giao diện web của nó.

File cam kết mẫu trong phiên bản Fossil tự host
File cam kết mẫu trong phiên bản Fossil tự host

Cài đặt và triển khai hệ thống kiểm soát phiên bản Fossil của riêng bạn chỉ là bước đầu tiên để lấy lại quyền kiểm soát dữ liệu trực tuyến. Tìm hiểu cách bạn có thể bảo mật thông tin liên lạc trực tuyến của mình bằng cách host email alias server riêng với SimpleLogin.

Thứ Tư, 17/04/2024 16:59
51 👨 143
0 Bình luận
Sắp xếp theo
    ❖ Linux