Alegeți nivelul de colaborare
Forgejo și Gitea sunt exemple de software forge ușor; Git simplu SSH poate fi suficient pentru un flux de lucru mai mic. Potriviți problemele, recenziile, stocarea pachetelor și cerințele de identitate cu proiectul. Verificați versiunile și licențele actuale acceptate.
Separați build-urile de forge
Un runner CI execută cod controlat de proiect și nu ar trebui să dețină acreditări nelimitate de forge sau de gazdă. Izolați runnerii, limitați domeniul tokenurilor și evitați rularea sarcinilor neîncrezute pe același cont privilegiat ca serviciul de depozit.
Protejați accesul și înregistrarea
Dezactivați înregistrarea publică atunci când serviciul este privat. Utilizați conturi individuale, autentificare puternică și chei de implementare cu domeniu de aplicare atent definit. Documentați portul SSH și cheia de gazdă; nu obișnuiți utilizatorii în mod tacit să ignore avertismentele privind cheia de gazdă.
Faceți o copie de siguranță a întregului serviciu
Depozitele singure pot să nu includă problemele, conturile, atașamentele și configurația. Urmați procedura de backup consecventă a forge-ului și testați o restaurare cu permisiunile fișierelor și secretele aplicației intacte.
O listă de verificare pentru recuperarea forge
Exportați baza de date în mod consecvent și păstrați stocarea depozitului, atașamentele, stocarea fișierelor mari dacă este activată, configurația și secretele de criptare. Verificați o clonă prin ruta SSH sau HTTPS dorită după restaurare. Mențineți forge-ul și orice worker CI izolat, astfel încât o compilare să nu poată rescrie configurația proprie a serviciului.
Mențineți drepturile de implementare restrânse
O cheie de implementare doar în citire poate fi suficientă pentru un server care doar preia cod. O automatizare de lansare poate avea nevoie de un domeniu suplimentar mic. Preferă chei independente pentru mașini diferite, înregistrează-le scopul și elimină-le când mașina este scoasă din uz.
Folosește cel mai mic serviciu de colaborare care se potrivește
Pentru câteva depozite private, Git simplu peste SSH restricționat poate fi suficient. Forgejo sau Gitea adaugă conturi, cereri de extragere, probleme și pachete opționale cu costul unei baze de date, al actualizărilor aplicației și al unei stări persistente mai mari. Notează ce funcții va folosi efectiv echipa. Bugetează separat creșterea depozitelor, obiectele mari, atașamentele și artefactele de build; calculul CI poate depăși forge-ul în sine.
- Alege un nume canonic HTTPS și protejează-i contul DNS.
- Decideți dacă înregistrarea este închisă, bazată pe invitație sau moderată.
- Acordați serviciului forge o identitate neprivilegiată și stocare privată durabilă.
Documentație oficială: Instalarea containerului Forgejo
Separă căile web, SSH și baza de date
Utilizați configurația upstream pentru versiunea selectată și fixați versiunea de imagine dorită. Un proxy invers TLS ar trebui să atingă listenerul web intern; baza de date ar trebui să fie accesibilă doar de către forge. Dacă Git SSH folosește un port de container, păstrați gazda anunțată și portul extern consecvente cu maparea. Nu înlocuiți și nu expuneți accidental listenerul SSH al administratorului gazdei în timp ce modificați forge. Închideți accesul de instalare/configurare odată ce proprietarul inițial este creat.
- Verifică proprietatea volumului persistent înainte de a porni aplicația.
- Utilizați un utilizator de bază de date restricționat la baza de date a forge.
- Păstrați runnerii CI pe o graniță de încredere separată, în special pentru depozitele nesigure.
Documentație oficială: Rețelistică și persistență Docker pentru Forgejo
Verifică clonarea, push-ul și o operațiune refuzată
Creează un depozit privat de unică folosință și testează clonarea lui HTTPS sau SSH URL dintr-un cont normal de dezvoltator. Fă commit și push cu un fișier inofensiv, apoi verifică dacă un alt cititor autorizat îl poate prelua. Un cont neinvitat trebuie să eșueze la citirea depozitului privat. Verifică gestionarea fișierelor mari și e-mailul de notificare, dacă este activat. Pentru mașinile dedicate doar implementării, testează că o cheie read-only poate prelua și nu poate face push; un succes de autentificare singur nu dovedește granița de permisiuni dorită.
# 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 -vRecuperați discuția, precum și depozitul
Realizați o copie de rezervă consecventă a aplicației/bazei de date, a stocării depozitului, a atașamentelor, a datelor LFS, a configurației și a secretelor de criptare necesare. Urmați procedura de backup a versiunii de forge instalate; comenzile de backup Gitea nu sunt automat interschimbabile cu fiecare versiune Forgejo. Reconstruiți în izolare și verificați un tichet, un atașament, autentificarea și clonarea. Dacă push eșuează după o mutare, verificați gazda/portul SSH, maparea cheilor, permisiunile de stocare și URL de clonare anunțate înainte de a modifica global permisiunile depozitului.
Documentație oficială: Copie de rezervă și restaurare Gitea