Autarch/start_web.sh
DigiJ ffe47c51b5 Initial public release — AUTARCH v1.0.0
Full security platform with web dashboard, 16 Flask blueprints, 26 modules,
autonomous AI agent, WebUSB hardware support, and Archon Android companion app.

Includes Hash Toolkit, debug console, anti-stalkerware shield, Metasploit/RouterSploit
integration, WireGuard VPN, OSINT reconnaissance, and multi-backend LLM support.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-01 03:57:32 -08:00

81 lines
2.3 KiB
Bash

#!/bin/bash
# AUTARCH Web Dashboard — install & start as systemd service
# Usage: bash start_web.sh [stop|restart|status]
set -e
SERVICE="autarch-web"
SERVICE_SRC="$(dirname "$(readlink -f "$0")")/scripts/autarch-web.service"
SERVICE_DST="/etc/systemd/system/${SERVICE}.service"
RED='\033[0;31m'; GREEN='\033[0;32m'; CYAN='\033[0;36m'; RESET='\033[0m'
action="${1:-start}"
case "$action" in
stop)
sudo systemctl stop "$SERVICE" 2>/dev/null && echo -e "${GREEN}[+] Stopped${RESET}" || echo -e "${RED}[!] Not running${RESET}"
exit 0
;;
restart)
sudo systemctl restart "$SERVICE" && echo -e "${GREEN}[+] Restarted${RESET}"
exit 0
;;
status)
systemctl status "$SERVICE" --no-pager 2>/dev/null || echo -e "${RED}[!] Service not installed${RESET}"
exit 0
;;
start) ;; # fall through
*)
echo "Usage: $0 [start|stop|restart|status]"
exit 1
;;
esac
# Install service file if missing or outdated
if [ ! -f "$SERVICE_DST" ] || ! diff -q "$SERVICE_SRC" "$SERVICE_DST" >/dev/null 2>&1; then
echo -e "${CYAN}[*] Installing systemd service...${RESET}"
sudo cp "$SERVICE_SRC" "$SERVICE_DST"
sudo systemctl daemon-reload
fi
# Enable on boot
sudo systemctl enable "$SERVICE" --quiet 2>/dev/null
# Stop if already running (clean restart)
sudo systemctl stop "$SERVICE" 2>/dev/null || true
# Start
sudo systemctl start "$SERVICE"
sleep 1
if systemctl is-active --quiet "$SERVICE"; then
# Get configured port
PORT=$(python3 -c "
import sys; sys.path.insert(0, '$(dirname "$(readlink -f "$0")")')
from core.config import get_config
c = get_config()
print(c.get_int('web', 'port', fallback=8181))
" 2>/dev/null || echo 8181)
HTTPS=$(python3 -c "
import sys; sys.path.insert(0, '$(dirname "$(readlink -f "$0")")')
from core.config import get_config
c = get_config()
print(c.get('web', 'https', fallback='true'))
" 2>/dev/null || echo true)
if [ "$HTTPS" = "false" ]; then PROTO="http"; else PROTO="https"; fi
# Get LAN IP
IP=$(hostname -I 2>/dev/null | awk '{print $1}')
[ -z "$IP" ] && IP="localhost"
echo -e "${GREEN}[+] AUTARCH Web Dashboard running${RESET}"
echo -e " ${PROTO}://${IP}:${PORT}"
echo -e " Logs: journalctl -u ${SERVICE} -f"
else
echo -e "${RED}[X] Failed to start. Check: journalctl -u ${SERVICE} -e${RESET}"
exit 1
fi