Files
olcrtc/script/srv.bat
T
2026-04-12 22:57:21 +03:00

137 lines
3.6 KiB
Batchfile

@echo off
setlocal enabledelayedexpansion
chcp 65001
echo ЕСЛИ У ВАС ЕСТЬ ПРОБЛЕМЫ - Я В КУРСЕ, ПРОЕКТ В БЕТЕ, ПО ПРОБЛЕМАМ В ЧАТ t.me/openlibrecommunity ИЛИ ВООБЩЕ НЕКУДА, ЖДИТЕ РЕЛИЗА
echo.
set CONTAINER_NAME=olcrtc-server
set IMAGE_NAME=docker.io/library/golang:1.26-alpine
set REPO_URL=https://github.com/openlibrecommunity/olcrtc.git
set WORK_DIR=%TEMP%\olcrtc-deploy
echo === OlcRTC Server Deployment Script ===
echo.
where podman >nul 2>&1
if %errorlevel% neq 0 (
echo [!] podman not found. Install podman manually:
echo https://podman.io/getting-started/installation
pause
exit /b 1
)
echo [+] Using Podman
echo.
set /p ROOM_ID=Enter Telemost Room ID:
if "%ROOM_ID%"=="" (
echo [X] Room ID cannot be empty
pause
exit /b 1
)
echo.
set /p USE_PROXY=Use SOCKS5 proxy for egress? (y/N):
set EXTRA_ARGS=
if /I "%USE_PROXY%"=="Y" (
set /p PROXY_ADDR_INPUT=Enter SOCKS5 proxy address [default: 127.0.0.1]:
if "!PROXY_ADDR_INPUT!"=="" (
set SOCKS_PROXY_ADDR=127.0.0.1
) else (
set SOCKS_PROXY_ADDR=!PROXY_ADDR_INPUT!
)
set /p PROXY_PORT_INPUT=Enter SOCKS5 proxy port [default: 1080]:
if "!PROXY_PORT_INPUT!"=="" (
set SOCKS_PROXY_PORT=1080
) else (
set SOCKS_PROXY_PORT=!PROXY_PORT_INPUT!
)
echo [*] Will use SOCKS5 proxy: !SOCKS_PROXY_ADDR!:!SOCKS_PROXY_PORT!
set EXTRA_ARGS=-socks-proxy !SOCKS_PROXY_ADDR! -socks-proxy-port !SOCKS_PROXY_PORT!
)
echo.
echo [*] Stopping old instance...
podman stop %CONTAINER_NAME% >nul 2>&1
podman rm %CONTAINER_NAME% >nul 2>&1
echo [*] Cleaning workspace...
rmdir /s /q "%WORK_DIR%" >nul 2>&1
mkdir "%WORK_DIR%"
echo [*] Cloning repository...
git clone --depth 1 %REPO_URL% "%WORK_DIR%"
echo [*] Pulling Go image...
podman pull %IMAGE_NAME%
echo [*] Building OlcRTC...
podman run --rm ^
-v "%WORK_DIR%:/app:Z" ^
-w /app ^
%IMAGE_NAME% ^
sh -c "go mod tidy && go build -o olcrtc cmd/olcrtc/main.go"
if not exist "%WORK_DIR%\olcrtc" (
echo [X] Build failed
pause
exit /b 1
)
set KEY_FILE=%USERPROFILE%\.olcrtc_key
if exist "%KEY_FILE%" (
echo [*] Loading existing encryption key...
set /p KEY=<"%KEY_FILE%"
) else (
echo [*] Generating new encryption key...
for /f %%i in ('powershell -Command "$bytes = New-Object byte[] 32; [System.Security.Cryptography.RandomNumberGenerator]::Create().GetBytes($bytes); [System.BitConverter]::ToString($bytes) -replace '-'"') do set KEY=%%i
echo !KEY!> "%KEY_FILE%"
echo.
echo ==========================================
echo NEW ENCRYPTION KEY ^(saved to %KEY_FILE%^):
echo !KEY!
echo ==========================================
echo.
)
echo [*] Starting OlcRTC server...
podman run -d ^
--name %CONTAINER_NAME% ^
--restart unless-stopped ^
-v "%WORK_DIR%:/app:Z" ^
-w /app ^
%IMAGE_NAME% ^
./olcrtc -mode srv -id "%ROOM_ID%" -key "%KEY%" %EXTRA_ARGS%
timeout /NOBREAK /t 2 >nul
echo.
echo [+] Server started successfully!
echo.
echo Container name: %CONTAINER_NAME%
echo Room ID: %ROOM_ID%
echo Encryption key: %KEY%
if defined EXTRA_ARGS (
echo SOCKS5 proxy: %SOCKS_PROXY_ADDR%:%SOCKS_PROXY_PORT%
)
echo.
echo View logs:
echo podman logs -f %CONTAINER_NAME%
echo.
echo Stop server:
echo podman stop %CONTAINER_NAME%
echo.
echo Client command:
echo ./olcrtc -mode cnc -id "%ROOM_ID%" -key "%KEY%" -socks-port 1080
echo.
pause