#!/usr/bin/env bash set -euo pipefail INSTALL_DIR="/opt/logar-server" CONFIG_DIR="/etc/logar" LIC_FILE="" # Parse command line options while [[ $# -gt 0 ]]; do case "$1" in --config-dir|--data-dir) CONFIG_DIR="$2" shift 2 ;; --lic|--license|--import-lic) LIC_FILE="$2" shift 2 ;; *) shift ;; esac done echo "============================================================" echo " LOGAR Server Enterprise Linux Installer" echo "============================================================" # Interactive configuration if running in a terminal without CLI arguments if [ -t 0 ] && [ -z "${LIC_FILE}" ]; then read -r -p "Enter Data and Configuration Directory [${CONFIG_DIR}]: " USER_CFG if [ -n "${USER_CFG}" ]; then CONFIG_DIR="${USER_CFG}" fi read -r -p "Enter path to .lic license file (press Enter to skip): " USER_LIC if [ -n "${USER_LIC}" ]; then LIC_FILE="${USER_LIC}" fi fi mkdir -p "${INSTALL_DIR}" "${CONFIG_DIR}" "/var/log/logar" if [ -f "dist/Server.bin" ]; then cp dist/Server.bin "${INSTALL_DIR}/Server" elif [ -f "dist/Server" ]; then cp dist/Server "${INSTALL_DIR}/Server" elif [ -f "dist/LOGAR_Server" ]; then cp dist/LOGAR_Server "${INSTALL_DIR}/Server" else echo "[!] Warning: dist/Server.bin binary not found in current directory. Continuing with existing binary if present." fi if [ -f "${INSTALL_DIR}/Server" ]; then chmod +x "${INSTALL_DIR}/Server" fi # If license file provided, import it during setup if [ -n "${LIC_FILE}" ] && [ -f "${LIC_FILE}" ]; then echo "[*] Importing license file: ${LIC_FILE}..." "${INSTALL_DIR}/Server" --config "${CONFIG_DIR}/server_config.json" --import-lic "${LIC_FILE}" || echo "[!] License import returned warning. Continuing." fi cat < /etc/systemd/system/logar-server.service [Unit] Description=LOGAR Hub and Aggregator Engine After=network.target [Service] Type=simple WorkingDirectory=${INSTALL_DIR} ExecStart=${INSTALL_DIR}/Server --config ${CONFIG_DIR}/server_config.json Restart=always RestartSec=5s User=root LimitNOFILE=65536 [Install] WantedBy=multi-user.target EOF if command -v systemctl >/dev/null 2>&1; then systemctl daemon-reload systemctl enable --now logar-server.service || true echo "[+] LOGAR Server service installed and activated." else echo "[+] Systemd service installed at /etc/systemd/system/logar-server.service" fi