6.0 KiB
UNIT3D v8.x.x on MacOS with Laravel Sail and PhpStorm
A guide by HDVinnie
This guide is designed for setting up UNIT3D, a Laravel application, leveraging Laravel Sail on MacOS.
Warning: This setup guide is intended for local development environments only and is not suitable for production deployment.
Modifying .env and Secure Headers for Non-HTTPS Instances
For local development, it's common to use HTTP instead of HTTPS. To prevent mixed content issues, follow these steps:
-
Modify the
.envConfig:- Open your
.envfile located in the root directory of your UNIT3D project. - Find the
SESSION_SECURE_COOKIEsetting and change its value tofalse. This action disables secure cookies, which are otherwise required for HTTPS.
SESSION_SECURE_COOKIE=false - Open your
-
Adjust the Secure Headers in
config/secure-headers.php:- Navigate to the
configdirectory and open thesecure-headers.phpfile. - To disable the
Strict-Transport-Securityheader, locate thehstssetting and change its value tofalse.
'hsts' => false,- Next, locate the Content Security Policy (CSP) configuration to adjust it for HTTP. Disable the CSP to prevent it from blocking content that doesn't meet the HTTPS security requirements.
'enable' => env('CSP_ENABLED', false), - Navigate to the
Prerequisites
Installing Docker Desktop
Once installed, launch Docker Desktop
Installing GitHub Desktop
Once installed, launch GitHub Desktop
Installing PHPStorm
Once installed, launch PHPStorm
Step 1: Clone the Repository
Firstly, clone the UNIT3D repository to your local environment by visiting UNIT3D-Community-Edition Repo. Then click the blue colored code button and select Open with Github Desktop. Once Github Desktop is open set you local path to clone to like /Users/HDVinnie/Documents/Personal/UNIT3D-Community-Edition
Step 2: Open The Project In PHPStorm
Within PHPStorm goto File and then click Open. Select the local path you just did like /Users/HDVinnie/Documents/Personal/UNIT3D-Community-Edition.
The following commands are run in PHPStorm. Can do so by clicking Tools->Run Command.
Step 3: Start Sail
Initialize the Docker environment using Laravel Sail:
./vendor/bin/sail up -d
Step 4: Composer Dependency Installation
./vendor/bin/sail composer install
Step 5: Bun Dependency Install and Compile Assets
./vendor/bin/sail bun install
./vendor/bin/sail bun run build
Step 6: Database Migrations and Seeders
For database initialization with sample data, apply migrations and seeders:
./vendor/bin/sail artisan migrate:fresh --seed
Caution: This operation will reset your database and seed it with default data. Exercise caution in production settings.
Step 7: Database Preparation (If want to use a production database backup locally)
Initial Database Loading
Prepare your database with the initial schema and data. Ensure you have a database dump file,
e.g., prod-site-backup.sql.
MySQL Data Importation
To import your database dump into MySQL within the local environment, use:
./vendor/bin/sail mysql -u root -p unit3d < prod-site-backup.sql
Note: For this to work properly you must set the APP_KEY value in your local .env file to match you prod APP_KEY value.
Step 8: Application Cache Configuration
Optimize the application's performance by setting up the cache:
sail artisan set:all_cache
Step 9: Visit Local Instance
Open your browser and visit localhost. Enjoy!
Additional Notes
- Permissions: Exercise caution with
sudoto avoid permission conflicts, particularly for Docker commands requiring elevated access.
Appendix: Sail Commands for UNIT3D
This section outlines commands for managing and interacting with UNIT3D using Laravel Sail.
Sail Management
-
Start Environment:
./vendor/bin/sail up -dStarts Docker containers in detached mode.
-
Stop Environment:
./vendor/bin/sail down -vStops and removes Docker containers.
-
Restart Environment:
./vendor/bin/sail restartApplies changes by restarting Docker environment.
Dependency Management
-
Install Composer Dependencies:
./vendor/bin/sail composer installInstalls PHP dependencies defined in
composer.json. -
Update Composer Dependencies:
./vendor/bin/sail composer updateUpdates PHP dependencies defined in
composer.json.
Laravel Artisan
-
Run Migrations:
./vendor/bin/sail artisan migrateExecutes database migrations.
-
Seed Database:
./vendor/bin/sail artisan db:seedSeeds database with predefined data.
-
Refresh Database:
./vendor/bin/sail artisan migrate:fresh --seedResets and seeds database.
-
Cache Configurations:
./vendor/bin/sail artisan set:all_cacheClears and caches configurations for performance.
NPM and Assets
-
Install Bun Dependencies:
./vendor/bin/sail bun installInstalls Node.js dependencies.
-
Compile Assets:
./vendor/bin/sail bun run buildCompiles CSS and JavaScript assets.
Database Operations
- MySQL Interaction:
Opens MySQL CLI for database interaction.
./vendor/bin/sail mysql -u root -p
Queue Management
- Restart Queue Workers:
Restarts queue workers after changes.
./vendor/bin/sail artisan queue:restart
Troubleshooting
-
View Logs:
./vendor/bin/sail logsDisplays Docker container logs.
-
PHPUnit (PEST) Tests:
./vendor/bin/sail artisan testRuns PEST tests for application.