Chọn lớp cộng tác
Forgejo và Gitea là các ví dụ về phần mềm forge nhẹ; SSH Git thuần có thể đủ cho một quy trình làm việc nhỏ hơn. Khớp các vấn đề, đánh giá, lưu trữ gói và yêu cầu danh tính với dự án. Xác minh các phiên bản được hỗ trợ hiện tại và giấy phép.
Tách biệt bản dựng khỏi forge
Một trình chạy CI thực thi mã do dự án kiểm soát và không nên giữ thông tin đăng nhập forge hoặc máy chủ không hạn chế. Cô lập các trình chạy, giới hạn phạm vi token và tránh chạy các công việc không đáng tin cậy trên cùng tài khoản đặc quyền như dịch vụ kho lưu trữ.
Bảo vệ quyền truy cập và đăng ký
Tắt đăng ký công khai khi dịch vụ là riêng tư. Dùng tài khoản riêng lẻ, xác thực mạnh và khóa triển khai có phạm vi được giới hạn cẩn thận. Ghi lại cổng SSH và khóa máy chủ; không âm thầm huấn luyện người dùng bỏ qua cảnh báo khóa máy chủ.
Sao lưu toàn bộ dịch vụ
Chỉ kho lưu trữ có thể không bao gồm vấn đề, tài khoản, tệp đính kèm và cấu hình. Tuân theo quy trình sao lưu nhất quán của forge và kiểm tra khôi phục với quyền tệp và bí mật ứng dụng còn nguyên vẹn.
Danh sách kiểm tra khôi phục forge
Xuất cơ sở dữ liệu một cách nhất quán và bảo toàn lưu trữ kho, tệp đính kèm, lưu trữ tệp lớn nếu được bật, cấu hình và bí mật mã hóa. Xác minh bản sao qua tuyến SSH hoặc HTTPS dự định sau khi khôi phục. Giữ forge và mọi worker CI tách biệt để bản dựng không thể ghi đè cấu hình của chính dịch vụ.
Giữ quyền triển khai ở mức hẹp
Một khóa triển khai chỉ đọc có thể đủ cho máy chủ chỉ kéo mã. Tự động hóa phát hành có thể cần thêm một phạm vi nhỏ. Ưu tiên các khóa độc lập cho từng máy khác nhau, ghi lại mục đích của chúng và xóa chúng khi máy ngừng sử dụng.
Dùng dịch vụ cộng tác nhỏ nhất phù hợp
Với một vài kho lưu trữ riêng tư, Git trần qua SSH bị hạn chế có thể là đủ. Forgejo hoặc Gitea bổ sung tài khoản, yêu cầu kéo, vấn đề và gói tùy chọn với cái giá là cơ sở dữ liệu, cập nhật ứng dụng và nhiều trạng thái lưu trữ hơn. Ghi lại những tính năng mà nhóm sẽ thực sự sử dụng. Lập ngân sách riêng cho tăng trưởng kho lưu trữ, đối tượng tệp lớn, tệp đính kèm và sản phẩm build; tính toán CI có thể vượt quá chính forge.
- Chọn một tên HTTPS chuẩn và bảo vệ tài khoản DNS của nó.
- Quyết định xem việc đăng ký là đóng, theo lời mời hay có kiểm duyệt.
- Cấp cho dịch vụ forge một danh tính không đặc quyền và lưu trữ riêng bền vững.
Tài liệu chính thức: Cài đặt container Forgejo
Tách biệt đường dẫn web, SSH và cơ sở dữ liệu
Sử dụng cấu hình thượng nguồn cho bản phát hành đã chọn và ghim phiên bản image dự định. Một reverse proxy TLS phải tiếp cận được trình lắng nghe web nội bộ; cơ sở dữ liệu chỉ nên được truy cập bởi forge. Nếu Git SSH dùng cổng container, hãy giữ host được quảng bá và cổng bên ngoài nhất quán với ánh xạ. Không thay thế hoặc vô tình để lộ trình lắng nghe SSH của quản trị viên máy chủ khi thay đổi forge. Đóng quyền truy cập cài đặt/thiết lập sau khi chủ sở hữu ban đầu được tạo.
- Kiểm tra quyền sở hữu volume lưu trữ trước khi khởi động ứng dụng.
- Sử dụng một người dùng cơ sở dữ liệu được giới hạn cho cơ sở dữ liệu forge.
- Giữ các CI runner trên ranh giới tin cậy riêng, đặc biệt đối với các kho lưu trữ không đáng tin cậy.
Tài liệu chính thức: Mạng Docker và tính bền vững của Forgejo
Xác minh nhân bản, đẩy và một thao tác bị từ chối
Tạo một kho lưu trữ riêng tư dùng một lần và kiểm tra bản sao HTTPS hoặc SSH URL của nó từ một tài khoản nhà phát triển thông thường. Commit và push một tệp vô hại, sau đó xác minh một người đọc được ủy quyền khác có thể lấy nó. Một tài khoản không được mời phải không đọc được kho lưu trữ riêng tư. Kiểm tra xử lý tệp lớn và email thông báo nếu được bật. Đối với máy chỉ dùng để triển khai, hãy kiểm tra rằng khóa chỉ đọc có thể lấy và không thể push; chỉ xác thực thành công không chứng minh được ranh giới quyền dự định.
# Use the disposable repository URL advertised by your forge:
git clone ssh://[email protected]:2222/team/check.git
# In a clone, inspect which remote is configured:
git remote -vKhôi phục cả cuộc thảo luận lẫn kho lưu trữ
Thực hiện sao lưu ứng dụng/cơ sở dữ liệu nhất quán, lưu trữ kho lưu trữ, tệp đính kèm, dữ liệu LFS, cấu hình và các bí mật mã hóa cần thiết. Tuân theo quy trình sao lưu của phiên bản forge đã cài đặt; các lệnh sao lưu Gitea không tự động tương thích với mọi bản phát hành Forgejo. Xây dựng lại trong môi trường cách ly và xác minh một issue, tệp đính kèm, đăng nhập và clone. Nếu push thất bại sau khi di chuyển, hãy kiểm tra máy chủ/cổng SSH, ánh xạ khóa, quyền lưu trữ và URL clone được quảng cáo trước khi thay đổi quyền kho lưu trữ trên toàn cục.
Tài liệu chính thức: Sao lưu và khôi phục Gitea