Wybierz warstwę współpracy
Forgejo i Gitea to przykłady lekkiego oprogramowania forge; zwykły Git SSH może wystarczyć dla mniejszego przepływu pracy. Dopasuj zgłoszenia, przeglądy, przechowywanie pakietów i wymagania tożsamości do projektu. Zweryfikuj aktualnie obsługiwane wersje i licencje.
Oddziel kompilacje od kuźni
Runner CI wykonuje kod kontrolowany przez projekt i nie powinien przechowywać nieograniczonych poświadczeń forge ani hosta. Izoluj runnery, ograniczaj zakres tokenów i unikaj uruchamiania niezaufanych zadań na tym samym uprzywilejowanym koncie co usługa repozytorium.
Chroń dostęp i rejestrację
Wyłącz publiczną rejestrację, gdy usługa jest prywatna. Używaj indywidualnych kont, silnego uwierzytelniania i starannie ograniczonych kluczy wdrożeniowych. Udokumentuj port SSH i klucz hosta; nie przyzwyczajaj użytkowników po cichu do ignorowania ostrzeżeń o kluczu hosta.
Utwórz kopię zapasową całej usługi
Same repozytoria mogą nie obejmować zgłoszeń, kont, załączników i konfiguracji. Postępuj zgodnie ze spójną procedurą tworzenia kopii zapasowych platformy i przetestuj odtworzenie z zachowaniem uprawnień plików i sekretów aplikacji.
Lista kontrolna odzyskiwania forge
Wyeksportuj bazę danych w spójny sposób i zachowaj pamięć repozytorium, załączniki, pamięć dużych plików, jeśli jest włączona, konfigurację i sekrety szyfrowania. Po przywróceniu zweryfikuj klon przez zamierzoną trasę SSH lub HTTPS. Utrzymuj forge i dowolnego pracownika CI w izolacji, aby kompilacja nie mogła nadpisać własnej konfiguracji usługi.
Ogranicz prawa wdrożeniowe
Klucz wdrożeniowy tylko do odczytu może wystarczyć dla serwera, który jedynie pobiera kod. Automatyzacja wydania może wymagać niewielkiego dodatkowego zakresu. Preferuj niezależne klucze dla różnych maszyn, zapisuj ich przeznaczenie i usuwaj je, gdy maszyna zostanie wycofana.
Używaj najmniejszej usługi współpracy, która wystarcza
W przypadku kilku prywatnych repozytoriów wystarczający może być bare Git przez ograniczony SSH. Forgejo lub Gitea dodaje konta, pull requesty, zgłoszenia i opcjonalne pakiety kosztem bazy danych, aktualizacji aplikacji i większej ilości trwałego stanu. Zapisz, z których funkcji zespół będzie faktycznie korzystać. Zaplanuj oddzielnie wzrost repozytoriów, obiekty dużych plików, załączniki i artefakty kompilacji; moc obliczeniowa CI może przewyższyć sam forge.
- Wybierz kanoniczną nazwę HTTPS i chroń jej konto DNS.
- Zdecyduj, czy rejestracja jest zamknięta, oparta na zaproszeniach czy moderowana.
- Nadaj usłudze forge nieuprzywilejowaną tożsamość i trwały prywatny magazyn.
Oficjalna dokumentacja: Instalacja kontenera Forgejo
Oddziel ścieżki sieci web, SSH i bazy danych
Użyj konfiguracji źródłowej dla wybranej wersji i przypnij zamierzoną wersję obrazu. Odwrotny serwer proxy TLS powinien docierać do wewnętrznego odbiornika WWW; baza danych powinna być osiągalna tylko przez forge. Jeśli Git SSH używa portu kontenera, zachowaj spójność jego ogłaszanego hosta i portu zewnętrznego z mapowaniem. Nie zastępuj ani nie ujawniaj przypadkowo odbiornika SSH administratora hosta podczas zmiany forge. Zamknij dostęp instalacyjny/konfiguracyjny po utworzeniu początkowego właściciela.
- Sprawdź własność trwałego wolumenu przed uruchomieniem aplikacji.
- Użyj użytkownika bazy danych ograniczonego do bazy forge.
- Utrzymuj runnery CI na oddzielnej granicy zaufania, zwłaszcza w przypadku niezaufanych repozytoriów.
Oficjalna dokumentacja: Sieć Docker i trwałość danych Forgejo
Zweryfikuj klonowanie, wypychanie i operację odmówioną
Utwórz jednorazowe prywatne repozytorium i przetestuj jego klonowanie HTTPS lub SSH URL z normalnego konta deweloperskiego. Zatwierdź i wypchnij nieszkodliwy plik, a następnie sprawdź, czy inny upoważniony czytelnik może go pobrać. Konto niezaproszone musi nie móc odczytać prywatnego repozytorium. Sprawdź obsługę dużych plików i e-mail powiadomień, jeśli są włączone. W przypadku maszyn przeznaczonych tylko do wdrożeń sprawdź, czy klucz tylko do odczytu może pobierać i nie może wypychać; samo pomyślne uwierzytelnienie nie dowodzi zamierzonej granicy uprawnień.
# 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 -vOdzyskaj dyskusję oraz repozytorium
Wykonaj spójną kopię zapasową aplikacji i bazy danych, pamięci repozytorium, załączników, danych LFS, konfiguracji i wymaganych sekretów szyfrowania. Postępuj zgodnie z procedurą tworzenia kopii zapasowych zainstalowanej wersji forge; polecenia tworzenia kopii zapasowych Gitea nie są automatycznie wymienne z każdym wydaniem Forgejo. Odbuduj w izolacji i zweryfikuj zgłoszenie, załącznik, logowanie i klonowanie. Jeśli wypychanie nie działa po przeniesieniu, sprawdź host/port SSH, mapowanie kluczy, uprawnienia do pamięci masowej i reklamowane URL klonowania, zanim globalnie zmienisz uprawnienia do repozytorium.
Oficjalna dokumentacja: Kopia zapasowa i przywracanie Gitea