Skip to content

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

Belangrijke documentatie pagina's

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
    

  1. 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
  • User toevoegen aan docker groep

    sudo usermod -a -G docker <user>
    

Ploi Website Configuratie

  • Ploi website inrichten

  • Install Composer dependencies

    • Via Ploi interface of handmatig:
      composer install --no-interaction --prefer-dist --optimize-autoloader --no-dev
      
  • Environment file configureren

    • Copy/paste .env vanuit oude Forge-deployment naar Ploi site
    • Update waar nodig (APP_URL, cache drivers, etc.)
    • Let op: Database credentials uitcommentariëren indien niet gebruikt

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 op
  • composer install - Installeert PHP dependencies
  • package-builder - Flooris custom build script voor frontend assets
  • artisan commands - Cache clearing en Statamic optimalisaties
  • php-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 .env zijn 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.59 FL09FOR-FLO05 ❌
    Nieuw (Ploi) 138.199.228.81 FL09PLO-STA01 ✅
    1. Log in op Cloudflare Dashboard
    2. Selecteer het juiste domein
    3. Ga naar DNS sectie
    4. Update het A record voor @ en www
    5. 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

  • Periodieke facturatie controleren

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

Hulp nodig?

Voor vragen over Statamic implementaties, neem contact op met het development team via Slack #dev-general