matab-panel/scripts/setup-autostart.bat

39 lines
2.1 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 === MatabPanel Autostart Setup ===
echo.
echo [1/4] Opening firewall ports...
netsh advfirewall firewall delete rule name="Matab Web 8000" >nul 2>&1
netsh advfirewall firewall delete rule name="Matab FTP 2121" >nul 2>&1
netsh advfirewall firewall add rule name="Matab Web 8000" dir=in action=allow protocol=TCP localport=8000 >nul
netsh advfirewall firewall add rule name="Matab FTP 2121" dir=in action=allow protocol=TCP localport=2121 >nul
echo Firewall rules added for ports 8000 and 2121.
echo.
echo [2/4] Registering web server autostart...
set "VBS_PATH=%SCRIPTS_DIR%\start-server.vbs"
powershell -NoProfile -Command "$vbs='%VBS_PATH%'; $startup=[Environment]::GetFolderPath('Startup'); $s=(New-Object -COM WScript.Shell).CreateShortcut($startup+'\MatabPanel.lnk'); $s.TargetPath='wscript.exe'; $s.Arguments=[char]34+$vbs+[char]34; $s.WindowStyle=7; $s.Save(); Write-Host ('Registered: '+$startup+'\MatabPanel.lnk')"
echo.
echo [3/4] Registering FTP server autostart...
set "FTP_VBS=%SCRIPTS_DIR%\start-ftp-server.vbs"
powershell -NoProfile -Command "$vbs='%FTP_VBS%'; $startup=[Environment]::GetFolderPath('Startup'); $s=(New-Object -COM WScript.Shell).CreateShortcut($startup+'\MatabPanelFTP.lnk'); $s.TargetPath='wscript.exe'; $s.Arguments=[char]34+$vbs+[char]34; $s.WindowStyle=7; $s.Save(); Write-Host ('Registered: '+$startup+'\MatabPanelFTP.lnk')"
echo.
echo [4/4] Starting servers now...
wscript.exe "%SCRIPTS_DIR%\start-ftp-server.vbs"
wscript.exe "%SCRIPTS_DIR%\start-server.vbs"
echo Waiting for server to be ready...
powershell -NoProfile -Command "$max=30; $i=0; while($i -lt $max){ try{ $t=New-Object Net.Sockets.TcpClient; $t.Connect('127.0.0.1',8000); $t.Close(); Write-Host '[OK] Server is ready.'; $i=$max+1 }catch{ $i++; Start-Sleep -Milliseconds 500 } }; if($i -eq $max){ Write-Host '[WARN] Server did not respond in 15s. Check scripts\server.log' }"
if not errorlevel 1 start "" "http://localhost:8000"
echo.
echo Done! Servers will auto-start on every login.
echo Web : http://localhost:8000
echo FTP : port 2121
pause