#!/bin/bash # Backstor UI Installer Script set -e # Colors GREEN='\033[0;32m' RED='\033[0;31m' NC='\033[0m' # No Color echo -e "${GREEN}Starting Backstor UI Installation...${NC}" # Check for root/sudo if [ "$EUID" -ne 0 ]; then echo -e "${RED}Please run as root (use sudo)${NC}" exit 1 fi PROJECT_DIR=$(pwd) SERVER_DIR="$PROJECT_DIR/server" SERVICE_NAME="backstor" # 1. Install Node.js Dependencies echo "Installing Node.js dependencies..." if [ -d "$SERVER_DIR" ]; then cd "$SERVER_DIR" if [ ! -d "node_modules" ]; then npm install else echo "node_modules already exists. Skipping npm install." fi else echo -e "${RED}Error: server directory not found at $SERVER_DIR${NC}" exit 1 fi # 2. Setup Environment Variables echo "Setting up environment configuration..." if [ ! -f ".env" ]; then if [ -f ".env.example" ]; then cp .env.example .env echo -e "${GREEN}Created .env from .env.example.${NC}" echo "Please edit $SERVER_DIR/.env with your database configuration." else echo -e "${RED}Warning: .env.example not found.${NC}" fi else echo ".env already exists." fi # 3. Create Systemd Service echo "Creating systemd service..." # Detect the user who owns the project directory to run the service as REAL_USER=$(stat -c '%U' "$PROJECT_DIR") NODE_PATH=$(which node) cat > /etc/systemd/system/$SERVICE_NAME.service <