Statamic CMS¶
Toegang & Credentials¶
| Gegeven | Details |
|---|---|
| Officiële URL | statamic.com |
| Documentatie | statamic.dev |
Per-klant credentials
Control Panel-logins zijn per klantproject en staan in de betreffende klant-vault in 1Password — zie 1Password.
Introductie¶
Statamic is een modern, flexibel Content Management Systeem gebouwd op het Laravel framework. In tegenstelling tot traditionele database-gedreven CMS systemen, gebruikt Statamic een flat-file benadering waarbij content wordt opgeslagen in markdown en YAML bestanden. Dit maakt Statamic bijzonder geschikt voor versiecontrole met Git en zorgt voor uitstekende performance.
Bij Flooris gebruiken we Statamic voor verschillende klantprojecten vanwege de flexibiliteit, developer-friendly architectuur en de krachtige content modeling mogelijkheden. Het systeem biedt een intuïtieve Control Panel interface voor content editors, terwijl developers volledige controle behouden over de technische implementatie.
Belangrijkste kenmerken¶
- Flat-file architectuur - Content opgeslagen in markdown/YAML bestanden
- Git-friendly - Volledige versiecontrole van content en configuratie
- Laravel basis - Profiteert van het Laravel ecosysteem
- Live Preview - Real-time preview van content wijzigingen
- Multi-site - Ondersteuning voor meerdere sites binnen één installatie
- Asset management - Krachtige media bibliotheek met transformaties
- Form builder - Ingebouwde formulier functionaliteit
- SEO-vriendelijk - Uitgebreide SEO mogelijkheden
Officiële Resources¶
-
Officiële Documentatie
Volledige documentatie voor Statamic CMS
-
Statamic Peak
Starter kit voor nieuwe Statamic projecten (gebruikt bij Flooris)
-
Video Tutorials
Screencast series over Statamic
-
Community Forum
Statamic community discussies en support
Belangrijke documentatie pagina's¶
- Installation Guide - Installatie instructies
- Collections & Entries - Content structuur
- Blueprints - Content modeling
- Antlers Template Language - Template syntax
- Assets & Images - Media beheer
- Multi-Site - Multi-site configuratie
- Static Caching - Performance optimalisatie
Veelgebruikte Addons¶
Overzicht van Statamic-addons die bij Flooris regelmatig worden ingezet. Deze lijst groeit organisch mee met nieuwe projecten.
| Addon | Doel |
|---|---|
eminos/statamic-cloudflare-cache |
Cloudflare cache-purge integratie bij het publiceren van content |
withcandour/aardvark-seo / justkidding96/aardvark-seo |
SEO-veld/meta-management (titles, meta descriptions, canonicals, sitemap) |
stoffelio/statamic-turnstile |
Cloudflare Turnstile spamprotectie op formulieren |
algolia/algoliasearch-client-php |
Algolia search-integratie (samen met frontend package algoliasearch/vue-instantsearch) |
Cloudflare Turnstile: verplicht op contactformulieren
stoffelio/statamic-turnstile is een belangrijk onderdeel van elke Statamic-site met een contactformulier: het voorkomt dat formulieren worden leeggespamd door bots. Controleer bij nieuwe projecten en updates altijd of Turnstile actief is en of de site-/secret-keys geldig zijn — zie ook de Statamic update-procedure.
Waarom staan er twee vendor-namen bij aardvark-seo?
In verschillende projecten is de addon onder beide package-namen aangetroffen (withcandour/aardvark-seo en justkidding96/aardvark-seo). Check bij een nieuw of te updaten project altijd welke vendor in composer.json staat — behandel ze niet als inwisselbaar zonder dit te verifiëren.
Werkwijze: 2FA op de Control Panel¶
Twee-factor-authenticatie (2FA) op de Statamic Control Panel (/cp) is verplicht voor klantprojecten om accountovername na een gelekt wachtwoord te voorkomen.
-
2FA-addon controleren/installeren
- Statamic biedt sinds v4 ingebouwde 2FA-ondersteuning; controleer of dit al actief staat in het project.
- Is dit niet het geval, installeer en configureer de ingebouwde 2FA volgens de officiële Statamic documentatie.
-
2FA activeren per gebruiker
- Iedere CP-gebruiker (klant én Flooris-developers) richt 2FA zelf in via het eigen profiel: Control Panel → User → Two Factor Authentication.
- Gebruik een authenticator-app (bijv. 1Password, Google Authenticator) — geen SMS.
-
Recovery codes bewaren
- Sla de recovery codes op in 1Password onder de betreffende klant, niet lokaal of in een losse notitie.
-
Klant informeren
- Leg bij oplevering van een nieuwe Statamic-website of bij een update kort uit waarom 2FA verplicht is en hoe de klant dit zelf inricht voor nieuwe CP-gebruikers.
2FA is geen vervanging voor sterke wachtwoorden
Combineer 2FA altijd met een verplicht sterk wachtwoord — zie de wachtwoordeisen die Statamic standaard afdwingt in de CP.
Checklist: Nieuwe Deployment Uitrollen¶
Gebruik deze checklist wanneer je een bestaande Statamic site naar een nieuwe server/deployment migreert.
Voorbereiding & Backup¶
-
Screaming Frog analyse draaien (1)
- Crawl de huidige productie website
- Exporteer resultaten voor later vergelijk
- Documenteer eventuele SEO issues
-
Backup van website bestanden maken
- Volledige file backup inclusief Git repository
- Database backup (indien van toepassing)
- Environment file (
.env) backup
-
Backup uitpakken op locale MacBook
- Git historie bijwerken op GitHub
- Controleer of alle branches up-to-date zijn
- Push lokale wijzigingen naar remote
-
Git push naar GitHub
git add . git commit -m "Pre-migration backup" git push origin master
- Screaming Frog is een SEO crawler tool die helpt om de website structuur, links en SEO elementen te analyseren voor en na de migratie.
Server & User Setup (Ploi)¶
Ploi Server
Standaard Statamic server: FL09PLO-STA01
-
Server user aanmaken
- Gebruikersnaam: gebruik klantnaam (bijv.
priotec) - User toevoegen aan docker groep
- Gebruikersnaam: gebruik klantnaam (bijv.
-
User toevoegen aan docker groep
sudo usermod -a -G docker <user>
Ploi Website Configuratie¶
-
Ploi website inrichten
- Site domain:
www.{domeinnaam}.nl - Documentatie: How do I make my domain listen under www
- User: gebruik aangemaakte username (bijv.
priotec) - Software: Statamic
- Site domain:
-
Install Composer dependencies
- Via Ploi interface of handmatig:
composer install --no-interaction --prefer-dist --optimize-autoloader --no-dev
- Via Ploi interface of handmatig:
-
Environment file configureren
- Copy/paste
.envvanuit oude Forge-deployment naar Ploi site - Update waar nodig (APP_URL, cache drivers, etc.)
- Let op: Database credentials uitcommentariëren indien niet gebruikt
- Copy/paste
Deploy Script Configureren¶
- Ploi site deploy script inrichten
Configureer het volgende deploy script in Ploi (pas username en domain aan):
cd /home/priotec/www.priotec.nl
git pull origin master
composer install --no-interaction --prefer-dist --optimize-autoloader --no-dev
curl -o- https://raw.githubusercontent.com/flooris/package-builder/main/build.sh | bash -s production
php artisan cache:clear
php artisan view:clear
php artisan config:cache
php artisan route:cache
php artisan statamic:stache:warm
php artisan statamic:search:update --all
php artisan statamic:static:clear
php artisan statamic:assets:generate-presets
echo "" | sudo -S service php8.1-fpm reload
echo "🚀 Application deployed!"
Deploy Script Uitleg
git pull- Haalt laatste wijzigingen opcomposer install- Installeert PHP dependenciespackage-builder- Flooris custom build script voor frontend assetsartisancommands - Cache clearing en Statamic optimalisatiesphp-fpm reload- Herlaadt PHP service voor nieuwe code
Database & SSL Setup¶
-
Ploi database inrichten
Let op: Database meestal niet nodig
Voor standaard Statamic installaties is geen database nodig! Controleer of database credentials in
.envzijn uitgecommentarieerd:# DB_CONNECTION=mysql # DB_HOST=127.0.0.1 # DB_PORT=3306 # DB_DATABASE= # DB_USERNAME= # DB_PASSWORD= -
SSL certificaat inrichten via Cloudflare API
- Ploi configureren met Cloudflare API token
- Server toegang geven in persoonlijke Cloudflare API token
- SSL certificaat aanvragen via Ploi interface
Cloudflare API Token
Zie task comment screenshots voor specifieke configuratie stappen
-
HSTS header toevoegen aan NGINX configuratie
- Navigeer naar: Servers / FL09PLO-STA01 / {site-domain} / Manage / NGINX
- Voeg de volgende regel toe aan de NGINX configuratie:
# Add HSTS header add_header Strict-Transport-Security "max-age=63072000; includeSubdomains; preload";HSTS Security
HTTP Strict Transport Security (HSTS) zorgt ervoor dat browsers alleen via HTTPS verbinden met de site. Dit voorkomt man-in-the-middle aanvallen en verbetert de security score.
DNS Migratie¶
-
DNS A record aanpassen via Cloudflare
Update het A record van het oude server IP naar het nieuwe Ploi server IP:
Omschrijving IP Address Server Oud (Forge) 162.55.90.59FL09FOR-FLO05 ❌ Nieuw (Ploi) 138.199.228.81FL09PLO-STA01 ✅ - Log in op Cloudflare Dashboard
- Selecteer het juiste domein
- Ga naar DNS sectie
- Update het A record voor
@enwww - Zet DNS propagatie op minimale TTL (tijdens migratie)
Verificatie & Testing¶
-
Screaming Frog analyse nogmaals draaien
- Crawl de nieuwe deployment
- Vergelijk met eerdere analyse
- Controleer op:
- Broken links
- Redirect chains
- Missing meta descriptions
- 404 errors
- Canonical issues
-
Functionele tests uitvoeren
- Homepage laadt correct
- Navigatie werkt
- Formulieren werken
- Assets (afbeeldingen) laden
- Zoekfunctionaliteit (indien aanwezig)
- Control Panel toegankelijk
Administratie & Documentatie¶
-
Flooris spreadsheet actualiseren
- Update "Klanten en omgevingen" spreadsheet
- Nieuwe server details toevoegen
- Oude deployment markeren als uitgefaseerd
-
Airtable actualiseren
- Open Airtable Websites record
- Update server informatie
- Update URL's indien gewijzigd
- Update deployment status
-
Periodieke facturatie controleren
- Controleer MoneyBird recurring invoices
- Update facturatie indien server hosting wijzigt
- Voeg nieuwe server kosten toe indien nodig
Backup & Cleanup¶
-
Site (file) backup inrichten
- Configureer Ploi backup naar Hetzner Storage Box
- Test backup functionaliteit
- Stel backup schema in (dagelijks/wekelijks)
-
Oude Forge server cleanup
- Verwijder website vanaf oude Forge server
- URL: Forge Servers
- Let op: Alleen verwijderen na succesvolle migratie en testing!
- Bewaar backups van oude deployment minimaal 30 dagen
- Tip: Tijdens de migratie periode kan je deployments uitschakelen door de volgende lijn bovenin het deploy script te zetten
echo "⚠️ This environment is no longer in use, Go to https://ploi.io/panel/servers/XXXXX/sites/XXXXXX instead"; exit 1- Dit commando forceert dat de deployment faalt, waardoor de gebruiker gaat kijken naar de waarom en ziet dan de waarschuwing van de migratie.
Veelgestelde Vragen¶
Wat is het verschil tussen Forge en Ploi?
Beide zijn server management platformen voor Laravel/PHP applicaties. Bij Flooris migreren we van Forge naar Ploi voor:
- Betere Docker integratie
- Lagere kosten
- Modernere interface
- Betere team collaboration features
Wanneer heb ik een database nodig bij Statamic?
Een database is alleen nodig wanneer je:
- Formulier submissions wilt opslaan in database (standaard: file-based)
- Custom Laravel models gebruikt
- Specifieke database-driven functionaliteit hebt toegevoegd
De meeste Statamic installaties bij Flooris draaien volledig flat-file zonder database.
Hoe kan ik de Control Panel benaderen?
De Statamic Control Panel is beschikbaar op: https://jouwdomein.nl/cp
Login credentials zijn opgeslagen in 1Password onder de betreffende klant.
Wat doet de Flooris package-builder?
De package-builder is een Flooris custom build script dat:
- Frontend assets compileert (CSS/JS)
- Statamic Peak specifieke builds uitvoert
- Productie-optimalisaties toepast
- Consistente build process garandeert over alle projecten
Gerelateerde Documentatie¶
- Laravel Forge Migratie Guide - Algemene Forge naar Ploi migratie
- Cloudflare DNS Configuratie - DNS configuratie details
- Hetzner Storage Box Setup - Backup configuratie
Hulp nodig?
Voor vragen over Statamic implementaties, neem contact op met het development team via Slack #dev-general