Operations
Minimal vs full stack
Cloners can run a minimal stack without Redis, a full stack with Herd Redis/Reverb/Horizon/Pulse, or the same full stack via Docker Compose (no Herd).
| Minimal | Full (Herd) | Full (Docker Compose) | |
|---|---|---|---|
| Redis | Optional / off | Required (guide) | redis service in compose.yaml |
| Queue | QUEUE_CONNECTION=database | QUEUE_CONNECTION=redis + Horizon | horizon service |
| Broadcast | BROADCAST_CONNECTION=log | BROADCAST_CONNECTION=reverb + Reverb | reverb on host :8081 (avoids Herd :8080) |
| Notifications UI | 60s poll only (realtime off) | Echo push on private channel; no 60s poll while connected | Same as full |
| Presence / avatar WS dot | Offline / “Realtime off” | Presence online + avatar ConnectionDot | Same as full |
| Pulse | Off or storage ingest | Redis ingest + pulse:work (Pulse) | pulse service |
| Dashboard Health | Empty / unavailable Pulse & Horizon cards | Native Pulse + Horizon metrics | Same as full |
| How to start | composer run dev | Herd + Horizon + Pulse (below) | cp .env.docker.example .env && docker compose up --build → :8000 |
Prefer one local path per checkout: Herd/bare-metal or Docker Compose. Compose overrides APP_URL / DB hosts via COMPOSE_* so a leftover Herd .env does not break containers — Installation — Docker.
Bare-metal / VPS production without Compose: Deployment. Production without Redis: Production without Redis. Docker production image: Deployment — Docker.
Processes (full local with Herd)
Herd already serves the site and (with Pro) Reverb on :8080. Besides Vite / Pail / optional artisan serve:
| Process | Required? |
|---|---|
php84 artisan horizon | Yes — Redis queues + Health Horizon cards |
php84 artisan pulse:work | Yes — Pulse aggregates for Health |
| Herd Reverb service | Yes for Echo — already running; match .env credentials |
php artisan reverb:start | Only if not using Herd Reverb (standalone). Conflicts on :8080 if both run |
php84 artisan horizon
php84 artisan pulse:work
composer run dev:full also starts reverb:start for non-Herd setups. With Herd Reverb up, run Horizon + Pulse yourself (or stop Herd’s Reverb before using dev:full).
.env.example blocks
See commented sections in externa-core/.env.example and Environment variables. Herd Reverb defaults: REVERB_APP_ID=1001, REVERB_APP_KEY=laravel-herd, REVERB_APP_SECRET=secret, host 127.0.0.1, port 8080.