Skip to main content

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_SETUPcd /Users/gpublica/workspace/pla/rondine && composer install
  • NEEDS_ENVcd /Users/gpublica/workspace/pla/rondine && cp .env.example .env && php artisan key:generate
  • NEEDS_DBcd /Users/gpublica/workspace/pla/rondine && touch database/database.sqlite && php artisan migrate && php artisan db:seed
  • NEEDS_NPMcd /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:

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