#!/usr/bin/env bash # Configure gpu-fan agent for localhost + ensure API key. UI is in Server UI :8091. set -euo pipefail SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" STACK_DIR="$(cd "${SCRIPT_DIR}/.." && pwd)" SERVER_UI_DIR="$(cd "${STACK_DIR}/../server-ui" && pwd)" CONTROL_PLANE_ENV="/opt/control-plane/.env" if [[ "${EUID}" -ne 0 ]]; then echo "Run as root: sudo ${SCRIPT_DIR}/enable-lan.sh" exit 1 fi "${SCRIPT_DIR}/install.sh" set_env_var() { local file="$1" key="$2" val="$3" if grep -q "^${key}=" "${file}"; then sed -i "s|^${key}=.*|${key}=${val}|" "${file}" else echo "${key}=${val}" >> "${file}" fi } for pair in "GPU_FAN_API_HOST=127.0.0.1" "GPU_FAN_API_PORT=18090"; do set_env_var "${CONTROL_PLANE_ENV}" "${pair%%=*}" "${pair#*=}" done if ! grep -q '^API_KEY=.\{8,\}' "${CONTROL_PLANE_ENV}"; then KEY="$(openssl rand -hex 16)" set_env_var "${CONTROL_PLANE_ENV}" "API_KEY" "${KEY}" echo "Generated new API_KEY in ${CONTROL_PLANE_ENV}" else echo "API_KEY already set in ${CONTROL_PLANE_ENV}" fi systemctl restart gpu-fan sleep 2 LAN_IP="$(hostname -I 2>/dev/null | awk '{print $1}')" echo "" echo "gpu-fan agent: $(systemctl is-active gpu-fan)" echo "Agent API: http://127.0.0.1:18090 (localhost only)" echo "" echo "GPU Fan panel (LAN):" echo " http://${LAN_IP:-}:8091 → zakładka GPU Fan" echo "" echo "API key (Server UI + gpu-fan):" echo " grep ^API_KEY= ${CONTROL_PLANE_ENV}"