@echo off title Caddy Service Manager - Full Control color 0A setlocal enabledelayedexpansion :menu cls echo ===================================================== echo Caddy Service Control Panel echo ===================================================== echo. echo Current Status: sc query caddy | find "STATE" || echo Service not found or not installed. echo. echo [1] Start Caddy Service echo [2] Stop Caddy Service echo [3] Restart Caddy Service echo [4] Check Detailed Status echo [5] View Recent Logs echo [6] Open Caddyfile in Notepad echo [7] Check if Port 443 is Listening echo [8] Reinstall / Repair Caddy Service echo [9] Show Caddy Version echo [10] Exit echo. set /p choice="Enter your choice (1-10): " if "%choice%"=="1" goto start if "%choice%"=="2" goto stop if "%choice%"=="3" goto restart if "%choice%"=="4" goto status if "%choice%"=="5" goto logs if "%choice%"=="6" goto openfile if "%choice%"=="7" goto checkport if "%choice%"=="8" goto reinstall if "%choice%"=="9" goto version if "%choice%"=="10" goto end echo. echo Invalid choice! Please try again. timeout /t 2 >nul goto menu :start echo. echo Starting Caddy service... sc start caddy timeout /t 3 >nul goto menu :stop echo. echo Stopping Caddy service... sc stop caddy timeout /t 3 >nul goto menu :restart echo. echo Restarting Caddy service... sc stop caddy timeout /t 2 >nul sc start caddy timeout /t 3 >nul goto menu :status echo. echo Detailed Service Status: sc queryex caddy echo. pause goto menu :logs echo. echo === Recent Caddy Logs (Application Event Log) === wevtutil qe Application /q:"*[System[Provider[@Name='caddy' or @Name='Caddy']]]" /f:text /c:20 /rd:true 2>nul || echo No recent Caddy logs found in Event Log. echo. pause goto menu :openfile echo. echo Opening Caddyfile in Notepad... notepad "C:\Caddy\Caddyfile" goto menu :checkport echo. echo Checking port 443... netstat -ano | find ":443" >nul if %errorlevel% equ 0 ( echo SUCCESS: Port 443 is LISTENING. echo. netstat -ano | find ":443" ) else ( echo WARNING: Port 443 is NOT listening. ) echo. pause goto menu :reinstall echo. echo === Reinstalling Caddy Service === echo Stopping service if running... sc stop caddy 2>nul sc delete caddy 2>nul echo. echo Creating new service... sc create caddy start= auto binPath= "C:\Caddy\caddy.exe run --adapter caddyfile" echo. echo Starting service... sc start caddy timeout /t 4 >nul echo. echo Service reinstalled and started. pause goto menu :version echo. echo Caddy Version: "C:\Caddy\caddy.exe" version echo. pause goto menu :end echo. echo Goodbye! timeout /t 2 >nul exit