startup.sh 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. #!/bin/bash
  2. # Startup script for the inventory management container
  3. echo "Starting Inventory Management System..."
  4. # Check if database is available
  5. echo "Waiting for database connection..."
  6. while ! mysqladmin ping -h"$DB_HOST" -u"$DB_USER" -p"$DB_PASS" --silent; do
  7. echo "Database not ready, waiting..."
  8. sleep 2
  9. done
  10. echo "Database is ready!"
  11. # Create uploads directory if it doesn't exist
  12. mkdir -p /var/www/html/uploads
  13. # Set proper permissions for uploads directory
  14. chown -R www-data:www-data /var/www/html/uploads
  15. chmod -R 755 /var/www/html/uploads
  16. # Create necessary directories for file uploads
  17. mkdir -p /var/www/html/uploads/documents
  18. mkdir -p /var/www/html/uploads/images
  19. mkdir -p /var/www/html/uploads/temp
  20. # Set permissions for subdirectories
  21. chown -R www-data:www-data /var/www/html/uploads/*
  22. chmod -R 755 /var/www/html/uploads/*
  23. # Check if .htaccess exists, create if not
  24. if [ ! -f /var/www/html/.htaccess ]; then
  25. echo "Creating .htaccess file..."
  26. cat > /var/www/html/.htaccess << EOF
  27. # Enable URL rewriting
  28. RewriteEngine On
  29. # API endpoints
  30. RewriteCond %{REQUEST_FILENAME} !-f
  31. RewriteCond %{REQUEST_FILENAME} !-d
  32. RewriteRule ^api/(.*)$ api/$1.php [L]
  33. # Frontend routes (for SPA)
  34. RewriteCond %{REQUEST_FILENAME} !-f
  35. RewriteCond %{REQUEST_FILENAME} !-d
  36. RewriteRule ^(.*)$ index.html [L]
  37. # Security headers
  38. <IfModule mod_headers.c>
  39. Header always set X-Frame-Options "SAMEORIGIN"
  40. Header always set X-Content-Type-Options "nosniff"
  41. Header always set X-XSS-Protection "1; mode=block"
  42. Header always set Referrer-Policy "strict-origin-when-cross-origin"
  43. </IfModule>
  44. # PHP settings
  45. php_value upload_max_fileSize ${UPLOAD_MAX_SIZE:-10M}
  46. php_value post_max_size ${UPLOAD_MAX_SIZE:-10M}
  47. php_value max_execution_time 300
  48. EOF
  49. chown www-data:www-data /var/www/html/.htaccess
  50. fi
  51. # Display company information
  52. echo "==============================================="
  53. echo "Company: $(getenv 'COMPANY_NAME' 'Inventory Management')"
  54. echo "Email: $(getenv 'COMPANY_EMAIL' 'info@company.com')"
  55. echo "Phone: $(getenv 'COMPANY_PHONE' '+358 123 456 789')"
  56. echo "==============================================="
  57. echo "Starting Apache..."
  58. exec apache2-foreground