commit fbd1f10cf95a3f605595714c6b1425ea66701e45 Author: fadmin Date: Sun Aug 16 17:26:18 2026 -0400 Add install_osticket.sh diff --git a/install_osticket.sh b/install_osticket.sh new file mode 100644 index 0000000..20c6a65 --- /dev/null +++ b/install_osticket.sh @@ -0,0 +1,73 @@ +#!/bin/bash + +# Exit immediately if a command exits with a non-zero status +set -e + +# --- INTERACTIVE PROMPT --- +read -p "Enter the target installation directory [/var/www/html/osticket]: " INSTALL_DIR +INSTALL_DIR="${INSTALL_DIR:-/var/www/html/osticket}" + +# --- CONFIGURATION --- +# IMPORTANT: Adjust these for your OS. +# Fedora/RHEL/CentOS typically uses 'apache' +# Ubuntu/Debian typically uses 'www-data' +read -p "Enter web server user [apache]: " WEB_USER +WEB_USER="${WEB_USER:-apache}" +read -p "Enter web server group [apache]: " WEB_GROUP +WEB_GROUP="${WEB_GROUP:-apache}" + +OSTICKET_VERSION="v1.18.3" +DOWNLOAD_URL="https://github.com/osTicket/osTicket/releases/download/${OSTICKET_VERSION}/osTicket-${OSTICKET_VERSION}.zip" + +echo "=== Starting osTicket ${OSTICKET_VERSION} Installation ===" +echo "Target Directory: ${INSTALL_DIR}" + +# 1. Set SELinux to Permissive mode +echo "Setting SELinux to permissive mode..." +sudo setenforce 0 + +# 2. Ensure required dependencies are present +if ! command -v unzip &> /dev/null || ! command -v wget &> /dev/null; then + echo "Installing required dependencies (unzip, wget)..." + if [ -f /etc/debian_version ]; then + sudo apt-get update && sudo apt-get install -y unzip wget + elif [ -f /etc/redhat-release ]; then + sudo dnf install -y unzip wget + fi +fi + +# 3. Create the target directory +echo "Creating target directory..." +sudo mkdir -p "${INSTALL_DIR}" + +# 4. Download osTicket archive +echo "Downloading osTicket..." +TEMP_DIR=$(mktemp -d) +wget -q "${DOWNLOAD_URL}" -O "${TEMP_DIR}/osticket.zip" + +# 5. Extract files to the target directory +echo "Extracting files..." +sudo unzip -q "${TEMP_DIR}/osticket.zip" -d "${TEMP_DIR}/extracted" +sudo cp -r "${TEMP_DIR}/extracted/upload/"* "${INSTALL_DIR}/" + +# Clean up temp directory +rm -rf "${TEMP_DIR}" + +# 6. Rename the configuration file +echo "Renaming ost-sampleconfig.php to ost-config.php..." +if [ -f "${INSTALL_DIR}/include/ost-sampleconfig.php" ]; then + sudo mv "${INSTALL_DIR}/include/ost-sampleconfig.php" "${INSTALL_DIR}/include/ost-config.php" +else + echo "Error: Sample configuration file not found!" + exit 1 +fi + +# 7. Apply permissions and set ownership +echo "Applying permissions and setting ownership for user: ${WEB_USER}..." +sudo chown -R "${WEB_USER}:${WEB_GROUP}" "${INSTALL_DIR}" +sudo chmod 0755 "${INSTALL_DIR}" +sudo chmod 0666 "${INSTALL_DIR}/include/ost-config.php" + +echo "=== Installation Complete! ===" +echo "osTicket is ready at: ${INSTALL_DIR}" +echo "You can now complete the setup via your browser." \ No newline at end of file