104 lines
3.9 KiB
Bash
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 ""
|