PRIVATE INFRASTRUCTUUR / GEEN ID NODIGLees de privacydoctrine
De KoalaVPS-veldnotities

Een kleine forge die u opnieuw kunt opbouwen.

Een Git-dienst kan repositories en samenwerking onder jouw controle houden. Bescherm de code, de database en het buildsysteem afzonderlijk.

Kies de samenwerkingslaag

Forgejo en Gitea zijn voorbeelden van lichtgewicht forge-software; gewone SSH Git kan voldoende zijn voor een kleinere workflow. Stem issues, reviews, pakketopslag en identiteitsvereisten af op het project. Verifieer de actueel ondersteunde versies en licenties.

Scheid builds van de forge

Een CI-runner voert door het project beheerde code uit en mag geen onbeperkte forge- of hostreferenties bevatten. Isoleer runners, beperk tokens en vermijd het uitvoeren van niet-vertrouwde taken op hetzelfde bevoorrechte account als de repository-service.

Beveilig toegang en registratie

Schakel openbare aanmelding uit wanneer de dienst privé is. Gebruik individuele accounts, sterke authenticatie en zorgvuldig afgebakende deployment-sleutels. Documenteer de SSH-poort en hostsleutel; leer gebruikers niet stilzwijgend om waarschuwingen over hostsleutels te negeren.

Maak een back-up van de volledige service

Repositories alleen bevatten mogelijk geen issues, accounts, bijlagen en configuratie. Volg de consistente back-upprocedure van de forge en test een herstel met behoud van bestandsrechten en applicatiegeheimen.

Een checklist voor forge-herstel

Exporteer de database consistent en bewaar repository-opslag, bijlagen, opslag voor grote bestanden indien ingeschakeld, configuratie en versleutelingsgeheimen. Verifieer een kloon via de beoogde SSH of HTTPS-route na herstel. Houd de forge en eventuele CI-worker geïsoleerd, zodat een build de eigen configuratie van de dienst niet kan herschrijven.

Houd implementatierechten beperkt

Een alleen-lezen deployment-sleutel kan voldoende zijn voor een server die alleen code ophaalt. Een release-automatisering kan een kleine extra scope nodig hebben. Geef de voorkeur aan onafhankelijke sleutels voor verschillende machines, leg hun doel vast en verwijder ze wanneer de machine buiten gebruik wordt gesteld.

Gebruik de kleinste samenwerkingsdienst die past

Voor een paar privérepositories kan bare Git over beperkte SSH voldoende zijn. Forgejo of Gitea voegt accounts, pull requests, issues en optionele pakketten toe tegen de kosten van een database, applicatie-updates en meer persistente status. Leg vast welke functies het team daadwerkelijk gaat gebruiken. Begroot repositorygroei, grote-bestandsobjecten, bijlagen en build-artefacten afzonderlijk; CI-rekenkracht kan de forge zelf overtreffen.

  • Kies een canonieke HTTPS-naam en bescherm het bijbehorende DNS-account.
  • Bepaal of aanmelding gesloten, op uitnodiging of gemodereerd is.
  • Geef de forge-dienst een niet-geprivilegieerde identiteit en duurzame privéopslag.

Scheid de web-, SSH- en databasepaden

Gebruik de upstream-configuratie voor de geselecteerde release en pin de beoogde image-versie. Een TLS reverse proxy moet de interne weblistener bereiken; de database mag alleen bereikbaar zijn voor de forge. Als Git SSH een containerpoort gebruikt, houd dan de geadverteerde host en externe poort consistent met de mapping. Vervang of stel niet per ongeluk de listener van de hostbeheerder SSH bloot bij het wijzigen van de forge. Sluit installatie-/setup-toegang zodra de eerste eigenaar is aangemaakt.

  • Controleer het eigendom van het persistente volume voordat u de applicatie start.
  • Gebruik een databasegebruiker die beperkt is tot de forge-database.
  • Houd CI-runners op een aparte vertrouwensgrens, vooral voor niet-vertrouwde repositories.

Verifieer clonen, pushen en een geweigerde bewerking

Maak een wegwerpbare privérepository aan en test de HTTPS- of SSH-kloon URL ervan vanaf een normaal ontwikkelaarsaccount. Commit en push een onschadelijk bestand en controleer vervolgens of een andere geautoriseerde lezer het kan ophalen. Een niet-uitgenodigd account mag de privérepository niet kunnen lezen. Controleer de verwerking van grote bestanden en de notificatie-e-mail indien ingeschakeld. Test voor machines die alleen voor implementatie dienen of een alleen-lezen sleutel kan ophalen en niet kan pushen; een geslaagde authenticatie alleen bewijst niet de beoogde machtigingsgrens.

# 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 -v

Herstel de discussie evenals de repository

Maak een consistente back-up van applicatie/database, repositoryopslag, bijlagen, LFS-gegevens, configuratie en vereiste versleutelingsgeheimen. Volg de back-upprocedure van de geïnstalleerde forge-versie; Gitea-back-upcommando's zijn niet automatisch uitwisselbaar met elke Forgejo-release. Bouw geïsoleerd opnieuw op en verifieer een issue, bijlage, login en clone. Als push na een verhuizing mislukt, controleer dan SSH host/poort, sleuteltoewijzing, opslagmachtigingen en geadverteerde clone-URL's voordat je repositorymachtigingen wereldwijd wijzigt.

CONFIGUREER JE INFRASTRUCTUUR

Neem de controle.
Deploy op jouw voorwaarden.

Geen identiteitspapieren. Volledige beheerderstoegang. Crypto-native facturering.