Files
WMS/docs-ha-production.md
T

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.