- Laravel 12 REST API starter, ready for develop and customization.
- Dockerized environment: PHP-FPM , Nginx, MySQL, phpMyAdmin, and Mailhog.
- Easy setup with Docker Compose.
- Postman API documentation link for quick reference.
| Service | Description | Ports | Healthcheck |
|---|---|---|---|
| app | PHP-FPM container for Laravel | - | Yes (depends on DB) |
| nginx | Web server serving the application | 80:80 | - |
| database | MySQL 8.0 database | 3306:3306 | Yes |
| phpmyadmin | Database management UI | 8888:80 | Yes (depends on DB) |
| mailpit | Email testing tool (SMTP + web UI) | 1025:1025, 8025:8025 | Yes |
git clone git@github.com:supravatm/laravel-v12-api-starter.git
cd laravel-v12-api-starterdocker run --rm -v "$(pwd)":/app composer installUpdate your .env file for database credential:
DB_CONNECTION=mysql
DB_HOST=database
DB_PORT=3306
DB_DATABASE=database
DB_USERNAME=user
DB_PASSWORD=passworddocker-compose up -dNote: Some containers wait for the database service to be healthy before starting.
Run the following initialization commands:
docker-compose exec app php artisan key:generate
docker-compose exec app php artisan optimize
docker-compose exec app php artisan session:table
docker-compose exec app php artisan migrate
docker-compose exec app php artisan cache:clear- App (Nginx): http://localhost
- phpMyAdmin: http://localhost:8888
- Use DB credentials from your
.envfile.
- Use DB credentials from your
- Mailpit UI: http://localhost:8025
- SMTP:
localhost:1025(for development email delivery)
- SMTP:
Mailpit is use for email testing. It stores messages and provides a web interface to view sent emails.
No extra configuration needed for Laravel; just set the following in your .env:
MAIL_MAILER=smtp
MAIL_HOST=mailpit
MAIL_PORT=1025
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=nullComplete REST API Documentation can be found here
- Ensure Docker Desktop (or Docker Engine) is running.
- If containers fail to start, use
docker-compose logsfor details. - Database and phpMyAdmin may take a moment to become healthy.

