Rondine Local Dev
Project path: /Users/gpublica/workspace/pla/rondine
When Activated
Execute the following steps automatically. Do not ask — just run them.
Step 1: Check State
cd /Users/gpublica/workspace/pla/rondine
# Check if vendor exists (composer installed?)
test -d vendor && echo "VENDOR_OK" || echo "NEEDS_SETUP"
# Check if .env exists
test -f .env && echo "ENV_OK" || echo "NEEDS_ENV"
# Check if DB exists and has tables
test -f database/database.sqlite && php artisan migrate:status 2>&1 | head -5 || echo "NEEDS_DB"
# Check if node_modules exists
test -d node_modules && echo "NODE_OK" || echo "NEEDS_NPM"
Step 2: Fix What's Missing
Based on Step 1 output:
- NEEDS_SETUP →
cd /Users/gpublica/workspace/pla/rondine && composer install - NEEDS_ENV →
cd /Users/gpublica/workspace/pla/rondine && cp .env.example .env && php artisan key:generate - NEEDS_DB →
cd /Users/gpublica/workspace/pla/rondine && touch database/database.sqlite && php artisan migrate && php artisan db:seed - NEEDS_NPM →
cd /Users/gpublica/workspace/pla/rondine && npm install && npm run build
If everything is OK, skip to Step 3.
Step 3: Start Dev Server
cd /Users/gpublica/workspace/pla/rondine && composer dev
Run this in background. It starts 4 concurrent processes:
- server → http://localhost:8000
- queue → background jobs
- logs → pail log viewer
- vite → hot reload
Step 4: Confirm Running
Wait 5 seconds, then:
curl -s -o /dev/null -w "%{http_code}" http://localhost:8000/en
Expected: 200. If not, check the server output.
Step 5: Report
Tell the user:
- Server: http://localhost:8000/en
- Admin: http://localhost:8000/admin
- API: http://localhost:8000/api/v1/releases (Bearer token: value of API_KEY in .env)
API Testing
API key from .env (API_KEY, default test123). All requests need Authorization: Bearer {API_KEY}.
Releases
# List
curl -s http://localhost:8000/api/v1/releases -H "Authorization: Bearer test123" | jq
# Create draft
curl -s -X POST http://localhost:8000/api/v1/releases \
-H "Authorization: Bearer test123" \
-H "Content-Type: application/json" \
-d @/tmp/release.json | jq
# Publish
curl -s -X POST http://localhost:8000/api/v1/releases/{id}/publish \
-H "Authorization: Bearer test123" | jq
# Delete
curl -s -X DELETE http://localhost:8000/api/v1/releases/{id} \
-H "Authorization: Bearer test123"
Changelog
Same pattern at /api/v1/changelog.
Fresh Reset
If the user asks to reset the DB or start fresh:
cd /Users/gpublica/workspace/pla/rondine
rm -f database/database.sqlite
touch database/database.sqlite
php artisan migrate
php artisan db:seed
Run Tests
cd /Users/gpublica/workspace/pla/rondine && php artisan test
Filter: php artisan test --filter=ReleaseTest
Lint
cd /Users/gpublica/workspace/pla/rondine && ./vendor/bin/pint