Caution
This template is in very early stage and not recommended to use in production.
A Laravel template with MySQL database, Laravel Queues and Scheduler support. This template sits between the basic free template and the Pro template, offering essential production features without the full Pro feature set.
| Feature | Included |
|---|---|
| MySQL 8.0 Database | ✅ |
| Laravel Queues (database driver) | ✅ |
| Queue Worker Container | ✅ |
| Task Scheduling Container | ✅ |
| Traefik Reverse Proxy | ✅ |
| Zero-Downtime Deployments | ✅ |
| Automated SSL (Let's Encrypt) | ✅ |
| Mailpit (SMTP Trapping) | ✅ |
| Local Development with Hot Reload | ✅ |
- Redis
- Laravel Horizon
- Laravel Reverb
- GitHub Actions CI/CD (pre-configured)
- Local HTTPS/SSL (trusted certs)
- PostgreSQL/MariaDB options
Make sure you have Spin installed: https://serversideup.net/open-source/spin/docs
spin new webjackl/spin-template-laravel my-projectcd my-project
spin upspin exec php artisan migrateWhen you run spin up, the following containers will start:
| Service | Port | Description |
|---|---|---|
| php | - | Laravel application (via Traefik) |
| mysql | 3306 | MySQL 8.0 database |
| queue | - | Queue worker (php artisan queue:work) |
| scheduler | - | Task scheduler (php artisan schedule:work) |
| traefik | 80, 443 | Reverse proxy |
| node | - | Node.js for asset compilation |
| mailpit | 8025 | Email testing UI |
The template configures MySQL with these defaults:
DB_CONNECTION=mysql
DB_HOST=mysql
DB_PORT=3306
DB_DATABASE=laravel
DB_USERNAME=laravel
DB_PASSWORD=secretQueues use the database driver by default:
QUEUE_CONNECTION=database# Provision your server (first time)
spin provision production
# Deploy your application
spin deploy productionGPL-3.0-or-later - Same as Spin