o11v4-podman/pod-start.ps1
2026-02-22 17:02:56 -05:00

97 lines
4.5 KiB
PowerShell

###############################################################################
# pod-start.ps1 — Build image, create pod, start containers
#
# Usage: .\pod-start.ps1
# .\pod-start.ps1 -ServerIP 192.168.1.50
# .\pod-start.ps1 -HlsSize 4g -DlSize 4g
#
# Requires: Podman installed, Podman Machine running
###############################################################################
param(
[string]$ServerIP = "127.0.0.1",
[string]$HlsSize = "2g",
[string]$DlSize = "2g",
[string]$ImageName = "o11v4",
[string]$PodName = "o11v4-pod"
)
$ErrorActionPreference = "Stop"
Write-Host ""
Write-Host "========================================" -ForegroundColor Cyan
Write-Host " o11v4 Podman Pod Setup" -ForegroundColor Cyan
Write-Host "========================================" -ForegroundColor Cyan
Write-Host ""
# ── Clean up any existing pod ────────────────────────────────────────────────
podman pod exists $PodName 2>$null
if ($LASTEXITCODE -eq 0) {
Write-Host "Removing existing pod '$PodName'..." -ForegroundColor Yellow
podman pod stop $PodName 2>$null
podman pod rm -f $PodName 2>$null
}
# ── Build the image ─────────────────────────────────────────────────────────
Write-Host ""
Write-Host "[1/4] Building image '$ImageName'..." -ForegroundColor Green
podman build -t $ImageName .
Write-Host " Image built successfully." -ForegroundColor Green
# ── Create the pod ──────────────────────────────────────────────────────────
# All containers in the pod share a network namespace (localhost).
# --add-host redirects licensing domains to the license server.
Write-Host ""
Write-Host "[2/4] Creating pod '$PodName'..." -ForegroundColor Green
podman pod create `
--name $PodName `
--add-host "lic.cryptolive.one:$ServerIP" `
--add-host "lic.bitmaster.cc:$ServerIP" `
-p 8484:8484 `
-p 8080:80 `
-p 8443:443 `
-p 5454:5454
Write-Host " Pod created." -ForegroundColor Green
# ── Start the license server container ──────────────────────────────────────
Write-Host ""
Write-Host "[3/4] Starting license server container..." -ForegroundColor Green
podman run -d `
--pod $PodName `
--name licserver `
-e "SERVER_IP=$ServerIP" `
$ImageName `
/entrypoint-licserver.sh
Write-Host " License server started." -ForegroundColor Green
# ── Start the o11v4 app container ───────────────────────────────────────────
Write-Host ""
Write-Host "[4/4] Starting o11v4 app container..." -ForegroundColor Green
podman run -d `
--pod $PodName `
--name o11v4-app `
-e "SERVER_IP=$ServerIP" `
--tmpfs "/home/o11/hls:size=$HlsSize,mode=1777" `
--tmpfs "/home/o11/dl:size=$DlSize,mode=1777" `
$ImageName `
/entrypoint-app.sh
Write-Host " o11v4 app started." -ForegroundColor Green
# ── Done ────────────────────────────────────────────────────────────────────
Write-Host ""
Write-Host "========================================" -ForegroundColor Cyan
Write-Host " All running!" -ForegroundColor Cyan
Write-Host "========================================" -ForegroundColor Cyan
Write-Host ""
Write-Host " App: http://localhost:8484" -ForegroundColor White
Write-Host " Login: admin / admin" -ForegroundColor White
Write-Host ""
Write-Host " Useful commands:" -ForegroundColor Gray
Write-Host " podman pod ps # pod status" -ForegroundColor Gray
Write-Host " podman ps --pod # all containers" -ForegroundColor Gray
Write-Host " podman logs -f licserver # license server logs" -ForegroundColor Gray
Write-Host " podman logs -f o11v4-app # app logs" -ForegroundColor Gray
Write-Host " podman exec -it o11v4-app bash # shell into app" -ForegroundColor Gray
Write-Host " .\pod-stop.ps1 # stop everything" -ForegroundColor Gray
Write-Host ""