Skip to main content

Wat is Sail

Laravel Sail is een lichtgewicht command-line interface voor het werken met de Docker-ontwikkelomgeving van Laravel. Je kunt er een Laravel-applicatie met PHP, MySQL en Redis mee opzetten, zonder voorkennis van Docker. Het hart van Sail bestaat uit het bestand compose.yaml in de projectroot en het sail-script. Het sail-script biedt handige CLI-methoden om de Docker-containers uit compose.yaml te bedienen. Laravel Sail werkt op macOS, Linux en Windows (via WSL2).
In Laravel 13 is Sail niet langer de standaard ontwikkelomgeving. laravel/sail is verwijderd uit de composer.json van het skeleton; in plaats daarvan is er het commando composer setup. De standaard is een opzet met lokale PHP + SQLite.
Heb je Docker-containers nodig, dan kun je Sail nog steeds installeren en gebruiken.
Sail is een tool die uitsluitend bedoeld is voor lokale ontwikkeling en niet voor productiegebruik. Zorg voor productie voor een eigen, passende Docker-/cloudconfiguratie.

Installatie

Installeren in een bestaand project

Installeer het pakket met Composer.
1

Het Sail-pakket toevoegen

2

Configuratiebestanden publiceren

Voer het Artisan-commando sail:install uit. Dit commando publiceert compose.yaml naar de projectroot en voegt de benodigde omgevingsvariabelen toe aan .env.
Je kunt interactief services kiezen. Selecteer bijvoorbeeld MySQL, Redis en Mailpit.
3

Sail starten

Bij de eerste start duurt het downloaden van de Docker-images even. Daarna is je applicatie bereikbaar op http://localhost.
Gebruik je Docker Desktop for Linux, voer dan docker context use default uit om de default-context te gebruiken. Krijg je in de container bestandsrechtenfouten, stel dan de omgevingsvariabele SUPERVISOR_PHP_USER in op root.

Extra services toevoegen

Om services toe te voegen aan een bestaande Sail-installatie gebruik je het commando sail:add.

Devcontainers gebruiken

Wil je ontwikkelen binnen een Devcontainer, gebruik dan de optie --devcontainer.

Configuratie

Een shell-alias instellen

Standaard moet je telkens ./vendor/bin/sail intypen. Stel je een shell-alias in, dan volstaat het om alleen sail te typen.
Voeg dit toe aan ~/.zshrc of ~/.bashrc en herstart je shell.
Nadat je de alias hebt ingesteld, kun je in alle commandovoorbeelden van deze documentatie sail typen in plaats van ./vendor/bin/sail.

Images opnieuw bouwen

Wil je je pakketten up-to-date houden, bouw dan de images opnieuw.

Starten en stoppen

Om alle Docker-containers uit compose.yaml te starten gebruik je het up-commando.
Om te stoppen gebruik je het stop-commando, of druk je op Ctrl + C als de containers op de voorgrond draaien.

Opstartflow


Commando’s uitvoeren

Met Sail draait je applicatie in een Docker-container. PHP-commando’s, Artisan-commando’s, Composer-commando’s en Node/NPM-commando’s voer je allemaal uit via sail.
De commando’s php artisan, composer en npm die je vaak in de officiële Laravel-documentatie ziet, voer je in een Sail-omgeving uit met sail ervoor.

PHP-commando’s

Composer-commando’s

Artisan-commando’s

Node/NPM-commando’s

Container-CLI (shell)

Je kunt ook rechtstreeks een Bash-sessie in de container openen.
Om een Tinker-sessie te openen gebruik je dit commando:

Services

Een overzicht van de services die Sail biedt. Je selecteert ze bij de installatie met sail:install.

MySQL

Standaard opgenomen in compose.yaml. De data wordt bewaard in een Docker Volume. Bij de eerste start worden automatisch twee databases aangemaakt: één voor de app en één voor testing. Stel DB_HOST in .env in op mysql zodat je app er verbinding mee kan maken.
Om vanaf je lokale machine te verbinden gebruik je een GUI-tool zoals TablePlus. De standaardpoort is 3306.

Redis

Stel REDIS_HOST in .env in op redis zodat je app toegang heeft tot Redis.

Valkey

Wil je Valkey gebruiken als alternatief voor Redis, stel dan REDIS_HOST in op valkey.

Mailpit

Vangt e-mails op die tijdens lokale ontwikkeling worden verstuurd en toont ze in een web-UI.
Terwijl Sail draait, is de web-UI van Mailpit bereikbaar op http://localhost:8025.

Meilisearch / Typesense

Integreer met Laravel Scout om full-text zoeken uit te proberen.
  • Meilisearch: MEILISEARCH_HOST=http://meilisearch:7700
  • Typesense: TYPESENSE_HOST=typesense, TYPESENSE_PORT=8108 enzovoort

RustFS (S3-compatibele opslag)

Ben je van plan in productie Amazon S3 te gebruiken, dan kun je lokaal S3-compatibele opslag emuleren.

Tests uitvoeren

sail test komt intern overeen met sail artisan test. Er is standaard een aparte testing-database, zodat je ontwikkeldata onaangetast blijft.

Laravel Dusk

Met Sail voer je Dusk-browsertests uit zonder Selenium lokaal te installeren. Verwijder de commentaartekens bij de Selenium-service in compose.yaml.
Gebruik op Apple Silicon (M1/M2/M3) het image selenium/standalone-chromium.
Voer daarna de Dusk-tests uit.

PHP-/Node-versies

De PHP-versie wijzigen

Wijzig de build.context van de laravel.test-container in compose.yaml.
Bouw na de wijziging het image opnieuw.

Extra PHP-extensies

De runtime-images van Sail bevatten de gangbare PHP-extensies. Heeft je applicatie extra extensies nodig, dan kun je aan de laravel.test-service in compose.yaml het build-argument PHP_EXTENSIONS toevoegen (gescheiden door spaties) zodat ze tijdens het bouwen van het image worden geïnstalleerd.
Bouw na het bijwerken van compose.yaml het containerimage opnieuw.

De Node-versie wijzigen


Je site publiekelijk delen

Voor previews voor collega’s of het testen van webhooks kun je je site tijdelijk publiek toegankelijk maken.
Er wordt een willekeurige laravel-sail.site-URL uitgegeven. Stel in bootstrap/app.php de vertrouwde proxy’s in zodat de URL-generatiehelpers correct werken.
Je kunt ook een subdomein opgeven.

Xdebug

Inschakelen

Publiceer eerst de configuratiebestanden met sail:publish en voeg daarna het volgende toe aan .env.
Controleer of het gepubliceerde php.ini-bestand de volgende instelling bevat.
Bouw na de wijziging het image opnieuw.

CLI-debugging

Browser-debugging

Voor de stappen om een debugsessie vanuit de browser te starten, zie de officiële Xdebug-documentatie. Gebruik je PhpStorm, dan is de configuratie van Zero-configuration debugging handig.
Sail serveert je app via artisan serve. XDEBUG_CONFIG en XDEBUG_MODE worden pas geaccepteerd vanaf Laravel 8.53.0. In oudere versies werkt de debugverbinding niet.

Aanpassen

Om de Dockerfiles en configuratiebestanden van Sail aan te passen publiceer je ze met het commando sail:publish.
Na het publiceren staan de Dockerfiles in de map docker/. Bouw na je wijzigingen de containers opnieuw.

Verschillen met productie

Sail is een omgeving die uitsluitend bedoeld is voor lokale ontwikkeling en niet voor productiegebruik. Overweeg voor Docker-deployments naar productie diensten zoals Laravel Cloud, Forge of Ploi, of een eigen Docker Compose-/Kubernetes-configuratie.
De belangrijkste verschillen tussen Sail en productie op een rij:
Laatst gewijzigd op 6 september 2026