@echo off setlocal set "SCRIPTS_DIR=%~dp0" set "SCRIPTS_DIR=%SCRIPTS_DIR:~0,-1%" for %%F in ("%SCRIPTS_DIR%\..") do set "PROJECT_DIR=%%~fF" echo ============================================= echo MatabPanel - First Time Install echo ============================================= echo. echo Project folder: %PROJECT_DIR% echo. REM --- Find PHP (bundled first, then system fallbacks) --- set "PHP_EXE=" if exist "%SCRIPTS_DIR%\php\php.exe" ( set "PHP_EXE=%SCRIPTS_DIR%\php\php.exe" ) if not defined PHP_EXE ( for %%P in ( "C:\xampp\php\php.exe" "C:\php\php.exe" ) do ( if exist %%P set "PHP_EXE=%%~P" ) ) if not defined PHP_EXE ( powershell -NoProfile -Command ^ "if(Test-Path 'C:\wamp64\bin\php'){$v=Get-ChildItem 'C:\wamp64\bin\php' -Directory | Sort-Object Name | Select-Object -Last 1; if($v){Write-Host ($v.FullName+'\php.exe')}}" > "%TEMP%\phppath.txt" 2>nul set /p PHP_EXE=<"%TEMP%\phppath.txt" del "%TEMP%\phppath.txt" >nul 2>&1 ) if not exist "%PHP_EXE%" ( echo [ERROR] PHP not found! echo Bundled PHP not found in scripts\php\, and no system PHP detected. pause exit /b 1 ) echo [OK] PHP found: %PHP_EXE% echo. REM --- [1/3] storage:link --- echo [1/3] Creating storage link... cd /d "%PROJECT_DIR%" "%PHP_EXE%" artisan storage:link >nul 2>&1 if exist "%PROJECT_DIR%\public\storage" ( echo [OK] Storage link ready. ) else ( echo [WARN] Storage link may need admin rights. Run as Administrator if images don't show. ) echo. REM --- [2/3] Optimize Laravel --- echo [2/3] Optimizing Laravel cache... "%PHP_EXE%" artisan optimize >nul 2>&1 echo [OK] Done. echo. REM --- [3/3] Firewall rules for FTP --- echo [3/3] Adding firewall rules for FTP... netsh advfirewall firewall delete rule name="MatabPanel FTP" >nul 2>&1 netsh advfirewall firewall add rule name="MatabPanel FTP" protocol=TCP dir=in localport=2121 action=allow >nul 2>&1 netsh advfirewall firewall delete rule name="MatabPanel FTP Data" >nul 2>&1 netsh advfirewall firewall add rule name="MatabPanel FTP Data" protocol=TCP dir=in localport=49152-65534 action=allow >nul 2>&1 echo [OK] Firewall rules added. echo. REM --- [4/4] Autostart + Start server --- echo [4/4] Setting up autostart and starting server... call "%SCRIPTS_DIR%\setup-autostart.bat"