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.

Een Repository verbinden
- Kies uw Provider: GitHub, GitLab of Bitbucket.
- Voer de Repository URL in. De SSH-vorm is wat u wilt, bijvoorbeeld
git@github.com:user/repo.git. - Stel de Branch in voor deployment. Het veld begint bij
main. - Stel optioneel een Build command in, bijvoorbeeld
npm run build. - Stel optioneel een Output directory in, bijvoorbeeld
dist,publicof.voor een repository die al is gebouwd. - 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:
| Veld | Waarde |
|---|---|
| Payload URL | Een URL eindigend op /api/git-deploy/webhook/ plus de ID van deze site |
| Secret | Een gegenereerd handtekeningsgeheim, verborgen tot u op het oogpictogram klikt |
| Content Type | application/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:
| Gedetecteerd | Trigger |
|---|---|
| Custom buildpack | kapsule.config.yaml of kapsule.config.yml in de root |
| Dockerfile buildpack | Dockerfile in de root |
| Node.js | package.json met een start, build of dev script |
| Python | requirements.txt of pyproject.toml |
| PHP | composer.json |
| Static | index.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
- Preview Deploys For Pull Requests voegt een per-PR URL toe bovenop deze setup.
- Storing App Secrets For a Site voor de referenties die uw build en runtime nodig hebben.
- Site Activity Log registreert configuratiewijzigingen die hier zijn aangebracht.