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

137 lines
3.6 KiB
Batchfile
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
@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