Websites

Een site vanuit Git implementeren

Git Deploy connects a repository to a site so that every push to your chosen branch clones the code, runs your build, and publishes the result. This guide covers the initial connection, the two…

Git Deploy verbindt een repository met een site zodat elke push naar uw gekozen branch de code klont, uw build uitvoert en het resultaat publiceert. Deze gids behandelt de eerste verbinding, de twee stappen aan de kant van de repository die de setup voltooien, het lezen van de deploy-geschiedenis en de buildpack-detectie die bepaalt hoe een Node.js-app wordt gebouwd.

Waar Git Deploy zich bevindt

Open Websites, klik op de site, open het menu Advanced in de site-tabbalk en kies Git Deploy. Twee verwante pagina's bevinden zich in hetzelfde menu:

  • Deploys: de volledige deploy-geschiedenis voor deze site.
  • Buildpack: de gedetecteerde build-strategie, op Node.js-sites.

De Git Deploy-pagina beschrijft zichzelf duidelijk: verbind een repository en elke push naar uw geconfigureerde branch activeert een build en deploy.

Git Deploy configuratiepagina in KPanel

Een Repository verbinden

  1. Kies uw Provider: GitHub, GitLab of Bitbucket.
  2. Voer de Repository URL in. De SSH-vorm is wat u wilt, bijvoorbeeld git@github.com:user/repo.git.
  3. Stel de Branch in voor deployment. Het veld begint bij main.
  4. Stel optioneel een Build command in, bijvoorbeeld npm run build.
  5. Stel optioneel een Output directory in, bijvoorbeeld dist, public of . voor een repository die al is gebouwd.
  6. Klik op Connect repo.

Laat het build-commando en de output-directory leeg als uw repository al zo deployable is, wat gebruikelijk is voor een gewone PHP- of statische site.

Geavanceerde scripts

Als u Advanced uitvouwt, verschijnen twee extra velden:

  • Pre-deploy script: wordt uitgevoerd vóór de build.
  • Post-deploy script: wordt uitgevoerd na de deploy.

Gebruik de post-deploy hook voor dingen die moeten gebeuren zodra nieuwe code op zijn plaats is: het wissen van een toepassingscache, het uitvoeren van een databasemigratie, het herstarten van een worker.

Auto-Deploy bij push

Met de toggle onderaan de kaart bepaalt u of pushes überhaupt worden gedeployed. Wanneer deze aan staat, triggert elke push naar de geconfigureerde branch een deploy. Wanneer deze uit staat, worden deploys alleen uitgevoerd wanneer u ze handmatig triggert met Deploy now.

Schakel auto-deploy uit tijdens een code freeze of incident in plaats van de repository los te koppelen. Het loskoppelen van de repository gooit de deploy-sleutel en het webhook-geheim weg, dus u moet beide stappen aan de kant van de repository daarna opnieuw uitvoeren.

De setup in uw repository voltooien

Het verbinden van de repository in KPanel is slechts de eerste van drie stappen. Tot een deploy is uitgevoerd, toont de pagina een banner met de tekst Complete setup: 2 steps remaining met alles wat u nodig hebt.

Stap 2: voeg de deploy-sleutel toe

Kapsule heeft leestoegang nodig om uw repository te klonen. De banner toont een openbare sleutel met een knop Copy key.

Plak deze in de deploy-sleutels van uw repository. Voor GitHub biedt de banner een snelkoppeling Add to GitHub rechtstreeks naar de juiste instellingenpagina. Leestoegang is voldoende; verleen geen schrijftoegang.

Stap 3: voeg de webhook toe

De webhook vertelt Kapsule dat er een push is gebeurd. De banner geeft u drie waarden:

VeldWaarde
Payload URLEen URL eindigend op /api/git-deploy/webhook/ plus de ID van deze site
SecretEen gegenereerd handtekeningsgeheim, verborgen tot u op het oogpictogram klikt
Content Typeapplication/json

Kopieer elk naar de webhook-instellingen van uw repository. Voor GitHub is er een snelkoppeling Add webhook to GitHub. Stel het content type in op JSON, niet de standaard form-encoded, anders wordt de payload niet geparsed.

Behandel het webhook-geheim als een wachtwoord. Iedereen die het heeft, plus de payload URL, kan een deploy van uw site triggeren. Beide waarden worden alleen getoond aan personen die de site al kunnen beheren, en het geheim blijft verborgen achter het oogpictogram tot u erom vraagt.

Handmatig deployen

Klik op Deploy now op de Git Deploy-pagina om de huidige HEAD van de geconfigureerde branch te bouwen en deployen zonder een commit te pushen. Dit werkt ongeacht of auto-deploy aan staat, wat het de juiste tool maakt tijdens een freeze: pushes worden genegeerd, maar u kunt de fix toch verzenden.

Deploy-geschiedenis lezen

Open Advanced en vervolgens Deploys. De pagina heet Deploy history en toont elke deployment die via webhook of handmatig is geactiveerd, nieuwste eerst.

Elke rij bevat:

  • Een statuspictogram en de korte commit SHA, met de branch als een badge.
  • Het commit-bericht, of Manual deploy als er geen commit-bericht is.
  • De auteur, hoe lang geleden het liep, hoe lang het duurde en wat het activeerde.
  • Een statusbadge.

De statussen zijn pending, building, deploying, success en failed. Terwijl iets onderweg is, vernieuwt de pagina zichzelf elke vijf seconden en toont een opmerking Refreshing automatically onder de tabel, zodat u deze open kunt laten en kunt zien hoe een deploy aankomt.

Wanneer een deploy mislukt

Een mislukte rij krijgt een knop Error aan de rechterkant. Klik erop om de vastgelegde foutuitvoer inline uit te vouwen, zonder de pagina te verlaten. Die uitvoer is de fouttext van de build zelf, dus het benoemt meestal het bestand of het commando dat mislukte.

Werk het in deze volgorde af: lees de fout, voer hetzelfde build-commando lokaal uit, fix, push. Als de build lokaal werkt maar hier niet, is het verschil bijna altijd een omgevingsverschil: een ontbrekende dependency die globaal op uw machine is geïnstalleerd, of een bestand dat in uw werkmap staat maar niet is gecommit.

Buildpack-detectie

Op Node.js-sites toont de pagina Buildpack in het menu Advanced hoe Kapsule heeft besloten uw app te bouwen. Detectie wordt uitgevoerd over de bestanden in uw repository root, en de eerste match wint:

GedetecteerdTrigger
Custom buildpackkapsule.config.yaml of kapsule.config.yml in de root
Dockerfile buildpackDockerfile in de root
Node.jspackage.json met een start, build of dev script
Pythonrequirements.txt of pyproject.toml
PHPcomposer.json
Staticindex.html in de root

Als niets overeenkomt, zegt de pagina dit en somt de ondersteunde triggers op. Voeg een Dockerfile of een kapsule.config.yaml toe om de build expliciet onder controle te nemen.

Een build uitvoeren

Klik op Run build om er een in de wachtrij te plaatsen. De pagina pollt elke drie seconden terwijl een run onderweg is, en de tabel Recent builds toont de laatste runs met hun starttijd, type, status, duur en resultaatafbeeldingreferentie. Klik op een rij om het logboekstaart te zien.

Er kan slechts één build tegelijk onderweg zijn. Het triggeren van een tweede terwijl er een in de wachtrij staat of loopt, wordt geweigerd met A build is already in progress, wat opzettelijk is: twee builds die tegelijkertijd naar dezelfde uitvoer schrijven, is hoe u een half-gedeployde site krijgt.

Loskoppelen

Klik op Disconnect en bevestig. De bevestiging is duidelijk over de impact: de Git deploy-configuratie en de deploy-sleutel worden verwijderd, en uw sitebestanden worden niet beïnvloed. De site blijft serveren wat het laatst is gedeployed.

Ruim daarna op door de deploy-sleutel en de webhook in uw repository-instellingen te verwijderen. Ze zullen eenvoudig niet meer werken, maar het achterlaten van dode vermeldingen maakt de volgende audit lastiger.

Probleemoplossing

Pushes activeren niets. Controleer eerst de auto-deploy toggle, dan de webhook in uw repository. De meeste providers tonen recente deliveries en hun antwoordcodes, wat u onmiddellijk vertelt of het verzoek uw repository heeft verlaten.

Klonen mislukt. De deploy-sleutel ontbreekt, is met een regelbreak erin geplakt, of is aan de verkeerde repository toegevoegd. Kopieer deze opnieuw met de knop Copy key in plaats van de tekst handmatig te selecteren.

De deploy slaagt maar de site verandert niet. De output-directory is waarschijnlijk verkeerd. Als uw build naar dist schrijft en de output-directory leeg is, bereiken de gebouwde bestanden nooit de geserveerde root.

Alles zegt pending en beweegt nooit. De deploy is in de wachtrij geplaatst maar nooit opgehaald. Trigger handmatig Deploy now en controleer de Deploys-pagina op een foutlijn.

Waar ga je nu heen

Nog steeds hulp nodig?

Stuur ons een e-mail op support@kapsulehost.com of open een chat in KPanel.

KPanel openen
Een site vanuit Git implementeren