X7ROOT File Manager
Current Path:
/home/u742491609
home
/
u742491609
/
??
..
??
.api_token
(40 B)
??
.bash_history
(24.04 KB)
??
.bashrc
(59 B)
??
.cache
??
.cagefs
??
.cl.selector
??
.config
??
.filebrowser
??
.local
??
.logs
??
.msmtprc
(180 B)
??
.npm
??
.nvm
??
.profile
(797 B)
??
.ssh
??
.subversion
??
.wp-cli
??
composer
(2.97 MB)
??
composer.phar
(2.97 MB)
??
dead.letter
(21.66 KB)
??
domains
??
error_log
(861 B)
??
nodesource_setup.sh
(3.69 KB)
??
public_html
Editing: nodesource_setup.sh
#!/bin/bash # Logger Function log() { local message="$1" local type="$2" local timestamp=$(date '+%Y-%m-%d %H:%M:%S') local color local endcolor="\033[0m" case "$type" in "info") color="\033[38;5;79m" ;; "success") color="\033[1;32m" ;; "error") color="\033[1;31m" ;; *) color="\033[1;34m" ;; esac echo -e "${color}${timestamp} - ${message}${endcolor}" } # Error handler function handle_error() { local exit_code=$1 local error_message="$2" log "Error: $error_message (Exit Code: $exit_code)" "error" exit $exit_code } # Function to check for command availability command_exists() { command -v "$1" &> /dev/null } check_os() { if ! [ -f "/etc/debian_version" ]; then echo "Error: This script is only supported on Debian-based systems." exit 1 fi } # Function to Install the script pre-requisites install_pre_reqs() { log "Installing pre-requisites" "info" # Run 'apt-get update' if ! apt-get update -y; then handle_error "$?" "Failed to run 'apt-get update'" fi # Run 'apt-get install' if ! apt-get install -y apt-transport-https ca-certificates curl gnupg; then handle_error "$?" "Failed to install packages" fi if ! mkdir -p /usr/share/keyrings; then handle_error "$?" "Makes sure the path /usr/share/keyrings exist or run ' mkdir -p /usr/share/keyrings' with sudo" fi rm -f /usr/share/keyrings/nodesource.gpg || true rm -f /etc/apt/sources.list.d/nodesource.list || true # Run 'curl' and 'gpg' to download and import the NodeSource signing key if ! curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | gpg --dearmor -o /usr/share/keyrings/nodesource.gpg; then handle_error "$?" "Failed to download and import the NodeSource signing key" fi # Explicitly set the permissions to ensure the file is readable by all if ! chmod 644 /usr/share/keyrings/nodesource.gpg; then handle_error "$?" "Failed to set correct permissions on /usr/share/keyrings/nodesource.gpg" fi } # Function to configure the Repo configure_repo() { local node_version=$1 arch=$(dpkg --print-architecture) if [ "$arch" != "amd64" ] && [ "$arch" != "arm64" ] && [ "$arch" != "armhf" ]; then handle_error "1" "Unsupported architecture: $arch. Only amd64, arm64, and armhf are supported." fi echo "deb [arch=$arch signed-by=/usr/share/keyrings/nodesource.gpg] https://deb.nodesource.com/node_$node_version nodistro main" | tee /etc/apt/sources.list.d/nodesource.list > /dev/null # N|solid Config echo "Package: nsolid" | tee /etc/apt/preferences.d/nsolid > /dev/null echo "Pin: origin deb.nodesource.com" | tee -a /etc/apt/preferences.d/nsolid > /dev/null echo "Pin-Priority: 600" | tee -a /etc/apt/preferences.d/nsolid > /dev/null # Nodejs Config echo "Package: nodejs" | tee /etc/apt/preferences.d/nodejs > /dev/null echo "Pin: origin deb.nodesource.com" | tee -a /etc/apt/preferences.d/nodejs > /dev/null echo "Pin-Priority: 600" | tee -a /etc/apt/preferences.d/nodejs > /dev/null # Run 'apt-get update' if ! apt-get update -y; then handle_error "$?" "Failed to run 'apt-get update'" else log "Repository configured successfully." log "To install Node.js, run: apt-get install nodejs -y" "info" log "You can use N|solid Runtime as a node.js alternative" "info" log "To install N|solid Runtime, run: apt-get install nsolid -y \n" "success" fi } # Define Node.js version NODE_VERSION="22.x" # Check OS check_os # Main execution install_pre_reqs || handle_error $? "Failed installing pre-requisites" configure_repo "$NODE_VERSION" || handle_error $? "Failed configuring repository"
Upload File
Create Folder