Use nssm instead of sc

This commit is contained in:
Hamza Zakaria 2026-03-17 15:07:24 +01:00
parent 59ba823865
commit d05ba5cc55
5 changed files with 56 additions and 11 deletions

View File

@ -4,9 +4,12 @@ VERSION = 0.1.0
all: build run
# Default build
build:
@if not exist $(BIN_DIR) mkdir $(BIN_DIR)
go build -ldflags "-s -w -X main.version=$(VERSION)" -o $(BIN_DIR)\$(APP_NAME).exe .
set CGO_ENABLED=0 && \
set GOOS=windows && set GOARCH=amd64 && \
go build -ldflags="-s -w -trimpath -X main.version=$(VERSION)" -o $(BIN_DIR)\$(APP_NAME).exe .
run:
go run .
@ -14,9 +17,12 @@ run:
clean:
@if exist $(BIN_DIR) rmdir /s /q $(BIN_DIR)
# Windows-specific optimized build
windows:
@if not exist $(BIN_DIR) mkdir $(BIN_DIR)
set GOOS=windows&& set GOARCH=amd64&& go build -o $(BIN_DIR)\$(APP_NAME).exe .
set CGO_ENABLED=0 && \
set GOOS=windows && set GOARCH=amd64 && \
go build -ldflags="-s -w -trimpath -X main.version=$(VERSION)" -o $(BIN_DIR)\$(APP_NAME).exe .
tidy:
go mod tidy

5
bin/config.json Normal file
View File

@ -0,0 +1,5 @@
{
"update_url": "https://triztech.pro/cpanelwebcall/TOKEN",
"check_interval_seconds": 30,
"ip_check_url": "https://api.ipify.org"
}

View File

@ -1,23 +1,41 @@
@echo off
REM ===============================
REM DDNS Updater Install using NSSM
REM ===============================
REM Get the folder where this bat is located
SET SCRIPT_DIR=%~dp0
REM Define the service exe path (same folder as bat)
REM Define program and NSSM paths
SET EXE_NAME=DDNSUpdater.exe
SET EXE_PATH=%SCRIPT_DIR%%EXE_NAME%
SET NSSM_PATH=%SCRIPT_DIR%nssm.exe
REM Check if the exe exists
REM Check if files exist
IF NOT EXIST "%EXE_PATH%" (
echo ERROR: %EXE_NAME% not found in the same folder as this script.
pause
exit /b 1
)
REM Create the service (auto-start)
sc create DDNSUpdaterService binPath= "%EXE_PATH%" start= auto
IF NOT EXIST "%NSSM_PATH%" (
echo ERROR: nssm.exe not found in the same folder as this script.
pause
exit /b 1
)
REM Remove existing service if present
"%NSSM_PATH%" remove DDNSUpdaterService confirm
REM Install service
"%NSSM_PATH%" install DDNSUpdaterService "%EXE_PATH%"
REM Optional: auto-start at boot
"%NSSM_PATH%" set DDNSUpdaterService Start SERVICE_AUTO_START
REM Start the service
sc start DDNSUpdaterService
"%NSSM_PATH%" start DDNSUpdaterService
echo Service DDNSUpdaterService installed and started.
echo.
echo DDNSUpdaterService installed and started successfully!
pause

BIN
bin/nssm.exe Normal file

Binary file not shown.

View File

@ -1,5 +1,21 @@
@echo off
sc stop DDNSUpdaterService
sc delete DDNSUpdaterService
echo Service DDNSUpdaterService stopped and deleted.
REM ===============================
REM DDNS Updater Uninstall using NSSM
REM ===============================
SET SCRIPT_DIR=%~dp0
SET NSSM_PATH=%SCRIPT_DIR%nssm.exe
IF NOT EXIST "%NSSM_PATH%" (
echo ERROR: nssm.exe not found in the same folder as this script.
pause
exit /b 1
)
REM Stop and remove the service
"%NSSM_PATH%" stop DDNSUpdaterService
"%NSSM_PATH%" remove DDNSUpdaterService confirm
echo.
echo DDNSUpdaterService uninstalled successfully!
pause