diff --git a/iso_configs/hooks/normal/debsrv_64/1000-setup-welcome-service.chroot b/iso_configs/hooks/normal/debsrv_64/1000-setup-welcome-service.chroot deleted file mode 100755 index 827b9c56..00000000 --- a/iso_configs/hooks/normal/debsrv_64/1000-setup-welcome-service.chroot +++ /dev/null @@ -1,21 +0,0 @@ -#!/bin/bash - -# Create systemd service file for welcome.sh -cat << EOF > /etc/systemd/system/welcome.service -[Unit] -Description=Welcome Script -After=network.target - -[Service] -ExecStart=/usr/local/bin/welcome.sh -RemainAfterExit=true - -[Install] -WantedBy=default.target -EOF - -# Set permissions -chmod 644 /etc/systemd/system/welcome.service - -# Enable the service to start on boot -systemctl enable welcome.service diff --git a/iso_configs/server/scripts/debsrv/configure_apache2.sh b/iso_configs/server/scripts/debsrv/configure_apache2.sh index ba756236..65a4e176 100755 --- a/iso_configs/server/scripts/debsrv/configure_apache2.sh +++ b/iso_configs/server/scripts/debsrv/configure_apache2.sh @@ -65,6 +65,9 @@ secure_apache() { # Function to configure Apache virtual hosts configure_apache_virtual_hosts() { DOMAIN=$(dialog --inputbox "Enter the domain name for the virtual host (e.g., example.com):" 10 40 3>&1 1>&2 2>&3 3>&-) + if [ $? -ne 0 ]; then + return + fi if [[ -n "$DOMAIN" ]]; then sudo mkdir -p /var/www/$DOMAIN/public_html sudo chown -R www-data:www-data /var/www/$DOMAIN/public_html @@ -87,6 +90,14 @@ EOF # Function to enable or disable Apache virtual host (site) enable_disable_apache_site() { SITE=$(dialog --inputbox "Enter the site configuration file name (without .conf):" 10 40 3>&1 1>&2 2>&3 3>&-) + if [ $? -ne 0 ]; then + return + fi + if [[ -z "$SITE" ]]; then + dialog --msgbox "No site configuration file name entered. Returning to menu." 10 30 + return + fi + ACTION=$(dialog --clear --backtitle "Enable/Disable Apache Site" \ --title "Enable/Disable Apache Site" \ --menu "Choose an action:" 10 40 2 \ @@ -94,6 +105,10 @@ enable_disable_apache_site() { 2 "Disable" \ 3>&1 1>&2 2>&3 3>&-) + if [ $? -ne 0 ]; then + return + fi + case $ACTION in 1) sudo a2ensite $SITE.conf @@ -114,6 +129,14 @@ enable_disable_apache_site() { # Function to enable or disable Apache modules enable_disable_apache_module() { MODULE=$(dialog --inputbox "Enter the name of the Apache module to enable/disable (e.g., rewrite):" 10 40 3>&1 1>&2 2>&3 3>&-) + if [ $? -ne 0 ]; then + return + fi + if [[ -z "$MODULE" ]]; then + dialog --msgbox "No module name entered. Returning to menu." 10 30 + return + fi + ACTION=$(dialog --clear --backtitle "Enable/Disable Apache Module" \ --title "Enable/Disable Apache Module" \ --menu "Choose an action:" 10 40 2 \ @@ -121,6 +144,10 @@ enable_disable_apache_module() { 2 "Disable" \ 3>&1 1>&2 2>&3 3>&-) + if [ $? -ne 0 ]; then + return + fi + case $ACTION in 1) sudo a2enmod $MODULE @@ -141,6 +168,9 @@ enable_disable_apache_module() { # Function to configure Certbot for Apache configure_certbot() { DOMAIN=$(dialog --inputbox "Enter the domain name for which you want to configure Certbot (e.g., example.com):" 10 40 3>&1 1>&2 2>&3 3>&-) + if [ $? -ne 0 ]; then + return + fi if [[ -n "$DOMAIN" ]]; then sudo certbot --apache -d $DOMAIN fi @@ -151,7 +181,7 @@ configure_apache() { while true; do CHOICE=$(dialog --clear --backtitle "Configure Apache" \ --title "Apache Menu" \ - --menu "Choose an option:" 20 60 11 \ + --menu "Choose an option:" 20 60 12 \ 1 "Install/Check Apache" \ 2 "Start Apache" \ 3 "Stop Apache" \ @@ -166,13 +196,13 @@ configure_apache() { 12 "Return to Main Menu" \ 3>&1 1>&2 2>&3 3>&-) - clear - # Check if user canceled - if [ $? -eq 1 ]; then + if [ $? -ne 0 ]; then break fi + clear + case $CHOICE in 1) install_apache_if_needed ;; 2) start_apache ;; diff --git a/iso_configs/server/scripts/debsrv/configure_php_and_docker.sh b/iso_configs/server/scripts/debsrv/configure_docker.sh similarity index 70% rename from iso_configs/server/scripts/debsrv/configure_php_and_docker.sh rename to iso_configs/server/scripts/debsrv/configure_docker.sh index b78438c0..4efc19a4 100755 --- a/iso_configs/server/scripts/debsrv/configure_php_and_docker.sh +++ b/iso_configs/server/scripts/debsrv/configure_docker.sh @@ -1,48 +1,5 @@ #!/bin/bash -# Function to install PHP if not installed -install_php_if_needed() { - if ! dpkg -l php > /dev/null 2>&1; then - echo "PHP is not installed. Installing..." - if sudo apt-get install -y php; then - echo "PHP installed successfully." - else - echo "Failed to install PHP. Exiting." - exit 1 - fi - fi -} - -# Function to configure PHP -configure_php() { - while true; do - OPTION=$(dialog --clear --backtitle "Configure PHP" \ - --title "PHP Configuration Menu" \ - --menu "Choose an option:" 15 60 4 \ - 1 "Configure PHP.ini" \ - 2 "Set PHP Error Reporting" \ - 3 "Set PHP Timezone" \ - 4 "Return to Main Menu" \ - 3>&1 1>&2 2>&3) - - clear - - # Check if user canceled - if [ $? -eq 1 ]; then - break - fi - - case $OPTION in - 1) sudo nano /etc/php/7.4/apache2/php.ini ;; # Adjust version if needed - 2) echo "error_reporting = E_ALL" | sudo tee -a /etc/php/7.4/apache2/php.ini ;; # Adjust version if needed - 3) TZ=$(dialog --inputbox "Enter PHP timezone (e.g., America/New_York):" 10 40 3>&1 1>&2 2>&3) - sudo sed -i "s|^;date.timezone =|date.timezone = $TZ|" /etc/php/7.4/apache2/php.ini ;; # Adjust version if needed - 4) break ;; - *) dialog --msgbox "Invalid option." 10 30 ;; - esac - done -} - # Function to install Docker if not installed install_docker_if_needed() { if ! command -v docker &> /dev/null; then @@ -53,6 +10,8 @@ install_docker_if_needed() { echo "Failed to install Docker. Exiting." exit 1 fi + else + echo "Docker is already installed." fi } @@ -70,21 +29,21 @@ configure_docker() { 6 "Return to Main Menu" \ 3>&1 1>&2 2>&3) - clear - # Check if user canceled if [ $? -eq 1 ]; then - break + return fi case $OPTION in 1) NETWORK=$(dialog --inputbox "Enter Docker network name:" 10 40 3>&1 1>&2 2>&3) - sudo docker network create $NETWORK ;; + if [ $? -ne 1 ]; then + sudo docker network create $NETWORK + fi ;; 2) manage_docker_containers ;; 3) manage_docker_images ;; 4) manage_docker_volumes ;; 5) manage_docker_compose ;; - 6) break ;; + 6) return ;; *) dialog --msgbox "Invalid option." 10 30 ;; esac done @@ -102,20 +61,22 @@ manage_docker_containers() { 4 "Return to Docker Menu" \ 3>&1 1>&2 2>&3) - clear - # Check if user canceled if [ $? -eq 1 ]; then - break + return fi case $ACTION in 1) sudo docker ps -a ;; 2) CONTAINER=$(dialog --inputbox "Enter the container ID or name:" 10 40 3>&1 1>&2 2>&3) - sudo docker start $CONTAINER ;; + if [ $? -ne 1 ]; then + sudo docker start $CONTAINER + fi ;; 3) CONTAINER=$(dialog --inputbox "Enter the container ID or name:" 10 40 3>&1 1>&2 2>&3) - sudo docker stop $CONTAINER ;; - 4) break ;; + if [ $? -ne 1 ]; then + sudo docker stop $CONTAINER + fi ;; + 4) return ;; *) dialog --msgbox "Invalid option." 10 30 ;; esac done @@ -133,20 +94,22 @@ manage_docker_images() { 4 "Return to Docker Menu" \ 3>&1 1>&2 2>&3) - clear - # Check if user canceled if [ $? -eq 1 ]; then - break + return fi case $ACTION in 1) sudo docker images ;; 2) IMAGE=$(dialog --inputbox "Enter the image name (e.g., ubuntu):" 10 40 3>&1 1>&2 2>&3) - sudo docker pull $IMAGE ;; + if [ $? -ne 1 ]; then + sudo docker pull $IMAGE + fi ;; 3) IMAGE=$(dialog --inputbox "Enter the image ID or name:" 10 40 3>&1 1>&2 2>&3) - sudo docker rmi $IMAGE ;; - 4) break ;; + if [ $? -ne 1 ]; then + sudo docker rmi $IMAGE + fi ;; + 4) return ;; *) dialog --msgbox "Invalid option." 10 30 ;; esac done @@ -164,20 +127,22 @@ manage_docker_volumes() { 4 "Return to Docker Menu" \ 3>&1 1>&2 2>&3) - clear - # Check if user canceled if [ $? -eq 1 ]; then - break + return fi case $ACTION in 1) sudo docker volume ls ;; 2) VOLUME=$(dialog --inputbox "Enter the volume name:" 10 40 3>&1 1>&2 2>&3) - sudo docker volume create $VOLUME ;; + if [ $? -ne 1 ]; then + sudo docker volume create $VOLUME + fi ;; 3) VOLUME=$(dialog --inputbox "Enter the volume name or ID:" 10 40 3>&1 1>&2 2>&3) - sudo docker volume rm $VOLUME ;; - 4) break ;; + if [ $? -ne 1 ]; then + sudo docker volume rm $VOLUME + fi ;; + 4) return ;; *) dialog --msgbox "Invalid option." 10 30 ;; esac done @@ -195,18 +160,16 @@ manage_docker_compose() { 4 "Return to Docker Menu" \ 3>&1 1>&2 2>&3) - clear - # Check if user canceled if [ $? -eq 1 ]; then - break + return fi case $ACTION in 1) docker_compose_up ;; 2) docker_compose_down ;; 3) docker_compose_remove ;; - 4) break ;; + 4) return ;; *) dialog --msgbox "Invalid option." 10 30 ;; esac done @@ -215,7 +178,7 @@ manage_docker_compose() { # Function to run Docker Compose docker_compose_up() { COMPOSE_FILE=$(dialog --inputbox "Enter the Docker Compose file (e.g., docker-compose.yaml):" 10 40 3>&1 1>&2 2>&3) - if [[ -n "$COMPOSE_FILE" ]]; then + if [ $? -ne 1 ] && [ -n "$COMPOSE_FILE" ]; then sudo docker-compose -f $COMPOSE_FILE up -d fi } @@ -223,7 +186,7 @@ docker_compose_up() { # Function to stop Docker Compose docker_compose_down() { COMPOSE_FILE=$(dialog --inputbox "Enter the Docker Compose file (e.g., docker-compose.yaml):" 10 40 3>&1 1>&2 2>&3) - if [[ -n "$COMPOSE_FILE" ]]; then + if [ $? -ne 1 ] && [ -n "$COMPOSE_FILE" ]; then sudo docker-compose -f $COMPOSE_FILE down fi } @@ -231,7 +194,7 @@ docker_compose_down() { # Function to remove Docker Compose docker_compose_remove() { COMPOSE_FILE=$(dialog --inputbox "Enter the Docker Compose file (e.g., docker-compose.yaml):" 10 40 3>&1 1>&2 2>&3) - if [[ -n "$COMPOSE_FILE" ]]; then + if [ $? -ne 1 ] && [ -n "$COMPOSE_FILE" ]; then sudo docker-compose -f $COMPOSE_FILE down --volumes --remove-orphans fi } @@ -241,27 +204,21 @@ main_menu() { while true; do CHOICE=$(dialog --clear --backtitle "Server Utilities Installation and Configuration" \ --title "Main Menu" \ - --menu "Choose an option:" 15 60 5 \ - 1 "Install/Check PHP" \ - 2 "Configure PHP" \ - 3 "Install/Check Docker" \ - 4 "Configure Docker" \ - 5 "Return to Main Menu" \ + --menu "Choose an option:" 15 60 4 \ + 1 "Install/Check Docker" \ + 2 "Configure Docker" \ + 3 "Exit" \ 3>&1 1>&2 2>&3) - clear - # Check if user canceled if [ $? -eq 1 ]; then break fi case $CHOICE in - 1) install_php_if_needed ;; - 2) configure_php ;; - 3) install_docker_if_needed ;; - 4) configure_docker ;; - 5) break ;; + 1) install_docker_if_needed ;; + 2) configure_docker ;; + 3) break ;; *) dialog --msgbox "Invalid option." 10 30 ;; esac done diff --git a/iso_configs/server/scripts/debsrv/configure_mariadb.sh b/iso_configs/server/scripts/debsrv/configure_mariadb.sh index 8b7d98cf..6f3e7a83 100755 --- a/iso_configs/server/scripts/debsrv/configure_mariadb.sh +++ b/iso_configs/server/scripts/debsrv/configure_mariadb.sh @@ -8,45 +8,72 @@ install_mariadb_if_needed() { echo "MariaDB installed successfully." else echo "Failed to install MariaDB. Exiting." + dialog --msgbox "Failed to install MariaDB. Exiting." 10 30 exit 1 fi + else + dialog --msgbox "MariaDB is already installed." 10 30 fi } # Function to start MariaDB start_mariadb() { sudo systemctl start mariadb - dialog --msgbox "MariaDB started." 10 30 + if [[ $? -eq 0 ]]; then + dialog --msgbox "MariaDB started successfully." 10 30 + else + dialog --msgbox "Failed to start MariaDB." 10 30 + fi } # Function to stop MariaDB stop_mariadb() { sudo systemctl stop mariadb - dialog --msgbox "MariaDB stopped." 10 30 + if [[ $? -eq 0 ]]; then + dialog --msgbox "MariaDB stopped successfully." 10 30 + else + dialog --msgbox "Failed to stop MariaDB." 10 30 + fi } # Function to restart MariaDB restart_mariadb() { sudo systemctl restart mariadb - dialog --msgbox "MariaDB restarted." 10 30 + if [[ $? -eq 0 ]]; then + dialog --msgbox "MariaDB restarted successfully." 10 30 + else + dialog --msgbox "Failed to restart MariaDB." 10 30 + fi } # Function to enable MariaDB at boot enable_mariadb_at_boot() { sudo systemctl enable mariadb - dialog --msgbox "MariaDB enabled at boot." 10 30 + if [[ $? -eq 0 ]]; then + dialog --msgbox "MariaDB enabled at boot successfully." 10 30 + else + dialog --msgbox "Failed to enable MariaDB at boot." 10 30 + fi } # Function to disable MariaDB at boot disable_mariadb_at_boot() { sudo systemctl disable mariadb - dialog --msgbox "MariaDB disabled at boot." 10 30 + if [[ $? -eq 0 ]]; then + dialog --msgbox "MariaDB disabled at boot successfully." 10 30 + else + dialog --msgbox "Failed to disable MariaDB at boot." 10 30 + fi } # Function to secure MariaDB installation secure_mariadb() { sudo mysql_secure_installation - dialog --msgbox "MariaDB installation secured." 10 30 + if [[ $? -eq 0 ]]; then + dialog --msgbox "MariaDB installation secured successfully." 10 30 + else + dialog --msgbox "Failed to secure MariaDB installation." 10 30 + fi } # Function to create a database @@ -54,7 +81,11 @@ create_database() { DATABASE=$(dialog --inputbox "Enter the name of the database to create:" 10 40 3>&1 1>&2 2>&3 3>&-) if [[ -n "$DATABASE" ]]; then mysql -e "CREATE DATABASE IF NOT EXISTS $DATABASE;" - dialog --msgbox "Database '$DATABASE' created successfully." 10 60 + if [[ $? -eq 0 ]]; then + dialog --msgbox "Database '$DATABASE' created successfully." 10 60 + else + dialog --msgbox "Failed to create database '$DATABASE'." 10 60 + fi fi } @@ -64,7 +95,11 @@ create_table() { TABLE=$(dialog --inputbox "Enter the name of the table to create:" 10 40 3>&1 1>&2 2>&3 3>&-) if [[ -n "$DATABASE" && -n "$TABLE" ]]; then mysql -e "USE $DATABASE; CREATE TABLE IF NOT EXISTS $TABLE (id INT AUTO_INCREMENT PRIMARY KEY);" - dialog --msgbox "Table '$TABLE' created in database '$DATABASE' successfully." 10 60 + if [[ $? -eq 0 ]]; then + dialog --msgbox "Table '$TABLE' created in database '$DATABASE' successfully." 10 60 + else + dialog --msgbox "Failed to create table '$TABLE' in database '$DATABASE'." 10 60 + fi fi } @@ -75,7 +110,11 @@ insert_data() { DATA=$(dialog --inputbox "Enter data to insert into table (e.g., 'value1, value2'):" 10 60 3>&1 1>&2 2>&3 3>&-) if [[ -n "$DATABASE" && -n "$TABLE" && -n "$DATA" ]]; then mysql -e "USE $DATABASE; INSERT INTO $TABLE VALUES ($DATA);" - dialog --msgbox "Data inserted into table '$TABLE' in database '$DATABASE' successfully." 10 60 + if [[ $? -eq 0 ]]; then + dialog --msgbox "Data inserted into table '$TABLE' in database '$DATABASE' successfully." 10 60 + else + dialog --msgbox "Failed to insert data into table '$TABLE' in database '$DATABASE'." 10 60 + fi fi } @@ -86,8 +125,12 @@ query_data() { if [[ -n "$DATABASE" && -n "$TABLE" ]]; then QUERY=$(dialog --inputbox "Enter SQL query (e.g., 'SELECT * FROM $TABLE;'):" 10 60 3>&1 1>&2 2>&3 3>&-) if [[ -n "$QUERY" ]]; then - mysql -e "USE $DATABASE; $QUERY" - dialog --msgbox "Query executed successfully." 10 60 + RESULT=$(mysql -e "USE $DATABASE; $QUERY") + if [[ $? -eq 0 ]]; then + dialog --msgbox "Query executed successfully. Result:\n$RESULT" 20 80 + else + dialog --msgbox "Failed to execute query on table '$TABLE' in database '$DATABASE'." 10 60 + fi fi fi } @@ -97,7 +140,11 @@ backup_database() { DATABASE=$(dialog --inputbox "Enter the name of the database to backup:" 10 40 3>&1 1>&2 2>&3 3>&-) if [[ -n "$DATABASE" ]]; then mysqldump $DATABASE > $DATABASE.sql - dialog --msgbox "Database '$DATABASE' backed up to '$DATABASE.sql' successfully." 10 60 + if [[ $? -eq 0 ]]; then + dialog --msgbox "Database '$DATABASE' backed up to '$DATABASE.sql' successfully." 10 60 + else + dialog --msgbox "Failed to backup database '$DATABASE'." 10 60 + fi fi } @@ -108,7 +155,11 @@ restore_database() { FILE=$(dialog --inputbox "Enter the path to the SQL file to restore:" 10 60 3>&1 1>&2 2>&3 3>&-) if [[ -f "$FILE" ]]; then mysql $DATABASE < $FILE - dialog --msgbox "Database '$DATABASE' restored successfully." 10 60 + if [[ $? -eq 0 ]]; then + dialog --msgbox "Database '$DATABASE' restored successfully." 10 60 + else + dialog --msgbox "Failed to restore database '$DATABASE'." 10 60 + fi else dialog --msgbox "File not found or invalid." 10 60 fi @@ -137,13 +188,14 @@ configure_mariadb() { 14 "Return to Main Menu" \ 3>&1 1>&2 2>&3 3>&-) - clear - # Check if user canceled - if [ $? -eq 1 ]; then + if [ $? -ne 0 ]; then + clear break fi + clear + case $CHOICE in 1) install_mariadb_if_needed ;; 2) start_mariadb ;; diff --git a/iso_configs/server/scripts/debsrv/configure_nginx.sh b/iso_configs/server/scripts/debsrv/configure_nginx.sh index 45575ad4..5bfa0e83 100755 --- a/iso_configs/server/scripts/debsrv/configure_nginx.sh +++ b/iso_configs/server/scripts/debsrv/configure_nginx.sh @@ -93,6 +93,11 @@ EOF # Function to enable or disable Nginx virtual host (site) enable_disable_nginx_site() { SITE=$(dialog --inputbox "Enter the site configuration file name (without .conf):" 10 40 3>&1 1>&2 2>&3 3>&-) + if [[ -z "$SITE" ]]; then + dialog --msgbox "No site configuration file name entered. Returning to menu." 10 30 + return + fi + ACTION=$(dialog --clear --backtitle "Enable/Disable Nginx Site" \ --title "Enable/Disable Nginx Site" \ --menu "Choose an action:" 10 40 2 \ @@ -100,6 +105,10 @@ enable_disable_nginx_site() { 2 "Disable" \ 3>&1 1>&2 2>&3 3>&-) + if [ $? -ne 0 ]; then + return + fi + case $ACTION in 1) sudo ln -s /etc/nginx/sites-available/$SITE /etc/nginx/sites-enabled/ @@ -120,6 +129,11 @@ enable_disable_nginx_site() { # Function to enable or disable Nginx modules enable_disable_nginx_module() { MODULE=$(dialog --inputbox "Enter the name of the Nginx module to enable/disable (e.g., ssl):" 10 40 3>&1 1>&2 2>&3 3>&-) + if [[ -z "$MODULE" ]]; then + dialog --msgbox "No module name entered. Returning to menu." 10 30 + return + fi + ACTION=$(dialog --clear --backtitle "Enable/Disable Nginx Module" \ --title "Enable/Disable Nginx Module" \ --menu "Choose an action:" 10 40 2 \ @@ -127,6 +141,10 @@ enable_disable_nginx_module() { 2 "Disable" \ 3>&1 1>&2 2>&3 3>&-) + if [ $? -ne 0 ]; then + return + fi + case $ACTION in 1) sudo ln -s /etc/nginx/modules-available/$MODULE.conf /etc/nginx/modules-enabled/ @@ -157,7 +175,7 @@ configure_nginx() { while true; do CHOICE=$(dialog --clear --backtitle "Configure Nginx" \ --title "Nginx Menu" \ - --menu "Choose an option:" 20 60 11 \ + --menu "Choose an option:" 20 60 12 \ 1 "Install/Check Nginx" \ 2 "Start Nginx" \ 3 "Stop Nginx" \ @@ -172,13 +190,13 @@ configure_nginx() { 12 "Return to Main Menu" \ 3>&1 1>&2 2>&3 3>&-) - clear - # Check if user canceled - if [ $? -eq 1 ]; then + if [ $? -ne 0 ]; then break fi + clear + case $CHOICE in 1) install_nginx_if_needed ;; 2) start_nginx ;; diff --git a/iso_configs/server/scripts/debsrv/configure_postfix.sh b/iso_configs/server/scripts/debsrv/configure_postfix.sh index 89ef1208..1b657544 100755 --- a/iso_configs/server/scripts/debsrv/configure_postfix.sh +++ b/iso_configs/server/scripts/debsrv/configure_postfix.sh @@ -107,16 +107,16 @@ main_menu() { 6 "Enable Postfix at Boot" \ 7 "Disable Postfix at Boot" \ 8 "Secure Postfix Configuration" \ - 9 "Exit" \ + 9 "Return to Main Menu" \ 3>&1 1>&2 2>&3 3>&-) - clear - # Check if user canceled - if [ $? -eq 1 ]; then + if [ $? -ne 0 ]; then break fi + clear + case $CHOICE in 1) install_postfix_if_needed ;; 2) configure_postfix ;; diff --git a/iso_configs/server/scripts/debsrv/configure_postgresql.sh b/iso_configs/server/scripts/debsrv/configure_postgresql.sh index b17fbee8..c25514fd 100755 --- a/iso_configs/server/scripts/debsrv/configure_postgresql.sh +++ b/iso_configs/server/scripts/debsrv/configure_postgresql.sh @@ -1,147 +1,199 @@ #!/bin/bash -# Function to install PostgreSQL if not installed +# Função para instalar PostgreSQL, se necessário install_postgresql_if_needed() { if ! dpkg -l postgresql > /dev/null 2>&1; then - echo "PostgreSQL is not installed. Installing..." + echo "PostgreSQL não está instalado. Instalando..." if sudo apt-get install -y postgresql; then - echo "PostgreSQL installed successfully." + echo "PostgreSQL instalado com sucesso." + dialog --msgbox "PostgreSQL instalado com sucesso." 10 30 else - echo "Failed to install PostgreSQL. Exiting." + echo "Falha ao instalar PostgreSQL. Saindo." + dialog --msgbox "Falha ao instalar PostgreSQL. Saindo." 10 30 exit 1 fi + else + dialog --msgbox "PostgreSQL já está instalado." 10 30 fi } -# Function to start PostgreSQL +# Função para iniciar PostgreSQL start_postgresql() { sudo systemctl start postgresql - dialog --msgbox "PostgreSQL started." 10 30 + if [[ $? -eq 0 ]]; then + dialog --msgbox "PostgreSQL iniciado com sucesso." 10 30 + else + dialog --msgbox "Falha ao iniciar PostgreSQL." 10 30 + fi } -# Function to stop PostgreSQL +# Função para parar PostgreSQL stop_postgresql() { sudo systemctl stop postgresql - dialog --msgbox "PostgreSQL stopped." 10 30 + if [[ $? -eq 0 ]]; then + dialog --msgbox "PostgreSQL parado com sucesso." 10 30 + else + dialog --msgbox "Falha ao parar PostgreSQL." 10 30 + fi } -# Function to restart PostgreSQL +# Função para reiniciar PostgreSQL restart_postgresql() { sudo systemctl restart postgresql - dialog --msgbox "PostgreSQL restarted." 10 30 + if [[ $? -eq 0 ]]; then + dialog --msgbox "PostgreSQL reiniciado com sucesso." 10 30 + else + dialog --msgbox "Falha ao reiniciar PostgreSQL." 10 30 + fi } -# Function to enable PostgreSQL at boot +# Função para habilitar PostgreSQL na inicialização enable_postgresql_at_boot() { sudo systemctl enable postgresql - dialog --msgbox "PostgreSQL enabled at boot." 10 30 + if [[ $? -eq 0 ]]; then + dialog --msgbox "PostgreSQL habilitado na inicialização com sucesso." 10 30 + else + dialog --msgbox "Falha ao habilitar PostgreSQL na inicialização." 10 30 + fi } -# Function to disable PostgreSQL at boot +# Função para desabilitar PostgreSQL na inicialização disable_postgresql_at_boot() { sudo systemctl disable postgresql - dialog --msgbox "PostgreSQL disabled at boot." 10 30 + if [[ $? -eq 0 ]]; then + dialog --msgbox "PostgreSQL desabilitado na inicialização com sucesso." 10 30 + else + dialog --msgbox "Falha ao desabilitar PostgreSQL na inicialização." 10 30 + fi } -# Function to secure PostgreSQL installation +# Função para garantir a instalação do PostgreSQL secure_postgresql() { sudo passwd postgres sudo -u postgres psql -c "ALTER USER postgres PASSWORD 'your_password';" - dialog --msgbox "PostgreSQL installation secured." 10 30 + if [[ $? -eq 0 ]]; then + dialog --msgbox "Instalação do PostgreSQL protegida com sucesso." 10 30 + else + dialog --msgbox "Falha ao proteger a instalação do PostgreSQL." 10 30 + fi } -# Function to create a database +# Função para criar um banco de dados create_database() { - DATABASE=$(dialog --inputbox "Enter the name of the database to create:" 10 40 3>&1 1>&2 2>&3 3>&-) + DATABASE=$(dialog --inputbox "Digite o nome do banco de dados a ser criado:" 10 40 3>&1 1>&2 2>&3 3>&-) if [[ -n "$DATABASE" ]]; then sudo -u postgres createdb $DATABASE - dialog --msgbox "Database '$DATABASE' created successfully." 10 60 - fi -} - -# Function to create a table -create_table() { - DATABASE=$(dialog --inputbox "Enter the name of the database:" 10 40 3>&1 1>&2 2>&3 3>&-) - TABLE=$(dialog --inputbox "Enter the name of the table to create:" 10 40 3>&1 1>&2 2>&3 3>&-) - if [[ -n "$DATABASE" && -n "$TABLE" ]]; then - sudo -u postgres psql -d $DATABASE -c "CREATE TABLE $TABLE (id SERIAL PRIMARY KEY);" - dialog --msgbox "Table '$TABLE' created in database '$DATABASE' successfully." 10 60 - fi -} - -# Function to insert data into a table -insert_data() { - DATABASE=$(dialog --inputbox "Enter the name of the database:" 10 40 3>&1 1>&2 2>&3 3>&-) - TABLE=$(dialog --inputbox "Enter the name of the table to insert data into:" 10 40 3>&1 1>&2 2>&3 3>&-) - DATA=$(dialog --inputbox "Enter data to insert into table (e.g., 'value1, value2'):" 10 60 3>&1 1>&2 2>&3 3>&-) - if [[ -n "$DATABASE" && -n "$TABLE" && -n "$DATA" ]]; then - sudo -u postgres psql -d $DATABASE -c "INSERT INTO $TABLE VALUES ($DATA);" - dialog --msgbox "Data inserted into table '$TABLE' in database '$DATABASE' successfully." 10 60 - fi -} - -# Function to query data from a table -query_data() { - DATABASE=$(dialog --inputbox "Enter the name of the database:" 10 40 3>&1 1>&2 2>&3 3>&-) - TABLE=$(dialog --inputbox "Enter the name of the table to query from:" 10 40 3>&1 1>&2 2>&3 3>&-) - if [[ -n "$DATABASE" && -n "$TABLE" ]]; then - QUERY=$(dialog --inputbox "Enter SQL query (e.g., 'SELECT * FROM $TABLE;'):" 10 60 3>&1 1>&2 2>&3 3>&-) - if [[ -n "$QUERY" ]]; then - sudo -u postgres psql -d $DATABASE -c "$QUERY" - dialog --msgbox "Query executed successfully." 10 60 - fi - fi -} - -# Function to backup the database -backup_database() { - DATABASE=$(dialog --inputbox "Enter the name of the database to backup:" 10 40 3>&1 1>&2 2>&3 3>&-) - if [[ -n "$DATABASE" ]]; then - sudo -u postgres pg_dump $DATABASE > $DATABASE.sql - dialog --msgbox "Database '$DATABASE' backed up to '$DATABASE.sql' successfully." 10 60 - fi -} - -# Function to restore the database -restore_database() { - DATABASE=$(dialog --inputbox "Enter the name of the database to restore into:" 10 40 3>&1 1>&2 2>&3 3>&-) - if [[ -n "$DATABASE" ]]; then - FILE=$(dialog --inputbox "Enter the path to the SQL file to restore:" 10 60 3>&1 1>&2 2>&3 3>&-) - if [[ -f "$FILE" ]]; then - sudo -u postgres psql -d $DATABASE < $FILE - dialog --msgbox "Database '$DATABASE' restored successfully." 10 60 + if [[ $? -eq 0 ]]; então + dialog --msgbox "Banco de dados '$DATABASE' criado com sucesso." 10 60 else - dialog --msgbox "File not found or invalid." 10 60 + dialog --msgbox "Falha ao criar o banco de dados '$DATABASE'." 10 60 fi fi } -# Function to configure PostgreSQL +# Função para criar uma tabela +create_table() { + DATABASE=$(dialog --inputbox "Digite o nome do banco de dados:" 10 40 3>&1 1>&2 2>&3 3>&-) + TABLE=$(dialog --inputbox "Digite o nome da tabela a ser criada:" 10 40 3>&1 1>&2 2>&3 3>&-) + if [[ -n "$DATABASE" && -n "$TABLE" ]]; então + sudo -u postgres psql -d $DATABASE -c "CREATE TABLE $TABLE (id SERIAL PRIMARY KEY);" + if [[ $? -eq 0 ]]; então + dialog --msgbox "Tabela '$TABLE' criada no banco de dados '$DATABASE' com sucesso." 10 60 + else + dialog --msgbox "Falha ao criar a tabela '$TABLE' no banco de dados '$DATABASE'." 10 60 + fi + fi +} + +# Função para inserir dados em uma tabela +insert_data() { + DATABASE=$(dialog --inputbox "Digite o nome do banco de dados:" 10 40 3>&1 1>&2 2>&3 3>&-) + TABLE=$(dialog --inputbox "Digite o nome da tabela para inserir dados:" 10 40 3>&1 1>&2 2>&3 3>&-) + DATA=$(dialog --inputbox "Digite os dados para inserir na tabela (por exemplo, 'valor1, valor2'):" 10 60 3>&1 1>&2 2>&3 3>&-) + if [[ -n "$DATABASE" && -n "$TABLE" && -n "$DATA" ]]; então + sudo -u postgres psql -d $DATABASE -c "INSERT INTO $TABLE VALUES ($DATA);" + if [[ $? -eq 0 ]]; então + dialog --msgbox "Dados inseridos na tabela '$TABLE' no banco de dados '$DATABASE' com sucesso." 10 60 + else + dialog --msgbox "Falha ao inserir dados na tabela '$TABLE' no banco de dados '$DATABASE'." 10 60 + fi + fi +} + +# Função para consultar dados de uma tabela +query_data() { + DATABASE=$(dialog --inputbox "Digite o nome do banco de dados:" 10 40 3>&1 1>&2 2>&3 3>&-) + TABLE=$(dialog --inputbox "Digite o nome da tabela para consultar:" 10 40 3>&1 1>&2 2>&3 3>&-) + if [[ -n "$DATABASE" && -n "$TABLE" ]]; então + QUERY=$(dialog --inputbox "Digite a consulta SQL (por exemplo, 'SELECT * FROM $TABLE;'):" 10 60 3>&1 1>&2 2>&3 3>&-) + if [[ -n "$QUERY" ]]; então + RESULT=$(sudo -u postgres psql -d $DATABASE -c "$QUERY") + if [[ $? -eq 0 ]]; então + dialog --msgbox "Consulta executada com sucesso. Resultado:\n$RESULT" 20 80 + else + dialog --msgbox "Falha ao executar a consulta na tabela '$TABLE' no banco de dados '$DATABASE'." 10 60 + fi + fi + fi +} + +# Função para fazer backup do banco de dados +backup_database() { + DATABASE=$(dialog --inputbox "Digite o nome do banco de dados para fazer backup:" 10 40 3>&1 1>&2 2>&3 3>&-) + if [[ -n "$DATABASE" ]]; então + sudo -u postgres pg_dump $DATABASE > $DATABASE.sql + if [[ $? -eq 0 ]]; então + dialog --msgbox "Banco de dados '$DATABASE' feito backup para '$DATABASE.sql' com sucesso." 10 60 + else + dialog --msgbox "Falha ao fazer backup do banco de dados '$DATABASE'." 10 60 + fi + fi +} + +# Função para restaurar o banco de dados +restore_database() { + DATABASE=$(dialog --inputbox "Digite o nome do banco de dados para restaurar:" 10 40 3>&1 1>&2 2>&3 3>&-) + if [[ -n "$DATABASE" ]]; então + FILE=$(dialog --inputbox "Digite o caminho para o arquivo SQL para restaurar:" 10 60 3>&1 1>&2 2>&3 3>&-) + if [[ -f "$FILE" ]]; então + sudo -u postgres psql -d $DATABASE < $FILE + if [[ $? -eq 0 ]]; então + dialog --msgbox "Banco de dados '$DATABASE' restaurado com sucesso." 10 60 + else + dialog --msgbox "Falha ao restaurar o banco de dados '$DATABASE'." 10 60 + fi + else + dialog --msgbox "Arquivo não encontrado ou inválido." 10 60 + fi + fi +} + +# Função para configurar PostgreSQL configure_postgresql() { while true; do - CHOICE=$(dialog --clear --backtitle "Configure PostgreSQL" \ - --title "PostgreSQL Menu" \ - --menu "Choose an option:" 20 60 14 \ - 1 "Install/Check PostgreSQL" \ - 2 "Start PostgreSQL" \ - 3 "Stop PostgreSQL" \ - 4 "Restart PostgreSQL" \ - 5 "Enable PostgreSQL at Boot" \ - 6 "Disable PostgreSQL at Boot" \ - 7 "Secure PostgreSQL Installation" \ - 8 "Create Database" \ - 9 "Create Table" \ - 10 "Insert Data into Table" \ - 11 "Query Data from Table" \ - 12 "Backup Database" \ - 13 "Restore Database" \ - 14 "Return to Main Menu" \ + CHOICE=$(dialog --clear --backtitle "Configurar PostgreSQL" \ + --title "Menu do PostgreSQL" \ + --menu "Escolha uma opção:" 20 60 14 \ + 1 "Instalar/Verificar PostgreSQL" \ + 2 "Iniciar PostgreSQL" \ + 3 "Parar PostgreSQL" \ + 4 "Reiniciar PostgreSQL" \ + 5 "Habilitar PostgreSQL na Inicialização" \ + 6 "Desabilitar PostgreSQL na Inicialização" \ + 7 "Proteger Instalação do PostgreSQL" \ + 8 "Criar Banco de Dados" \ + 9 "Criar Tabela" \ + 10 "Inserir Dados na Tabela" \ + 11 "Consultar Dados da Tabela" \ + 12 "Fazer Backup do Banco de Dados" \ + 13 "Restaurar Banco de Dados" \ + 14 "Retornar ao Menu Principal" \ 3>&1 1>&2 2>&3 3>&-) clear - # Check if user canceled - if [ $? -eq 1 ]; then + # Verificar se o usuário cancelou + if [ $? -eq 1 ]; então break fi @@ -160,11 +212,11 @@ configure_postgresql() { 12) backup_database ;; 13) restore_database ;; 14) break ;; - *) dialog --msgbox "Invalid option." 10 30 ;; + *) dialog --msgbox "Opção inválida." 10 30 ;; esac done } -# Show main configuration menu +# Mostrar menu de configuração principal configure_postgresql diff --git a/iso_configs/server/scripts/debsrv/update_and_install.sh b/iso_configs/server/scripts/debsrv/update_and_install.sh index 2d4ba9e0..e3d6e1bf 100755 --- a/iso_configs/server/scripts/debsrv/update_and_install.sh +++ b/iso_configs/server/scripts/debsrv/update_and_install.sh @@ -81,8 +81,11 @@ while true; do fi done -# Convert selection into an array -IFS=" " read -r -a packages_to_install <<< "$selections" +# Convert selection indices into package names +packages_to_install=() +for index in $selections; do + packages_to_install+=("${PACKAGES[$((index - 1))]}") +done # Call function to install selected packages install_selected_packages "${packages_to_install[@]}" diff --git a/iso_configs/server/scripts/debsrv/welcome.sh b/iso_configs/server/scripts/debsrv/welcome.sh index 640415ce..15a9ece1 100755 --- a/iso_configs/server/scripts/debsrv/welcome.sh +++ b/iso_configs/server/scripts/debsrv/welcome.sh @@ -1,5 +1,8 @@ #!/bin/bash +# Directory where the scripts are located +SCRIPT_DIR="/usr/local/bin" + # Function to display the main menu main_menu() { while true; do @@ -17,10 +20,9 @@ main_menu() { 9 "Configure Postfix" \ 10 "Configure MariaDB" \ 11 "Configure PostgreSQL" \ - 12 "Configure SQLite" \ - 13 "Configure PHP and Docker" \ - 14 "Exit" \ - 3>&1 1>&2 2>&3 3>&-) + 12 "Configure Docker" \ + 13 "Exit" \ + 3>&1 1>&2 2>&3) # Check if user canceled or exited if [[ $? -ne 0 ]]; then @@ -32,20 +34,19 @@ main_menu() { clear case $CHOICE in - 1) sudo ./configure_ssh.sh ;; - 2) sudo ./configure_static_ip.sh ;; - 3) sudo ./update_and_install.sh ;; - 4) sudo ./configure_firewalld.sh ;; - 5) sudo ./configure_hostname.sh ;; - 6) sudo ./create_user.sh ;; - 7) sudo ./configure_nginx.sh ;; - 8) sudo ./configure_apache2.sh ;; - 9) sudo ./configure_postfix.sh ;; - 10) sudo ./configure_mariadb.sh ;; - 11) sudo ./configure_postgresql.sh ;; - 12) sudo ./configure_sqlite.sh ;; - 13) sudo ./configure_php_and_docker.sh ;; - 14) clear; echo "Exiting..."; exit 0 ;; + 1) sudo "$SCRIPT_DIR/configure_ssh.sh" ;; + 2) sudo "$SCRIPT_DIR/configure_static_ip.sh" ;; + 3) sudo "$SCRIPT_DIR/update_and_install.sh" ;; + 4) sudo "$SCRIPT_DIR/configure_firewalld.sh" ;; + 5) sudo "$SCRIPT_DIR/configure_hostname.sh" ;; + 6) sudo "$SCRIPT_DIR/create_user.sh" ;; + 7) sudo "$SCRIPT_DIR/configure_nginx.sh" ;; + 8) sudo "$SCRIPT_DIR/configure_apache2.sh" ;; + 9) sudo "$SCRIPT_DIR/configure_postfix.sh" ;; + 10) sudo "$SCRIPT_DIR/configure_mariadb.sh" ;; + 11) sudo "$SCRIPT_DIR/configure_postgresql.sh" ;; + 12) sudo "$SCRIPT_DIR/configure_docker.sh" ;; + 13) clear; echo "Exiting..."; exit 0 ;; *) dialog --msgbox "Invalid option." 10 30 ;; esac done @@ -66,13 +67,19 @@ This tool will help you configure various aspects of your server, including: 9. Postfix: Configure the Postfix mail server. 10. MariaDB: Set up the MariaDB database server. 11. PostgreSQL: Set up the PostgreSQL database server. -12. SQLite: Configure the SQLite database. -13. PHP: Configure PHP and related settings. -14. Docker: Configure Docker and manage containers. -15. Exit: Exit the configuration tool. +12. PHP: Configure PHP and related settings. +13. Docker: Configure Docker and manage containers. +14. Exit: Exit the configuration tool. Please select an option from the menu to begin." 20 60 +# Check if user canceled the welcome message +if [[ $? -ne 0 ]]; then + clear + echo "Welcome message closed or canceled. Exiting..." + exit 0 +fi + # Display main menu main_menu diff --git a/iso_configs/server/scripts/devsrv/welcome.sh b/iso_configs/server/scripts/devsrv/welcome.sh index 640415ce..aa8462ab 100755 --- a/iso_configs/server/scripts/devsrv/welcome.sh +++ b/iso_configs/server/scripts/devsrv/welcome.sh @@ -1,5 +1,8 @@ #!/bin/bash +# Directory where the scripts are located +SCRIPT_DIR="/usr/local/bin" + # Function to display the main menu main_menu() { while true; do @@ -20,7 +23,7 @@ main_menu() { 12 "Configure SQLite" \ 13 "Configure PHP and Docker" \ 14 "Exit" \ - 3>&1 1>&2 2>&3 3>&-) + 3>&1 1>&2 2>&3) # Check if user canceled or exited if [[ $? -ne 0 ]]; then @@ -32,19 +35,19 @@ main_menu() { clear case $CHOICE in - 1) sudo ./configure_ssh.sh ;; - 2) sudo ./configure_static_ip.sh ;; - 3) sudo ./update_and_install.sh ;; - 4) sudo ./configure_firewalld.sh ;; - 5) sudo ./configure_hostname.sh ;; - 6) sudo ./create_user.sh ;; - 7) sudo ./configure_nginx.sh ;; - 8) sudo ./configure_apache2.sh ;; - 9) sudo ./configure_postfix.sh ;; - 10) sudo ./configure_mariadb.sh ;; - 11) sudo ./configure_postgresql.sh ;; - 12) sudo ./configure_sqlite.sh ;; - 13) sudo ./configure_php_and_docker.sh ;; + 1) sudo "$SCRIPT_DIR/configure_ssh.sh" ;; + 2) sudo "$SCRIPT_DIR/configure_static_ip.sh" ;; + 3) sudo "$SCRIPT_DIR/update_and_install.sh" ;; + 4) sudo "$SCRIPT_DIR/configure_firewalld.sh" ;; + 5) sudo "$SCRIPT_DIR/configure_hostname.sh" ;; + 6) sudo "$SCRIPT_DIR/create_user.sh" ;; + 7) sudo "$SCRIPT_DIR/configure_nginx.sh" ;; + 8) sudo "$SCRIPT_DIR/configure_apache2.sh" ;; + 9) sudo "$SCRIPT_DIR/configure_postfix.sh" ;; + 10) sudo "$SCRIPT_DIR/configure_mariadb.sh" ;; + 11) sudo "$SCRIPT_DIR/configure_postgresql.sh" ;; + 12) sudo "$SCRIPT_DIR/configure_sqlite.sh" ;; + 13) sudo "$SCRIPT_DIR/configure_php_and_docker.sh" ;; 14) clear; echo "Exiting..."; exit 0 ;; *) dialog --msgbox "Invalid option." 10 30 ;; esac