Tegenwoordig vertrouwen WordPress developers op Git om de ontwikkeling soepeler te laten verlopen en om meerdere mensen aan hetzelfde project te laten werken zonder op elkaars tenen te trappen.

Bitbucket is een populair Git platform, maar alleen je code daar hebben is niet genoeg – je wilt ook een manier om deze repository met je server te verbinden. Op die manier kunnen updates die naar Bitbucket worden gepushed automatisch op je server worden geïnstalleerd, zodat je WordPress site up-to-date blijft zonder handmatige, repeterende stappen.

Dat is waar Bitbucket Pipelines om de hoek komen kijken. Met Bitbucket Pipelines kun je een workflow instellen voor continue deployments, zodat updates in je repo automatisch worden geïnstalleerd op je site. Als je Kinsta als host gebruikt, kun je SSH en Bitbucket Pipelines gebruiken om het hele proces hands-free te maken.

Dit artikel legt uit hoe je continuous deployment kunt instellen voor je WordPress site die wordt gehost op Kinsta met behulp van Bitbucket Pipelines.

Vereisten

Voordat je continuous deployment instelt voor je WordPress site op Kinsta, moet je ervoor zorgen dat je het volgende bij de hand hebt:

  1. Je WordPress site moet al worden gehost op Kinsta.
  2. Toegang vanuit je lokale machine tot de WordPress sitebestanden.
  3. Een Bitbucket account waar je de code van je site zult opslaan en pushen.
  4. Basiskennis van Git, zoals het pushen van code en het werken met een .gitignore bestand.

Je WordPress site instellen op Bitbucket

Als Kinsta gebruiker heb je twee eenvoudige manieren om toegang te krijgen tot de bestanden van je WordPress site. Je kunt je site van de Kinsta server naar DevKinsta halen, waarmee je lokaal kunt werken, of je kunt direct vanuit je MyKinsta dashboard een downloadbare backup maken. Voor deze handleiding gebruiken we de backup methode.

Download je WordPress site bestanden

Volg deze stappen om een kopie van je WordPress bestanden te downloaden van Kinsta:

  1. Navigeer naar je site in het MyKinsta dashboard.
  2. Klik in de linker zijbalk op Backups om naar de omgevingsbackups van je site te gaan.
  3. Ga naar het tabblad Downloaden en maak een downloadbare backup.
  4. Als de download klaar is, sla deze dan op je lokale pc op.

Deze backup zal een gecomprimeerd bestand zijn. Pak het uit om toegang te krijgen tot al je WordPress bestanden.

Stel je project in voor Git en maak een repository aan op Bitbucket

Open de map met de bestanden van je site in de Code Editor van je voorkeur. Om het uploaden van onnodige WordPress core bestanden, media uploads of gevoelige informatie te voorkomen, voeg je een .gitignore bestand toe aan de hoofdmap van je project.

Je kunt een standaard template gebruiken, de inhoud ervan kopiëren en het opslaan om ervoor te zorgen dat alleen de essentiële bestanden worden bijgehouden.

Je lokale WordPress bestanden zijn nu voorbereid voor Git. Ga in Bitbucket naar je werkruimte en maak een nieuwe repository aan zonder bestanden. (Voeg geen .gitignore bestand toe, want die hebben we lokaal al aangemaakt.)

SSH authenticatie instellen en pushen naar Bitbucket

Om veilig verbinding te maken met je Bitbucket repository, moet je SSH authenticatie instellen en vervolgens je code pushen.

  1. Maak een SSH sleutelpaar aan op je lokale machine. Gebruik je eigen e-mailadres in het volgende commando:
    ssh-keygen -t ed25519 -C "[email protected]"

    Sla het sleutelpaar op een locatie op waar je gemakkelijk naar kunt verwijzen (bijvoorbeeld ~/.ssh/id_rsa_bitbucket).

  2. Kopieer de publieke sleutel (~/.ssh/id_rsa_bitbucket.pub) en voeg deze toe aan Personal Bitbucket settings > SSH keys. Dit machtigt je machine om veilig code te pushen.
    SSH sleutel toevoegen aan Bitbucket.
    SSH sleutel toevoegen aan Bitbucket.

  3. Als de SSH sleutel is toegevoegd, gebruik dan de volgende commando’s om je code naar Bitbucket te pushen:
    # Initialize a new Git repository
    git init
    # Stage all files for the first commit
    git add .
    # Commit the files with a message
    git commit -m "Initial commit of WordPress site files"
    # Add the Bitbucket repository as the remote origin
    git remote add origin [email protected]:your-username/your-repo.git
    # Push the files to Bitbucket
    git push -u origin main

    Vervang your-username en your-repo door je Bitbucket gebruikersnaam en repository naam.

Als je dit gedaan hebt, ben je helemaal klaar op Bitbucket. Je kunt dan je Kinsta server configureren om updates te ontvangen van je Bitbucket repository.

Je Kinsta server configureren voor automatische deployments

Om geautomatiseerde deployments vanaf Bitbucket mogelijk te maken, stel je SSH toegang tot Bitbucket in en configureer je Git om SSH te gebruiken op de Kinsta server.

Stap 1: SSH toegang tot Bitbucket instellen voor beveiligde verbindingen

Om de Kinsta server code van Bitbucket te laten ophalen, moet je een SSH sleutel genereren op de server en de publieke sleutel ervan toevoegen aan je Bitbucket account.

Gebruik SSH om naar je Kinsta server te gaan met het SSH terminal commando dat beschikbaar is in je MyKinsta-dashboard:

MyKinsta SSH terminal commando.
MyKinsta SSH terminal commando.

Maak vervolgens een nieuwe SSH sleutel aan (sla deze stap over als je er al een hebt):

ssh-keygen -t rsa -b 4096 -C "[email protected]"

Druk op Enter om de sleutel op de standaardlocatie op te slaan en laat de wachtwoordzin leeg als daarom wordt gevraagd.

Openbare SSH sleutel genereren.
Openbare SSH sleutel genereren.

Vervolgens moet je de publieke sleutel toevoegen aan Bitbucket. Gebruik dit commando om toegang te krijgen tot de sleutel:

cat ~/.ssh/id_rsa.pub

Kopieer de hele uitvoer, ga dan naar Bitbucket Settings > SSH Keys in je Bitbucket account en voeg de publieke sleutel toe. Dit geeft de Kinsta server toestemming om veilig toegang te krijgen tot je Bitbucket repository.

Stap 2: Git configureren om SSH te gebruiken op de Kinsta server

Navigeer naar de live directory van je site op de Kinsta server door het onderstaande commando uit te voeren:

cd /www/your-site/public

Je kunt dit pad vinden in de Omgeving details sectie van je MyKinsta site dashboard, zoals hieronder getoond:

WordPress site server pad.
WordPress site server pad.

Vervolgens initialiseer je de map als een Git repository en stel je de remote URL in om SSH te gebruiken:

git init
git remote add origin [email protected]:your-username/your-repo.git

Vervang your-username en your-repo door respectievelijk je Bitbucket gebruikersnaam en repository naam.

Bevestig dat de SSH instelling werkt door uit te voeren:

ssh -T [email protected]

Als het gelukt is, zou je een bericht moeten zien als: “authenticated via SSH key. You can use git to connect to Bitbucket. Shell access is disabled”.

Met deze instelling is je Kinsta server nu klaar om updates van Bitbucket te ontvangen en direct uit te rollen via Bitbucket pipelines.

Bitbucket Pipelines instellen voor geautomatiseerde deployments

Bitbucket Pipelines is een hulpmiddel voor continuous integration en delivery (CI/CD) waarmee je taken kunt automatiseren wanneer je wijzigingen naar je repository pusht. In deze setup zullen we een pipeline configureren die een deployment naar Kinsta activeert wanneer er een nieuwe push is naar de main branch.

Vereiste omgevingsvariabelen toevoegen

Voordat je de pipeline configureert, moet je een aantal omgevingsvariabelen instellen in Bitbucket om gevoelige informatie veilig op te slaan. Navigeer naar Repository Settings > Repository Variables in Bitbucket en voeg het volgende toe met de bijbehorende waarde:

  • KINSTA_USERNAME: Dit is je SSH gebruikersnaam voor de Kinsta server. Deze wordt gebruikt door Bitbucket Pipelines om in te loggen en deployment commando’s uit te voeren.
  • KINSTA_SERVER_IP: Dit is het IP adres van je Kinsta server. Hierdoor weet Bitbucket Pipelines met welke server verbinding moet worden gemaakt voor de deployment.
  • PORT: Dit is de SSH poort die wordt gebruikt door je Kinsta-server. Kinsta servers gebruiken een aangepaste poort, dus die moet je hier opgeven. Je kunt deze details vinden op de Info pagina van je site in je MyKinsta dashboard.

    MyKinsta STFP/SSH details
    MyKinsta STFP/SSH details.

  • SSH_PRIVATE_KEY: Dit is je base64 gecodeerde SSH privésleutel van je lokale machine. Bitbucket Pipelines zal deze sleutel gebruiken om je te verifiëren op je Kinsta server. Voer het volgende uit om je privésleutel in base64 te coderen:
    cat ~/.ssh/id_rsa | base64

    Kopieer de uitvoer en voeg deze toe als waarde voor SSH_PRIVATE_KEY.

Bitbucket Pipeline configuratie

Laten we nu het configuratiebestand, bitbucket-pipelines.yml, schrijven om deployments te automatiseren. Dit bestand definieert de pipeline, specificeert wanneer deze moet worden uitgevoerd, welke commando’s moeten worden uitgevoerd en hoe er verbinding moet worden gemaakt met je Kinsta server. Je kunt dit lokaal in je IDE doen.

Hier is de volledige configuratie:

pipelines:
  branches:
    main:
      - step:
          name: Deploy to Kinsta
          script:
            - pipe: atlassian/ssh-run:0.8.1
              variables:
                SSH_USER: $KINSTA_USERNAME
                SERVER: $KINSTA_SERVER_IP
                PORT: $PORT
                COMMAND: |
                  cd /www/your-site/public &&
                  git fetch origin main &&
                  git reset --hard origin/main
                SSH_KEY: $SSH_PRIVATE_KEY
                DEBUG: 'true'

Een blik op deze pipeline configuratie

Deze pipeline is ingesteld om deployments naar je Kinsta server te automatiseren wanneer er een nieuwe push is naar de main branch. Hier is een uitsplitsing van wat elk onderdeel doet:

  • Pipeline trigger: Het pipelines gedeelte is geconfigureerd om te triggeren op pushes naar de main branch. Dit betekent dat elke nieuwe commit naar main automatisch de deployments zal starten.
  • Stap: De stap wordt voor de duidelijkheid “Deploy to Kinsta” genoemd. Deze stap bevat de belangrijkste acties voor de deployment.
  • SSH run pipe: We gebruiken de atlassian/ssh-run pipe, waarmee Bitbucket verbinding kan maken met je Kinsta server via SSH en commando’s op afstand kan uitvoeren. Deze pipe vereenvoudigt het proces van het opzetten van een SSH sessie, het uitvoeren van de commando’s en het sluiten van de sessie, zodat het niet nodig is om SSH details handmatig in het script te beheren.
  • Deployment commando’s: Het blok COMMAND bevat de commando’s waarmee de nieuwste code op je WordPress site wordt geïnstalleerd. Dit is wat elk commando doet:
    • Het eerste commando navigeert naar de live directory waar WordPress wordt gehost.
    • Het tweede commando voert dan git fetch origin main uit om de nieuwste code van de main branch in Bitbucket te halen.
    • Het laatste commando werkt dan de live site bij met de nieuwste code van de main branch.

Deze configuratie handelt alle aspecten van de deployment af – van het verbinden met Kinsta tot het bijwerken van je sitebestanden – zodat je WordPress site op Kinsta automatisch up-to-date blijft bij elke push naar main.

De pipeline testen

Sla het bitbucket-pipelines.yml bestand op in de hoofdmap van je repository en commit de wijzigingen. Wanneer je dit naar de main branch pusht, zal de pipeline automatisch starten en het deploymentproces starten.

Je kunt de voortgang van de deployment volgen in het Bitbucket Pipelines dashboard. Als alles goed is ingesteld, zal Bitbucket verbinding maken met je Kinsta server, de nieuwste code ophalen en deze uitrollen naar je live site.

Bitbucket pipeline logs.
Bitbucket pipeline logs.

Controleer voor het oplossen van problemen de logboeken van de pipeline in Bitbucket, vooral als DEBUG is ingesteld op "true". De logboeken geven gedetailleerde informatie over elke stap, wat kan helpen bij het identificeren van verbindings- of configuratieproblemen.

Samenvatting

Het instellen van geautomatiseerde deployments van Bitbucket naar Kinsta is een krachtige manier om je WordPress site up-to-date te houden zonder het gedoe van handmatige updates. Na het verbinden van Bitbucket Pipelines en je Kinsta server, wordt elke push naar je repository onmiddellijk gereflecteerd op je live site, waardoor downtime wordt geminimaliseerd en deploymentfouten worden verminderd.

Vergeet niet dat DevKinsta een eenvoudigere optie biedt voor solo-ontwikkelaars. Met DevKinsta kun je je lokale ontwikkelomgeving met één klik rechtstreeks naar Kinsta pushen, zodat je geen pipeline hoeft in te stellen. Een bijkomend voordeel van deze aanpak is dat je databasewijzigingen ook kunnen worden meegenomen, zodat zowel je code als je content moeiteloos synchroon blijven.

Wat vind je van dit proces? Heb je vragen of loop je tegen problemen aan? Deel je feedback of stel vragen in de comments hieronder!

Joel Olawanle Kinsta

Joel is een Frontend developer die bij Kinsta werkt als Technical Editor. Hij is een gepassioneerd leraar met liefde voor open source en heeft meer dan 200 technische artikelen geschreven, voornamelijk over JavaScript en zijn frameworks.