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

104 lines
3.9 KiB
Bash

#!/usr/bin/env bash
###############################################################################
# pod-start.sh — Build image, create pod, start containers
#
# Usage: ./pod-start.sh
# ./pod-start.sh --server-ip 192.168.1.50
# ./pod-start.sh --hls-size 4g --dl-size 4g
#
# Requires: Podman installed and running
###############################################################################
set -euo pipefail
SERVER_IP="127.0.0.1"
HLS_SIZE="2g"
DL_SIZE="2g"
IMAGE_NAME="o11v4"
POD_NAME="o11v4-pod"
while [[ $# -gt 0 ]]; do
case "$1" in
--server-ip) SERVER_IP="$2"; shift 2 ;;
--hls-size) HLS_SIZE="$2"; shift 2 ;;
--dl-size) DL_SIZE="$2"; shift 2 ;;
--image) IMAGE_NAME="$2"; shift 2 ;;
--pod) POD_NAME="$2"; shift 2 ;;
*) echo "Unknown option: $1"; exit 1 ;;
esac
done
echo ""
echo "========================================"
echo " o11v4 Podman Pod Setup"
echo "========================================"
echo ""
# ── Clean up any existing pod ────────────────────────────────────────────────
if podman pod exists "$POD_NAME" 2>/dev/null; then
echo "Removing existing pod '$POD_NAME'..."
podman pod stop "$POD_NAME" 2>/dev/null || true
podman pod rm -f "$POD_NAME" 2>/dev/null || true
fi
# ── Build the image ─────────────────────────────────────────────────────────
echo ""
echo "[1/4] Building image '$IMAGE_NAME'..."
podman build -t "$IMAGE_NAME" .
echo " Image built successfully."
# ── Create the pod ──────────────────────────────────────────────────────────
echo ""
echo "[2/4] Creating pod '$POD_NAME'..."
podman pod create \
--name "$POD_NAME" \
--add-host "lic.cryptolive.one:$SERVER_IP" \
--add-host "lic.bitmaster.cc:$SERVER_IP" \
-p 8484:8484 \
-p 8080:80 \
-p 8443:443 \
-p 5454:5454
echo " Pod created."
# ── Start the license server container ──────────────────────────────────────
echo ""
echo "[3/4] Starting license server container..."
podman run -d \
--pod "$POD_NAME" \
--name licserver \
-e "SERVER_IP=$SERVER_IP" \
"$IMAGE_NAME" \
/entrypoint-licserver.sh
echo " License server started."
# ── Start the o11v4 app container ───────────────────────────────────────────
echo ""
echo "[4/4] Starting o11v4 app container..."
podman run -d \
--pod "$POD_NAME" \
--name o11v4-app \
-e "SERVER_IP=$SERVER_IP" \
--tmpfs "/home/o11/hls:size=$HLS_SIZE,mode=1777" \
--tmpfs "/home/o11/dl:size=$DL_SIZE,mode=1777" \
"$IMAGE_NAME" \
/entrypoint-app.sh
echo " o11v4 app started."
# ── Done ────────────────────────────────────────────────────────────────────
echo ""
echo "========================================"
echo " All running!"
echo "========================================"
echo ""
echo " App: http://localhost:8484"
echo " Login: admin / admin"
echo ""
echo " Useful commands:"
echo " podman pod ps # pod status"
echo " podman ps --pod # all containers"
echo " podman logs -f licserver # license server logs"
echo " podman logs -f o11v4-app # app logs"
echo " podman exec -it o11v4-app bash # shell into app"
echo " ./pod-stop.sh # stop everything"
echo ""