- Departments + cross-department transfer workflow - Role-based closing (staff→resolved, manager→closed) with proof_of_resolution - Private file storage with collection system + temporary signed URLs - Dashboard: resolved tickets table, stats, handler performance bar chart - Spatie RBAC (admin/manager/staff) - Notifications: TicketTransferred, TicketClosed (database + mail) - Pest tests: 8 tests, 21 assertions - Docker production-ready (Dockerfile + compose + entrypoint)
20 lines
528 B
Bash
20 lines
528 B
Bash
#!/bin/sh
|
|
set -e
|
|
|
|
if [ ! -f /var/www/html/database/database.sqlite ]; then
|
|
touch /var/www/html/database/database.sqlite
|
|
chown www-data:www-data /var/www/html/database/database.sqlite
|
|
fi
|
|
|
|
if [ -z "$APP_KEY" ]; then
|
|
php artisan key:generate --force --no-interaction
|
|
fi
|
|
|
|
php artisan migrate --force --no-interaction
|
|
|
|
php artisan storage:link --force --no-interaction 2>/dev/null || true
|
|
|
|
chown -R www-data:www-data /var/www/html/storage /var/www/html/bootstrap/cache
|
|
|
|
exec /usr/bin/supervisord -c /etc/supervisord.conf
|