Git & deploy·2 min lezen

Automatisch deployen na elke git push (webhook)

Laat je website zichzelf bijwerken na elke push naar GitHub. Webhook instellen in twee minuten, met wat wel en niet automatisch gaat.

Heb je een repository gekoppeld? Dan kan je website na elke push vanzelf bijwerken. Geen knop, geen FTP. In onze eigen test stond een wijziging binnen 3 seconden na git push live.

Hoe stel je de webhook in?

  1. Open in Invoker Link het tabblad GitHub en klik bij je repository op Automatisch bijwerken.
  2. Kopieer de Payload URL.
  3. Klik op Open GitHub. Je komt op Settings → Webhooks → Add webhook.
  4. Vul in:
    • Payload URL: de gekopieerde URL
    • Content type: application/json
    • Which events: Just the push event
  5. Klik op Add webhook.

GitHub stuurt direct een testbericht ("ping"). Bij Recent Deliveries hoort daar een groen vinkje te staan.

Testen

git commit -am "Test: automatisch deployen"
git push

Ververs je website. De wijziging staat er binnen enkele seconden.

Wat doet de webhook precies?

Bij elke push:

  1. haalt de server de nieuwste commits op,
  2. zet de bestanden van de gekozen branch op de gekozen plek.

Push je naar een andere branch dan de gekoppelde, dan verandert er niets aan je website.

Goed om te weten

  • Bestanden die je uit de repository verwijdert, blijven op de website staan. Een deploy schrijft alleen weg wat in de repository staat. Ruim oude bestanden zelf op.
  • Behandel de webhook-URL als een wachtwoord. Wie de URL kent, kan een deploy starten. Dat zet alleen neer wat al in je repository staat, maar deel de URL niet.
  • Wijzigingen op de server gaan bij de volgende deploy verloren. Pas je een gedeployd bestand direct op de server aan (via FTP of de assistent), dan overschrijft de volgende push dat. Werk in de repository.

Werkt het niet?

Kijk in GitHub bij Settings → Webhooks → Recent Deliveries:

Wat je ziet Wat het betekent
Geen deliveries De webhook staat niet op het push-event, of er is nog niet gepusht.
Rood kruis, 404 De URL is niet goed gekopieerd, of de koppeling is verwijderd.
Groen vinkje, site niet bijgewerkt Je pushte naar een andere branch dan de gekoppelde.
MK
Maarten Keizer

Oprichter van Invoker. Ruim twintig jaar hosting, systeembeheer en webdevelopment; bouwt de Claude-hosting zelf en test alles eerst op de eigen servers.

over maarten