Files
overlord/scripts/start-prod.sh
T
2026-06-12 09:14:49 -05:00

45 lines
1.5 KiB
Bash

#!/usr/bin/env bash
set -euo pipefail
SCRIPT_DIR="$(cd -- "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
ROOT="$(cd -- "$SCRIPT_DIR/.." && pwd)"
SERVER_DIR="$ROOT/Overlord-Server"
BUN_BIN="${BUN_BIN:-bun}"
cd "$SERVER_DIR"
if ! command -v "$BUN_BIN" >/dev/null 2>&1; then
echo "[server] bun not found. Set BUN_BIN to your bun binary or install bun for this environment." >&2
exit 1
fi
echo "[server] using bun at: $(command -v $BUN_BIN)"
echo "[build] bun install..."
"$BUN_BIN" install
echo "[build] building Tailwind CSS..."
"$BUN_BIN" run build:css
echo "[build] building server bundle..."
"$BUN_BIN" run build
echo "[build] compiling Linux production executable..."
"$BUN_BIN" run build:prod:linux
echo "[build] copying Overlord-Client source for runtime builds..."
mkdir -p "$SERVER_DIR/dist/Overlord-Client"
rsync -a --exclude='build' --exclude='.git' --exclude='.vscode' "$ROOT/Overlord-Client/" "$SERVER_DIR/dist/Overlord-Client/" 2>/dev/null \
|| {
rm -rf "$SERVER_DIR/dist/Overlord-Client"
cp -a "$ROOT/Overlord-Client" "$SERVER_DIR/dist/Overlord-Client"
rm -rf "$SERVER_DIR/dist/Overlord-Client/build" "$SERVER_DIR/dist/Overlord-Client/.git" "$SERVER_DIR/dist/Overlord-Client/.vscode"
}
echo "[server] starting compiled executable..."
PORT="${PORT:-5173}" \
HOST="${HOST:-0.0.0.0}" \
OVERLORD_USER="${OVERLORD_USER:-admin}" \
OVERLORD_PASS="${OVERLORD_PASS:-admin}" \
LOG_LEVEL="${LOG_LEVEL:-info}" \
NODE_ENV="${NODE_ENV:-production}" \
OVERLORD_ROOT="$SERVER_DIR" \
"$SERVER_DIR/dist/overlord-server-linux-x64"