matab-panel/scripts/install.bat

76 lines
2.3 KiB
Batchfile

@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"