Local Development
Want to contribute to Straden or run it from source? This page covers the development setup.
Stack
| Layer | Technology |
|---|---|
| Backend | PHP 8.4, Laravel 13 |
| UI | Livewire 4, Tailwind CSS, Monaco editor |
| AI | Laravel AI SDK, Laravel MCP |
| Queues | Laravel Horizon on Redis |
| Realtime | Laravel Reverb |
| Auth | Laravel Fortify (2FA, passkeys), Sanctum (API tokens) |
| Load engine | k6 v2 |
| Tests | Pest 4, PHPStan (Larastan), Pint |
Prerequisites
- PHP 8.4 with
pdo_pgsqlorpdo_sqlite,redis,pcntl,intl,zipandbcmath - Composer and Node.js 24
- Redis
- InfluxDB 1.8 on port 8086 with a
k6database - The
k6binary on yourPATH
The quickest way to get the services is Docker:
BASHdocker run -d --name redis -p 6379:6379 redis:7-alpine docker run -d --name influxdb -p 8086:8086 -e INFLUXDB_DB=k6 influxdb:1.8
Setup
BASHgit clone https://github.com/kwasii1/straden && cd straden composer run setup
composer run setup installs dependencies, copies .env.example, generates APP_KEY, runs migrations and builds the frontend. The example environment uses SQLite.
Running
BASHcomposer run dev
This starts, in parallel:
- the web server on http://localhost:8001
- the scheduler (
schedule:work) - Horizon (
horizon:listen) - Vite with hot reload
- log tailing (Pail)
- the MCP inspector
Reverb isn't included, so run it in another terminal for live updates:
BASHphp artisan reverb:start
Run php artisan straden:bootstrap once to register the built-in InfluxDB connector, then open the app and complete the setup wizard.
Tests and code style
BASHcomposer test
This runs the Pint style check, PHPStan and the Pest test suite. To fix style issues automatically:
BASHcomposer lint
Building the Docker image
BASHcd deploy docker compose -f compose.yaml -f compose.build.yaml up -d --build
The multi-stage Dockerfile installs Composer dependencies, builds assets with Node, copies the pinned k6 binary from grafana/k6 and produces a FrankenPHP runtime image.