Terug naar hoofdinhoud

Joomla onderhoudschecklist: taken van dagelijks tot jaarlijks

12 augustus 2026

Niemand is van plan een website te verwaarlozen. Het gebeurt stap voor stap, week na week: de update die wel even kon wachten, de back-up die niemand heeft gecontroleerd, het logbestand dat niemand heeft gelezen. Een jaar later loopt de site drie versies achter, dateert de nieuwste back-up van maart en is een alledaags probleem uitgegroeid tot een kostbare aangelegenheid. De oplossing ligt niet in een heldhaftige inspanning, maar in een checklist met een vast ritme.

Dit artikel maakt van Joomla-onderhoud een concreet schema: wat elke dag automatisch moet draaien, wat een mens wekelijks, maandelijks, per kwartaal en jaarlijks controleert, en hoe je de routine levend houdt in plaats van verlaten. Het bundelt de Focus On-artikelen over updates, back-ups, security hardening, prestaties, overrides en troubleshooting tot een onderhoudskalender - elk diep onderwerp woont in zijn eigen artikel; hier krijgen ze hun datum en hun volgorde.

Een goed onderhouden site kent ook saaie weken. Dat is nu juist de bedoeling.

Het doel is eenvoudig: je een onderhoudsritme geven dat je echt kunt volhouden - vijftien geconcentreerde minuten per week, en een site die jarenlang stilletjes gezond blijft.

1. De basis

1.1 Onderhoud versus brandjes blussen

Elke site-eigenaar betaalt voor onderhoud - de enige keuze is de valuta. Betaal in kleine geplande porties (minuten per week) en problemen blijven klein: updates installeren netjes, back-ups bestaan wanneer ze nodig zijn, vreemde logregels vallen vroeg op. Sla de porties over en je betaalt in noodgevallen: gehackte sites, mislukte updates zonder back-up, posities verloren aan maanden kapotte links. Het troubleshooting-artikel bestaat voor slechte dagen; dit artikel bestaat om slechte dagen zeldzaam te maken.

1.2 Het ritme in een oogopslag

RitmeWieKernvraag
Dagelijks Automatisering Draait alles, en zou ik het horen als dat niet zo was?
Wekelijks Mens, ~15 minuten Updates, back-ups, meldingen: wacht er iets op mij?
Maandelijks Mens, ~30 minuten Trends: logs, zoekdata, schijfruimte, iets aan het verschuiven?
Per kwartaal Mens, ~2 uur Audits: gebruikers, extensies, hersteloefening, volledige crawl.
Jaarlijks Mens, halve dag Strategie: hosting, PHP-roadmap, documentatie, opruimen.

1.3 Het onderhoudslogboek

Houd een doorlopend document per site bij: datum, wat je deed, betrokken versies, alles wat opviel. Het kost een regel per sessie en betaalt zich terug zodra er iets breekt - "wat is er veranderd?" (de eerste vraag van het troubleshooting-artikel) beantwoord je door te lezen in plaats van te herinneren. Het is ook je bewijs van zorgvuldigheid richting klanten.

Naar boven

2. Dagelijks: wat zonder jou draait

2.1 Automatisering eerst

De dagelijkse laag is volledig van de machines. Jouw taak is niet dagelijkse klusjes doen - jouw taak is ze een keer inrichten en hun stilte hoorbaar maken. De bouwstenen, elk behandeld in een eigen artikel:

TaakMechanisme
Back-ups (bestanden + database, extern) Back-upextensie of script op cron - de 3-2-1-opzet uit het back-upartikel.
Update-meldingen Plugin Task - Update Notification via de taakplanner.
Sessies opruimen Taak-plugin sessiongc.
Logrotatie en -opschoning Taak-plugins rotatelogs en deleteactionlogs.
Oude vergrendelingen opruimen Taak-plugin globalcheckin.
Te grote bestanden signaleren Taak-plugin checkfiles.
Uptime-monitoring Externe monitor die de site pingt (en het liefst een API-endpoint) - inclusief controle op certificaatverloop, wat de meeste monitors gratis meedoen.
Core-patchreleases (optioneel) Joomla's automatische-updatedienst, met de back-upcontrole aan.

De uptime-monitor hoeft geen betaalde dienst te zijn: Uptime Kuma - gratis, open source, zelf gehost in een Docker-container - bewaakt een willekeurig aantal sites (HTTP, trefwoordcontroles, certificaatverloop) en stuurt alarmen naar mail, Telegram, Slack en tientallen andere kanalen. Het is wat ik draai voor mijn eigen sites en die van klanten: een dashboard, elke site, en het stilte-is-alarm-principe zichtbaar gemaakt.

2.2 Trigger de taakplanner goed

Alle taak-plugins hierboven hangen ervan af dat de taakplanner echt afgaat. Koppel hem aan een echte server-cronjob of de webcron-URL - niet aan backend-bezoeken, want die stoppen op de dag dat jij stopt met bezoeken. Deze ene configuratiekeuze bepaalt of je "dagelijkse" laag uberhaupt bestaat.

2.3 Stilte is een signaal

Elke geautomatiseerde taak hoort ergens te rapporteren - mail, een monitoringkanaal - en de regel uit het back-upartikel geldt voor allemaal: behandel stilte als het alarm. Een dode cronjob stuurt geen foutmail. Je wekelijkse controle (volgende sectie) omvat verifieren dat de rapporteurs nog rapporteren.

Naar boven

3. Het wekelijkse kwartier

3.1 De checklist

  1. Updates: open Systeem → Update → Joomla en → Extensies. Installeer wat klaarstaat - na het pre-update-ritueel hieronder als het meer dan een patch is.
  2. Back-upversheid: controleer leeftijd en grootte van de nieuwste externe back-up. Nieuwer dan je schema belooft, plausibele grootte? Tien seconden.
  3. Meldingen: lees de meldingsmails van de week - updateberichten, back-uprapporten, uptime-alarmen. Alles onverklaards gaat in het logboek.
  4. Mislukte logins: een blik op het log van mislukte logins (de plugin System - Log schrijft het). Een golf betekent dat de tegenmaatregelen uit sectie 5.2 van het beveiligingsartikel hun geld waard worden.
  5. Rooktest: laad de homepage, verstuur een formulier - en bevestig dat de mail ervan echt aankwam. Stilletjes kapotte e-mail is een van de meest voorkomende onopgemerkte storingen, en monitoring ziet het zelden.

3.2 Het pre-update-ritueel

Voor elke update voorbij een triviale patch, het ritueel uit het back-upartikel: verse back-up, release notes lezen, updaten, site testen. En de stap die bijna iedereen overslaat, uit het overrides-artikel: open na een core-update de lijst bijgewerkte bestanden van het template en werk je overrides bij - achtergebleven overrides houden stilletjes oude bugs en oude beveiligingsgaten in leven.

3.3 Waarom wekelijks en niet "als ik eraan toekom"

Het beveiligingsartikel beschreef het krimpende venster tussen een security release en de uitbuiting ervan - AI-ondersteunde kwetsbaarheidsdetectie versnelde beide kanten. Wekelijks is het traagste ritme dat je voor de meeste releases binnen dat venster houdt; kritieke beveiligingsupdates horen niet eens op het wekelijkse moment te wachten.

Naar boven

4. Het maandelijkse halfuur

4.1 De checklist

  1. Actielog doornemen: scan Gebruikers → Gebruikersactielog. Onverwachte installaties, rechtenwijzigingen of logins zijn een vraag waard.
  2. Search Console: dekkingsfouten en de Core Web Vitals-velddata (het prestatie-artikel legt uit waarom velddata het getal is dat telt). Zoek naar verschuiving, niet naar perfectie.
  3. Schijf en database: schijfgebruik in het hostingpanel en de grootste databasetabellen. Groei is normaal; plotselinge sprongen niet.
  4. Back-upopslag: bekijk de externe back-upmap met eigen ogen - generaties aanwezig, retentie roterend, geen stille stop in maart.
  5. VEL-blik: leg de Vulnerable Extensions List naast wat je draait - vooral extensies waarvan de ontwikkelaars stil zijn geworden.
  6. PHP-versiecheck: nog op een actief ondersteunde PHP? Plan de overstap voordat de host hem afdwingt.
  7. Bezorgbaarheidsblik: stuur een testmail (een wachtwoordreset werkt goed) naar een externe mailbox en controleer dat hij SPF, DKIM en DMARC doorstaat. DNS- en hostingwijzigingen breken mailauthenticatie stilletjes - het artikel over e-mailbezorgbaarheid legt de controles uit.

De maandelijkse sessie gaat over richting: drijft de site ergens heen? Een langzaam vollopende schijf, langzaam stijgende responstijden, langzaam groeiende ruis van mislukte logins - elk is onzichtbaar in een wekelijkse blik en overduidelijk in een maandelijkse vergelijking met de vorige regel in je onderhoudslogboek.

Naar boven

5. De kwartaalaudit

5.1 De checklist

  1. Gebruikersaudit: elk account gerechtvaardigd, vertrokken mensen verwijderd, Super Users op een hand te tellen, MFA-dekking compleet. De weergave Debug gebruiker uit het ACL-artikel beslecht twijfels.
  2. Extensie-audit: deinstalleer - niet uitschakelen - wat niemand dit kwartaal gebruikte. Minder extensies, kleiner aanvalsoppervlak, snellere updates (het beveiligings- en het prestatie-artikel zijn het hierover eens).
  3. Hersteloefening (elk tweede kwartaal): zet de nieuwste externe back-up terug op een kladlocatie en loop de checklist uit het back-upartikel af. Noteer de hersteltijd.
  4. Volledige crawl: een Screaming Frog-ronde over de site - kapotte links, redirect-ketens, dubbele titels, weespagina's - voordat Google ze vindt (sectie 10.4 van het SEO-artikel).
  5. Prestatiemeting: de drie kernpagina's uit het prestatie-artikel tegen je gelogde referentie. Achteruitgang krijgt een ticket, geen schouderophalen.
  6. Override-controle: nog onverwerkte regels in de lijst bijgewerkte bestanden? Overrides die inmiddels identiek zijn aan de core en weg kunnen?
  7. Malwarescan en bestandsintegriteit: draai een externe malwarescan van de gerenderde site, en verifieer de bestanden tegen versiebeheer (git status) of een schone Joomla-download. Webshells verschuilen zich als legitiem ogende PHP-bestanden; vergelijking vindt wat scanners missen.
  8. Toegankelijkheids-steekproef: loop kernpagina's door met het toetsenbord, controleer formulierlabels en contrast, en laat Joomla's ingebouwde Accessibility Checker-plugin (jooa11y) problemen signaleren voor redacteuren. Content- en templatewijzigingen slijten toegankelijkheid stilletjes uit - vooral na override-werk.

5.2 De audit-mentaliteit

Kwartaalwerk is vijandig: je probeert te vinden wat de routine miste. Ga ervan uit dat er iets verschoven is - een account dat weg had gemoeten, een extensie die niemand zich herinnert, een redirect-keten van de laatste herstructurering - en ga ernaar op zoek. Niets vinden is een voldoende, geen verspilde middag.

Naar boven

6. De jaarlijkse halve dag

6.1 De checklist

  1. Hostingcontrole: past de stack nog - PHP-roadmap, databaseversie, isolatie, prijs? De hostingvragen uit het prestatie-artikel, opnieuw gesteld met een jaar aan data.
  2. Joomla-roadmap: waar staat jouw versie in de ondersteuningscyclus? Plan grote migraties een jaar vooruit, niet de maand dat de ondersteuning stopt.
  3. Rotatie van toegangsgegevens: databasewachtwoord, API-tokens, deploy-sleutels, de accounts in je DR-document. Roteer wat in theorie gelekt kan zijn; verwijder wat niemand gebruikt.
  4. DR-documentatie: herlees het disaster recovery-document uit het back-upartikel. Kloppen locaties, inloggegevens, contacten en stappen nog? Kan een collega nog steeds herstellen zonder jou?
  5. Privacy en bewaartermijnen: back-upretentie versus je privacybeleid, gebruikersdata die gewist had moeten zijn, maillijsten tegen de werkelijkheid - de AVG-punten uit het back-up- en het privacy-artikel.
  6. Verlengingsinventaris: domeinen, certificaten (als ze niet automatisch verlengen), licenties, het abonnement op de back-upopslag. Zet de vervaldatums in de agenda.
  7. Content opschonen: archiveer of redirect wat verouderd is; de crawl uit de kwartaalaudit vertelt je waar niemand meer naar linkt.

6.2 De jaarlijkse vraag

Sluit de sessie af met een strategische vraag: als deze site morgen onherstelbaar zou breken, wat zouden we dan anders herbouwen? Het antwoord benoemt meestal het verbeterproject van volgend jaar - en behoedt je af en toe voor het onderhouden van iets dat vervangen zou moeten worden.

Naar boven

7. De routine levend houden

7.1 Maak beginnen doodsimpel

Routines sterven aan wrijving, niet aan luiheid. Zet de checklist waar je erover struikelt: een terugkerend agendablok met de checklist in de uitnodiging, een vastgepinde notitie, een sjabloonpagina in je onderhoudslogboek. De sessie van vijftien minuten moet in vijftien seconden te starten zijn.

7.2 Groepeer per site, niet per taak

Onderhoud je meerdere sites? Doe de volledige wekelijkse controle van een site, dan de volgende - niet "alle updates overal, dan alle back-ups overal". Groeperen per site houdt het onderhoudslogboek samenhangend en vangt de eigenaardigheden per site die taak-groeperen gladstrijkt. Een centraal dashboard zoals YourSites (zie het artikel over security hardening) maakt de ronde efficient: een scherm toont welke sites updates hebben klaarstaan, zodat de wekelijkse ronde begint met een lijst in plaats van een inlogtoer.

7.3 Wanneer je achterloopt

Dat gebeurt - vakanties, projecten, het leven. Het herstel is een triage, geen schuldgevoel: eerst beveiligingsupdates, dan de back-upcontrole, dan een volledige wekelijkse ronde, dan het ritme hervatten. Een maand gemist onderhoud is een middag inhalen; laat het gat niet het excuus worden voor een groter gat.

Naar boven

8. Onder de motorkap (ontwikkelaarsblik)

8.1 De checklist als commando's

De meeste wekelijkse en maandelijkse controles hebben CLI-equivalenten, wat ze scriptbaar maakt over een vloot:

php cli/joomla.php core:update:check        # core-update beschikbaar?
php cli/joomla.php extension:list           # inventaris, met id's
php cli/joomla.php maintenance:database     # schema nog consistent?
php cli/joomla.php config:get               # configuratiestatus verifieren
php cli/joomla.php scheduler:run            # taken buiten webcron om
ls -lh /pad/naar/backups | tail -5          # back-upleeftijd + grootte
git -C /pad/naar/site status --short        # onverwachte bestandswijzigingen?

Een klein wrapper-script dat deze per site draait en een gecombineerd rapport mailt, maakt van een wekelijkse controle over tien sites het lezen van een e-mail. Bouw je alarmering ook op afwezigheid, niet alleen op falen - het terugkerende thema van dit artikel.

8.2 Versiebeheer als onderhoudsgereedschap

Een site waarvan templates en overrides in git staan, geeft onderhoud superkrachten: git status signaleert onverwachte bestandswijzigingen (drift of compromittering), git diff werkt overrides na updates in minuten bij, en de commit-geschiedenis wordt de technische helft van je onderhoudslogboek. Het overrides-artikel raadt het aan; de kwartaalaudit is waar het zich uitbetaalt.

8.3 Staging-discipline

Voor bedrijfskritische sites wijst het wekelijkse update-moment eerst naar staging: de uitkomst van de hersteloefening doet dienst als staging-kopie (de bonus uit het back-upartikel), updates draaien daar, de rooktest draait daar, en productie volgt een dag later. Het onderhoudsritme absorbeert de extra stap zonder van vorm te veranderen.

Naar boven

9. Onderhoud en de Web Services API

Voor wie meerdere sites onderhoudt, maakt de API van controles monitoring. Een vlootscript met een token met minimale rechten (het recept met de aparte API-gebruiker uit het ACL-artikel) kan elke site naar zijn Joomla-versie vragen, verifieren dat hij uberhaupt antwoordt, en bevestigen dat content-endpoints reageren - je uptime-monitor met inzicht. Gecombineerd met het CLI-rapport uit sectie 8.1 schaalt het wekelijkse kwartier naar tientallen sites zonder te groeien.

Twee API-specifieke punten horen op de checklist in plaats van hem uit te voeren: roteer API-tokens in de jaarlijkse rotatieronde, en controleer in de kwartaal-gebruikersaudit welke groepen API-loginrechten hebben. Integraties hebben de neiging de projecten die ze creeerden te overleven; de audit is waar vergeten tokens gevonden en ingetrokken worden.

Naar boven

10. SEO en metadata

Zoekposities zijn samengestelde rente op betrouwbaarheid, en onderhoud is wat de rente laat renderen. Elke laag van het ritme heeft een SEO-gezicht: de wekelijkse update-gewoonte houdt de site van blocklists af (de snelste positievernietiger die er is), de maandelijkse Search Console-controle vangt dekkings- en Core Web Vitals-verschuivingen terwijl repareren nog goedkoop is, en de kwartaalcrawl verwijdert de kapotte links en redirect-ketens die stilletjes autoriteit laten weglekken.

Het onderhoudslogboek helpt hier ook: wanneer posities bewegen, is de eerste vraag van elke SEO-analyse "wat veranderde er, en wanneer?" - en jouw logboek beantwoordt het op de dag nauwkeurig. Sites die op een ritme onderhouden worden, hebben zelden SEO-noodgevallen; ze hebben kleine notities in een maandelijkse controle.

Naar boven

11. Veelvoorkomende fouten en valkuilen

11.1 De checklist die nooit werd ingepland

Symptoom: iedereen vindt onderhoud belangrijk; niemand heeft het in de agenda; er gebeurt niets.

Oplossing: een terugkerend agendablok met de checklist erin, eigendom van een persoon met naam. Onderhoud zonder eigenaar is geen onderhoud.

11.2 Controleren zonder handelen

Symptoom: het updatebericht wordt wekelijks gelezen - en de update per kwartaal geinstalleerd. De controle werd een ritueel, losgezongen van zijn doel.

Oplossing: elke controle eindigt in een actie of een gelogde beslissing ("update X uitgesteld tot Y wegens Z"). Een controle zonder mogelijk gevolg kan van de lijst.

11.3 Meldingsmoeheid

Symptoom: veertig automatische mails per week, allemaal ongelezen gearchiveerd - inclusief die ene die ertoe deed.

Oplossing: minder, betere signalen. Een gecombineerd rapport verslaat tien losse; alarmen alleen voor dingen die actie vragen; en het stilte-is-alarm-principe voor de rest.

11.4 Alles tegelijk geupdatet, niets getest

Symptoom: core plus elf extensies in een keer bijgewerkt; de site breekt; niemand weet welke update het deed.

Oplossing: eerst back-uppen, in kleine groepen updaten, tussen groepen testen. De regel van een-wijziging-tegelijk uit het troubleshooting-artikel geldt ook voor onderhoud.

11.5 De onsterfelijke actiepunt

Symptoom: "migreren naar ondersteunde PHP-versie" staat in twaalf opeenvolgende maandelijkse controles.

Oplossing: terugkerende bevindingen worden gepromoveerd tot projecten met een datum, of expliciet als risico geaccepteerd in het logboek. De checklist is voor controles, niet voor het opslaan van uitgestelde beslissingen.

11.6 De site onderhouden, het vangnet vergeten

Symptoom: updates zijn stipt, de site is gezond - en de back-upautomatisering stierf acht maanden geleden, onopgemerkt.

Oplossing: de metaregel van dit artikel: bewaak de bewakers. Back-upversheid is een wekelijkse controle, juist omdat back-ups stil falen.

Naar boven

12. Best practices

Als je maar een paar dingen uit dit artikel onthoudt, onthoud dan deze:

  • Automatiseer de dagelijkse laag volledig, en maak stilte van elke automatisering een alarm.
  • Vijftien minuten per week, ingepland en met eigenaar: updates, back-upversheid, meldingen, mislukte logins, rooktest.
  • Update nooit zonder het ritueel: back-up, release notes, updaten, testen - en overrides bijwerken na core-updates.
  • Maandelijks is voor trends, per kwartaal voor audits (gebruikers, extensies, hersteloefening, crawl), jaarlijks voor strategie en documentatie.
  • Houd een onderhoudslogboek van een regel per sessie bij; het beantwoordt "wat is er veranderd?" voor altijd.
  • Groepeer per site, niet per taak; herstel van gaten met triage, niet met schuldgevoel.
  • Promoveer terugkerende bevindingen tot projecten met een datum - een checklist is geen parkeerplaats.
  • Script wat zich herhaalt (CLI + API) zodra je meer dan een paar sites onderhoudt.
Naar boven

13. In het kort

DAGELIJKS (automatisch - een keer inrichten, altijd bewaken)
  [ ] externe back-up draaide       [ ] taakplanner-taken vuurden
  [ ] uptime + certverloop bewaakt  [ ] meldingen stromen
  taken: sessiongc rotatelogs deleteactionlogs
         globalcheckin checkfiles updatenotification

WEKELIJKS (~15 min)
  [ ] Systeem > Update: core + extensies (ritueel indien groot)
  [ ] nieuwste back-up: leeftijd + grootte plausibel
  [ ] meldingen van de week gelezen - iets onverklaards?
  [ ] log mislukte logins: golven?
  [ ] rooktest: homepage + een formulier + mail kwam aan
  ritueel: back-up > release notes > updaten > testen > overrides
           (lijst bijgewerkte bestanden na core-updates)

MAANDELIJKS (~30 min)
  [ ] actielog scannen              [ ] Search Console: CWV + dekking
  [ ] schijf- + databasegroei       [ ] back-upgeneraties roteren
  [ ] VEL vs geinstalleerde extensies  [ ] PHP nog ondersteund?
  [ ] bezorgbaarheid: testmail doorstaat SPF + DKIM + DMARC
  vergelijk met de vorige logboekregel - zoek naar verschuiving

PER KWARTAAL (~2 u)
  [ ] gebruikersaudit: accounts, Super Users, MFA-dekking
  [ ] extensie-audit: deinstalleer het ongebruikte
  [ ] hersteloefening (elk 2e kwartaal) - noteer hersteltijd
  [ ] volledige crawl: links, redirects, titels, wezen
  [ ] prestaties vs referentie      [ ] overrides opschonen
  [ ] malwarescan + bestandsintegriteit (git / schone download)
  [ ] toegankelijkheid: toetsenbordronde + jooa11y-checker

JAARLIJKS (halve dag)
  [ ] hosting + PHP-roadmap         [ ] positie in Joomla-cyclus
  [ ] toegangsgegevens + API-tokens roteren
  [ ] DR-document nog waar? collega-herstelbaar?
  [ ] retentie vs privacybeleid     [ ] verlengingen in de agenda
  [ ] content opschonen             [ ] de vraag "anders herbouwen?"

ALTIJD
  een regel in het onderhoudslogboek per sessie
  elke controle eindigt in actie of gelogde beslissing
  stilte van automatisering = alarm
Naar boven

14. Samenvatting

Joomla-onderhoud is geen kennisprobleem - elke taak in dit artikel wordt elders in deze serie diepgaand uitgelegd. Het is een ritmeprobleem, en het ritme is leerbaar:

  • Dagelijks is van de automatisering: back-ups, taakplanner-taken, monitoring - met stilte behandeld als alarm.
  • Wekelijks is een kwartier: updates met het ritueel, back-upversheid, meldingen, mislukte logins, een rooktest.
  • Maandelijks leest trends: logs, Search Console, schijf, back-upgeneraties, de VEL.
  • Per kwartaal audits: gebruikers en MFA, extensies, de hersteloefening, een volledige crawl, prestaties tegen de referentie.
  • Jaarlijks is strategie: hosting- en versie-roadmaps, rotatie van toegangsgegevens, documentatie, retentie, opschonen.
  • Altijd: een logregel per sessie, acties in plaats van alleen controles, en terugkerende bevindingen gepromoveerd tot echte projecten.

De vijftien wekelijkse minuten zijn de hele truc. Sites die op dit ritme onderhouden worden, slaan de dramatische hoofdstukken van het troubleshooting-artikel vrijwel volledig over - hun problemen worden gevangen als notities in een maandelijkse controle, niet als storingen op een vrijdagavond.

En heeft jouw site de uitgestelde maanden al opgestapeld - versies achter, back-ups ongeverifieerd, accounts ongeauditeerd - dan is de weg terug een gestructureerde inhaalronde door precies deze checklists, grootste risico's eerst. Dat opzetten, en een ritme overdragen dat zichzelf in stand houdt, is een van de waardevolste halve dagen die een Joomla-specialist kan leveren: alles daarna zijn saaie weken, en dat is precies het doel.

Naar boven
Joomla onderhoudschecklist: taken van dagelijks tot jaarlijks
Peter Martin
Peter Martin
Joomla Specialist

Peter is Joomla specialist en Linux admin voor snelle, veilige en schaalbare websites.

Gerelateerde artikelen