Update install.sh to be interactive
This commit is contained in:
80
install.sh
80
install.sh
@@ -35,20 +35,74 @@ else
|
||||
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}"
|
||||
# 2. Setup Environment Variables (Interactive)
|
||||
ENV_FILE="$SERVER_DIR/.env"
|
||||
CONFIGURE=true
|
||||
|
||||
if [ -f "$ENV_FILE" ]; then
|
||||
echo -e "\n${GREEN}.env file already exists.${NC}"
|
||||
read -p "Do you want to reconfigure it? (y/N): " RECONF
|
||||
if [[ ! "$RECONF" =~ ^[Yy]$ ]]; then
|
||||
CONFIGURE=false
|
||||
fi
|
||||
else
|
||||
echo ".env already exists."
|
||||
fi
|
||||
|
||||
if [ "$CONFIGURE" = true ]; then
|
||||
echo -e "\n${GREEN}Configuring Environment Variables...${NC}"
|
||||
echo "Press Enter to accept defaults [in brackets]"
|
||||
|
||||
# Helper function for prompts
|
||||
prompt_val() {
|
||||
local var_name=$1
|
||||
local prompt_text=$2
|
||||
local default_val=$3
|
||||
|
||||
read -p "$prompt_text [$default_val]: " input
|
||||
input=${input:-$default_val}
|
||||
|
||||
# Escape special characters if necessary, simpler for now
|
||||
eval "$var_name=\"$input\""
|
||||
}
|
||||
|
||||
prompt_val DB_HOST "Database Host" "localhost"
|
||||
prompt_val DB_USER "Database User" "bacula"
|
||||
prompt_val DB_PASSWORD "Database Password" "bacula" # Default might be insecure, but user can change
|
||||
prompt_val DB_NAME "Database Name" "bacula"
|
||||
prompt_val DB_PORT "Database Port" "5432"
|
||||
|
||||
echo ""
|
||||
prompt_val SSH_HOST "Remote Bacula SSH Host" "10.10.14.82"
|
||||
prompt_val SSH_USER "Remote SSH User" "root"
|
||||
prompt_val SSH_PASSWORD "Remote SSH Password" ""
|
||||
prompt_val SSH_KEY_PATH "Remote SSH Key Path" ""
|
||||
prompt_val BACULA_CONF_DIR "Bacula Config Dir" "/etc/bacula/conf.d/clients"
|
||||
|
||||
echo ""
|
||||
prompt_val PORT "Application Port" "3000"
|
||||
|
||||
# Write to .env
|
||||
cat > "$ENV_FILE" <<EOF
|
||||
# Database Configuration
|
||||
DB_HOST=$DB_HOST
|
||||
DB_USER=$DB_USER
|
||||
DB_PASSWORD=$DB_PASSWORD
|
||||
DB_NAME=$DB_NAME
|
||||
DB_PORT=$DB_PORT
|
||||
|
||||
# Remote Admin (SSH)
|
||||
SSH_HOST=$SSH_HOST
|
||||
SSH_USER=$SSH_USER
|
||||
SSH_PASSWORD=$SSH_PASSWORD
|
||||
SSH_KEY_PATH=$SSH_KEY_PATH
|
||||
BACULA_CONF_DIR=$BACULA_CONF_DIR
|
||||
|
||||
# Server Config
|
||||
PORT=$PORT
|
||||
EOF
|
||||
echo -e "${GREEN}Configuration saved to $ENV_FILE${NC}"
|
||||
fi
|
||||
|
||||
|
||||
# 3. Create Systemd Service
|
||||
echo "Creating systemd service..."
|
||||
|
||||
@@ -67,7 +121,7 @@ User=$REAL_USER
|
||||
WorkingDirectory=$SERVER_DIR
|
||||
ExecStart=$NODE_PATH index.js
|
||||
Restart=on-failure
|
||||
Environment=PORT=3000
|
||||
Environment=PORT=$PORT
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
@@ -83,4 +137,4 @@ systemctl restart $SERVICE_NAME
|
||||
|
||||
echo -e "${GREEN}Installation Complete!${NC}"
|
||||
echo -e "You can check the status with: ${GREEN}systemctl status $SERVICE_NAME${NC}"
|
||||
echo -e "Access the UI at: ${GREEN}http://$(hostname -I | awk '{print $1}'):3000${NC}"
|
||||
echo -e "Access the UI at: ${GREEN}http://$(hostname -I | awk '{print $1}'):$PORT${NC}"
|
||||
|
||||
Reference in New Issue
Block a user