1.7 KiB
1.7 KiB
WMS production baseline
This project is organised as a modular Laravel 13 WMS suite using nwidart-style modules.
Modules
Modules/Platform- companies, MPBA system administration, licence keys, Stripe payment records and tenant/licence middleware.Modules/Warehouse- tenant-owned warehouses and warehouse-specific validation rules.Modules/InternalApi- HMAC-authenticated API for secure communication between separated core/admin applications.
PostgreSQL
Use PostgreSQL 18 in production with HAProxy in front of Patroni-managed primary/replica nodes.
DB_CONNECTION=pgsql
DB_HOST=127.0.0.1
DB_PORT=6432
DB_DATABASE=wms_platform
DB_USERNAME=wms_app
DB_PASSWORD=change_me
Redis
Use Redis Sentinel for cache, queues and sessions.
CACHE_STORE=redis
SESSION_DRIVER=redis
QUEUE_CONNECTION=redis
REDIS_CLIENT=phpredis
MPBA system admin
Seeded account:
Email: mark.gregory@mpba.co.uk
Password: 987400Kmh
Company: MPBA Limited
MPBA Limited is marked as is_system_company = true; MPBA platform admins bypass licence checks.
Internal API signing
Internal callers must send:
X-WMS-Timestamp: ISO8601 timestamp
X-WMS-Signature: hash_hmac('sha256', timestamp + '.' + body, WMS_INTERNAL_API_KEY)
Requests older than 5 minutes are rejected.
Deployment sequence
composer install --no-dev --prefer-dist --optimize-autoloader
npm ci
npm run build
php artisan migrate --force
php artisan db:seed --force
php artisan config:cache
php artisan route:cache
php artisan view:cache
php artisan event:cache
php artisan queue:restart
php artisan octane:reload
Use rolling deployments behind HAProxy for zero downtime.