From b3f73fd331b561c6c5a6674a063fb157d0eee7d3 Mon Sep 17 00:00:00 2001 From: "othman.suseno" Date: Mon, 8 Dec 2025 15:41:14 +0700 Subject: [PATCH] Add installer script and serve static files --- .gitignore | 2 ++ install.sh | 86 +++++++++++++++++++++++++++++++++++++++++++++++++ server/index.js | 4 +++ 3 files changed, 92 insertions(+) create mode 100644 .gitignore create mode 100755 install.sh diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..713d500 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +node_modules/ +.env diff --git a/install.sh b/install.sh new file mode 100755 index 0000000..d417b12 --- /dev/null +++ b/install.sh @@ -0,0 +1,86 @@ +#!/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 <