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.
Mục lục bài viết
Tại sao nên sử dụng Fossil thay vì Git?
Một trong những ưu điểm lớn nhất của Fossil là đây là bộ ứng dụng tất cả trong một để quản lý mã nguồn trực tuyến. Điều này làm cho nó cực kỳ hữu ích với những người dùng chỉ muốn chia sẻ một kho lưu trữ duy nhất với người khác mà không cần tạo tài khoản Github hoặc Gitlab.
Bên cạnh đó, Fossil còn rất linh hoạt và cực kỳ dễ tự host. Nó có thể chạy dưới dạng nhị phân tĩnh duy nhất trong hệ thống hoặc trong Docker container độc lập. Do đó, việc truy cập Fossil và điều chỉnh nó cho phù hợp với nhu cầu rất đơn giản.
Trong khi Fossil và Git có chung cú pháp vận hành, Fossil cung cấp các tính năng bổ sung khó triển khai trong Git. Ví dụ, Fossil tránh được vấn đề “tách rời HEAD” bằng cách cung cấp cơ sở dữ liệu nội bộ để theo dõi các tham chiếu giữa những cam kết trước đó và tương lai. Kết quả là, kho lưu trữ Fossil liền mạch hơn và không gặp sự cố như với Git.
Một ưu điểm khác của Fossil so với Git là nó yêu cầu ít dependency và bộ nhớ hơn để chạy trong khi cung cấp các tính năng ngay lập tức. Một phiên bản Fossil có diễn đàn thảo luận, wiki và công cụ theo dõi vấn đề. Điều này làm cho Fossil trở thành một giải pháp tích hợp cho bất kỳ ai muốn có một môi trường “không ồn ào” để phát triển và xuất bản code.
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.
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", \
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.
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.
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.
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.
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.
Điền vào cả hai hộp văn bản Project Name và Project Description với chi tiết kho lưu trữ của bạn, sau đó nhấp vào Apply Changes để lưu nó.
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 (.).
Đẩ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.
Chọn Users trên bảng điều khiển của quản trị viên.
Nhấp vào Add để tạo người dùng mới cho kho lưu trữ.
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.
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ó.
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.