From 84c588770c53c2e4ebd940979ad73a4d78efa783 Mon Sep 17 00:00:00 2001 From: Gil Shwartz <58849439+GShwartz@users.noreply.github.com> Date: Wed, 1 May 2024 14:20:28 +0300 Subject: [PATCH 001/124] Add files via upload --- installer-contrib-tweaks-preinstall.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/installer-contrib-tweaks-preinstall.conf b/installer-contrib-tweaks-preinstall.conf index ac0c19ee..1b056748 100644 --- a/installer-contrib-tweaks-preinstall.conf +++ b/installer-contrib-tweaks-preinstall.conf @@ -1,5 +1,5 @@ execute+=(tweaks/cwm-settimezone) execute+=(tweaks/ubuntu-sysctl-swap) -execute+=(tweaks/ubuntu-updatemirror) +#execute+=(tweaks/ubuntu-updatemirror) # CWM-ZONE variable is N/A execute+=(include/checkInternetConnectivity) execute+=(tweaks/ubuntu-disable-openssl-randfile) From a38ac1811ecdaf15d7d6562fda45b55b06fa6dbf Mon Sep 17 00:00:00 2001 From: Gil Shwartz <58849439+GShwartz@users.noreply.github.com> Date: Wed, 1 May 2024 14:21:13 +0300 Subject: [PATCH 002/124] Add files via upload --- tweaks/ubuntu-updateos | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/tweaks/ubuntu-updateos b/tweaks/ubuntu-updateos index 9011de7d..18ecf05e 100755 --- a/tweaks/ubuntu-updateos +++ b/tweaks/ubuntu-updateos @@ -8,13 +8,16 @@ elif [ -f "../include/startup.sh" ]; then fi echo "Updating and upgrading OS to latest kernel and packages" | log -export DEBIAN_FRONTEND=noninteractive -export DEBIAN_PRIORITY=critical +# NOTE: since the kamatera mirror is faulty the update process is faulty from that stage on. +# without these changes, certine packages related to nginx runtime will be unavailable. + +#export DEBIAN_FRONTEND=noninteractive +#export DEBIAN_PRIORITY=critical apt update -qy | log -apt upgrade -qy -o "Dpkg::Options::=--force-confdef" -o "Dpkg::Options::=--force-confold" | log -apt autoclean -qy | log -apt upgrade -y | log -apt autoremove -y | log +#apt upgrade -qy -o "Dpkg::Options::=--force-confdef" -o "Dpkg::Options::=--force-confold" | log +#apt autoclean -qy | log +#apt upgrade -y | log +#apt autoremove -y | log # Clean up old journalctl logs echo "Cleaning up old journalctl logs" | log From 667f62f10b2be47de31fba6e8f542b423cf054ea Mon Sep 17 00:00:00 2001 From: Gil Shwartz <58849439+GShwartz@users.noreply.github.com> Date: Wed, 1 May 2024 14:21:48 +0300 Subject: [PATCH 003/124] Add files via upload --- services/nginx-latest-offirepo | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/services/nginx-latest-offirepo b/services/nginx-latest-offirepo index 4c3e0413..f72d92f4 100755 --- a/services/nginx-latest-offirepo +++ b/services/nginx-latest-offirepo @@ -7,6 +7,10 @@ elif [ -f "../include/startup.sh" ]; then fi appPath=/var/www/html +# Creates the dir if not exists to prevent nginx install exit 1 with 'dir not exists' +if [ ! -d $appPath ]; then + mkdir -p $appPath +fi echo "Adding nginx repo to apt" | log add-apt-repository -y ppa:nginx/stable | log From c6a9f6a5ef972baadbc5ec43200a972366e35790 Mon Sep 17 00:00:00 2001 From: Gil Shwartz <58849439+GShwartz@users.noreply.github.com> Date: Wed, 1 May 2024 14:22:13 +0300 Subject: [PATCH 004/124] Add files via upload --- apps/redmine-5.0-offisrc-nginx | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/apps/redmine-5.0-offisrc-nginx b/apps/redmine-5.0-offisrc-nginx index fa26892b..05680e70 100755 --- a/apps/redmine-5.0-offisrc-nginx +++ b/apps/redmine-5.0-offisrc-nginx @@ -46,7 +46,12 @@ EOF echo "Installing Bundle" | log cd $appPath -gem install bundler --no-document +# Components have been updated with time, for the bundler to work, these specific versions are required. +gem install nokogiri -v 1.15.6 +gem install net-imap -v 0.3.7 +gem install rails -v 6.1.7.7 +gem install bundler -v 2.4.22 + bundle install --without development test postgresql sqlite bundle exec rake generate_secret_token RAILS_ENV=production bundle exec rake db:migrate From 14b74e91315518e38e8d9ef2372a02f1f16e3e10 Mon Sep 17 00:00:00 2001 From: Gil Shwartz <58849439+GShwartz@users.noreply.github.com> Date: Wed, 1 May 2024 16:54:11 +0300 Subject: [PATCH 005/124] Update redmine-4.2-offisrc-nginx --- apps/redmine-4.2-offisrc-nginx | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/apps/redmine-4.2-offisrc-nginx b/apps/redmine-4.2-offisrc-nginx index e05c15e4..820ec4c4 100755 --- a/apps/redmine-4.2-offisrc-nginx +++ b/apps/redmine-4.2-offisrc-nginx @@ -46,7 +46,11 @@ EOF echo "Installing Bundle" | log cd $appPath -gem install bundler --no-document +gem install nokogiri -v 1.15.6 +gem install net-imap -v 0.3.7 +gem install rails -v 6.1.7.7 +gem install bundler -v 2.4.22 + bundle install --without development test postgresql sqlite bundle exec rake generate_secret_token RAILS_ENV=production bundle exec rake db:migrate From 3324c716f8ed657f7012734ccad451c9c5389c02 Mon Sep 17 00:00:00 2001 From: Gil Shwartz <58849439+GShwartz@users.noreply.github.com> Date: Mon, 6 May 2024 13:31:36 +0300 Subject: [PATCH 006/124] Add files via upload --- services/apache-latest-offirepo.sh | 45 ++++++++++++++++++++++++++++ services/ruby-latest-offirepo-dev.sh | 23 ++++++++++++++ 2 files changed, 68 insertions(+) create mode 100644 services/apache-latest-offirepo.sh create mode 100644 services/ruby-latest-offirepo-dev.sh diff --git a/services/apache-latest-offirepo.sh b/services/apache-latest-offirepo.sh new file mode 100644 index 00000000..626109e3 --- /dev/null +++ b/services/apache-latest-offirepo.sh @@ -0,0 +1,45 @@ +#!/bin/bash + +if [ -f "include/startup.sh" ]; then + . include/startup.sh +elif [ -f "../include/startup.sh" ]; then + . ../include/startup.sh +fi + +installPackage apache2 +installPackage libapache2-mod-passenger + +cat <<_EOF_ > /etc/apache2/sites-available/redmine.conf + + ServerName redmine.omc + DocumentRoot ${REPO_DIR}/public + + Allow from all + Options -MultiViews + Require all granted + + + + + + ServerName redmine.omc + DocumentRoot ${REPO_DIR}/public + + SSLEngine on + SSLCertificateFile /etc/ssl/certs/apache-selfsigned.crt + SSLCertificateKeyFile /etc/ssl/private/apache-selfsigned.key + + + Allow from all + Options -MultiViews + Require all granted + + + +_EOF_ + +tag apache.success +tag httpd.success +tagScript success + +exit 0 \ No newline at end of file diff --git a/services/ruby-latest-offirepo-dev.sh b/services/ruby-latest-offirepo-dev.sh new file mode 100644 index 00000000..e453ccb2 --- /dev/null +++ b/services/ruby-latest-offirepo-dev.sh @@ -0,0 +1,23 @@ +#!/bin/bash + +if [ -f "include/startup.sh" ]; then + . include/startup.sh +elif [ -f "../include/startup.sh" ]; then + . ../include/startup.sh +fi + +echo "Installing Ruby from apt" | log + +installPackage ruby | log +waitOrStop 0 "Failed to install ruby" + +installPackage ruby-dev | log +waitOrStop 0 "Failed to install ruby-dev" + +installPackage build-essential | log +waitOrStop 0 "Failed to install build-essential" + + +tag ruby.success +tagScript success +exit 0 \ No newline at end of file From 475d4d967389d5e5fd43ef15609706e12a647525 Mon Sep 17 00:00:00 2001 From: Gil Shwartz <58849439+GShwartz@users.noreply.github.com> Date: Mon, 6 May 2024 13:31:53 +0300 Subject: [PATCH 007/124] Add files via upload --- tweaks/apache-enable-ssl.sh | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 tweaks/apache-enable-ssl.sh diff --git a/tweaks/apache-enable-ssl.sh b/tweaks/apache-enable-ssl.sh new file mode 100644 index 00000000..69a9df5f --- /dev/null +++ b/tweaks/apache-enable-ssl.sh @@ -0,0 +1,21 @@ +#!/bin/bash + +if [ -f "include/startup.sh" ]; then + . include/startup.sh +elif [ -f "../include/startup.sh" ]; then + . ../include/startup.sh +fi + +checkTagExist apache.success + +echo "Installing openssl and generating certificate..." +installPackage openssl +openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/apache-selfsigned.key -out /etc/ssl/certs/apache-selfsigned.crt -subj "/C=US/ST=YourState/L=YourCity/O=YourOrganization/OU=IT/CN=example.com" + +descriptionAppend "SSL certificates location: /etc/ssl/certs/" +descriptionAppend " " + +tag ssl-ready.success +tagScript success + +exit 0 \ No newline at end of file From aecd71e71da550405305725f0e9b7826cfe6a34d Mon Sep 17 00:00:00 2001 From: Gil Shwartz <58849439+GShwartz@users.noreply.github.com> Date: Mon, 6 May 2024 13:36:06 +0300 Subject: [PATCH 008/124] Add files via upload --- include/installInProgressHttpd-apache.sh | 40 ++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 include/installInProgressHttpd-apache.sh diff --git a/include/installInProgressHttpd-apache.sh b/include/installInProgressHttpd-apache.sh new file mode 100644 index 00000000..c0c74783 --- /dev/null +++ b/include/installInProgressHttpd-apache.sh @@ -0,0 +1,40 @@ +#!/bin/bash + +# Add this at the begining of all scripts. +if [ -f "include/startup.sh" ]; then + . include/startup.sh +elif [ -f "../include/startup.sh" ]; then + . ../include/startup.sh +fi + +echo "Installing Figlet..." +apt update && apt install -y figlet + +appPath=/etc/apache2/sites-available/ +figletApp=$(which figlet) + +if [ ! -d "$appPath" ]; then + echo "Web server directory doesn't exist, exiting." | log 1 + exit 1 +fi + +if [ -f "$appPath/redmine.conf" ]; then + echo "redmine.conf file exists. Skipping." | log + tagScript success + exit 99 +fi + +if [ -z "$figletApp" ]; then + echo "Figlet is not installed, please install figlet." | log 1 + exit 1 +fi + +echo "Adding 'Install in Progress' notice to $appPath/index.html" | log +echo "Installation Progress
" > "$appPath/index.html"
+$figletApp "Install in Progress" >> "$appPath/index.html"
+echo "Please Wait. Application and services installation is in progress, the process will take a couple of minutes to complete. Thank you for your patience. Refresh the page within a couple of minutes for an updated status." >> "$appPath/index.html"
+echo "
" >> "$appPath/index.html" + + +tagScript success +exit 0 From 16d0dbff4a8d48eed491a1bf9eaf0a8ff40370a3 Mon Sep 17 00:00:00 2001 From: Gil Shwartz <58849439+GShwartz@users.noreply.github.com> Date: Mon, 6 May 2024 13:44:42 +0300 Subject: [PATCH 009/124] Update and rename apache-latest-offirepo.sh to apache-latest-offirepo --- services/{apache-latest-offirepo.sh => apache-latest-offirepo} | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename services/{apache-latest-offirepo.sh => apache-latest-offirepo} (94%) diff --git a/services/apache-latest-offirepo.sh b/services/apache-latest-offirepo similarity index 94% rename from services/apache-latest-offirepo.sh rename to services/apache-latest-offirepo index 626109e3..9349abf6 100644 --- a/services/apache-latest-offirepo.sh +++ b/services/apache-latest-offirepo @@ -42,4 +42,4 @@ tag apache.success tag httpd.success tagScript success -exit 0 \ No newline at end of file +exit 0 From 055825ca01f0fb4e7ae34488d0793600372a9e21 Mon Sep 17 00:00:00 2001 From: Gil Shwartz <58849439+GShwartz@users.noreply.github.com> Date: Mon, 6 May 2024 13:56:38 +0300 Subject: [PATCH 010/124] Update apache-latest-offirepo From bd948b94abf84e5227590c5219931337a110b8db Mon Sep 17 00:00:00 2001 From: Gil Shwartz <58849439+GShwartz@users.noreply.github.com> Date: Mon, 6 May 2024 13:59:47 +0300 Subject: [PATCH 011/124] Delete services/apache-latest-offirepo --- services/apache-latest-offirepo | 45 --------------------------------- 1 file changed, 45 deletions(-) delete mode 100644 services/apache-latest-offirepo diff --git a/services/apache-latest-offirepo b/services/apache-latest-offirepo deleted file mode 100644 index 9349abf6..00000000 --- a/services/apache-latest-offirepo +++ /dev/null @@ -1,45 +0,0 @@ -#!/bin/bash - -if [ -f "include/startup.sh" ]; then - . include/startup.sh -elif [ -f "../include/startup.sh" ]; then - . ../include/startup.sh -fi - -installPackage apache2 -installPackage libapache2-mod-passenger - -cat <<_EOF_ > /etc/apache2/sites-available/redmine.conf - - ServerName redmine.omc - DocumentRoot ${REPO_DIR}/public - - Allow from all - Options -MultiViews - Require all granted - - - - - - ServerName redmine.omc - DocumentRoot ${REPO_DIR}/public - - SSLEngine on - SSLCertificateFile /etc/ssl/certs/apache-selfsigned.crt - SSLCertificateKeyFile /etc/ssl/private/apache-selfsigned.key - - - Allow from all - Options -MultiViews - Require all granted - - - -_EOF_ - -tag apache.success -tag httpd.success -tagScript success - -exit 0 From 1ff1968aec4f53fc0ee13004c5c44bd117149c9d Mon Sep 17 00:00:00 2001 From: Gil Shwartz <58849439+GShwartz@users.noreply.github.com> Date: Mon, 6 May 2024 14:00:01 +0300 Subject: [PATCH 012/124] Delete services/ruby-latest-offirepo-dev.sh --- services/ruby-latest-offirepo-dev.sh | 23 ----------------------- 1 file changed, 23 deletions(-) delete mode 100644 services/ruby-latest-offirepo-dev.sh diff --git a/services/ruby-latest-offirepo-dev.sh b/services/ruby-latest-offirepo-dev.sh deleted file mode 100644 index e453ccb2..00000000 --- a/services/ruby-latest-offirepo-dev.sh +++ /dev/null @@ -1,23 +0,0 @@ -#!/bin/bash - -if [ -f "include/startup.sh" ]; then - . include/startup.sh -elif [ -f "../include/startup.sh" ]; then - . ../include/startup.sh -fi - -echo "Installing Ruby from apt" | log - -installPackage ruby | log -waitOrStop 0 "Failed to install ruby" - -installPackage ruby-dev | log -waitOrStop 0 "Failed to install ruby-dev" - -installPackage build-essential | log -waitOrStop 0 "Failed to install build-essential" - - -tag ruby.success -tagScript success -exit 0 \ No newline at end of file From 9d214ab36a3c9932f5d86fcb01b5b135b5469d18 Mon Sep 17 00:00:00 2001 From: Gil Shwartz <58849439+GShwartz@users.noreply.github.com> Date: Mon, 6 May 2024 14:00:16 +0300 Subject: [PATCH 013/124] Delete include/installInProgressHttpd-apache.sh --- include/installInProgressHttpd-apache.sh | 40 ------------------------ 1 file changed, 40 deletions(-) delete mode 100644 include/installInProgressHttpd-apache.sh diff --git a/include/installInProgressHttpd-apache.sh b/include/installInProgressHttpd-apache.sh deleted file mode 100644 index c0c74783..00000000 --- a/include/installInProgressHttpd-apache.sh +++ /dev/null @@ -1,40 +0,0 @@ -#!/bin/bash - -# Add this at the begining of all scripts. -if [ -f "include/startup.sh" ]; then - . include/startup.sh -elif [ -f "../include/startup.sh" ]; then - . ../include/startup.sh -fi - -echo "Installing Figlet..." -apt update && apt install -y figlet - -appPath=/etc/apache2/sites-available/ -figletApp=$(which figlet) - -if [ ! -d "$appPath" ]; then - echo "Web server directory doesn't exist, exiting." | log 1 - exit 1 -fi - -if [ -f "$appPath/redmine.conf" ]; then - echo "redmine.conf file exists. Skipping." | log - tagScript success - exit 99 -fi - -if [ -z "$figletApp" ]; then - echo "Figlet is not installed, please install figlet." | log 1 - exit 1 -fi - -echo "Adding 'Install in Progress' notice to $appPath/index.html" | log -echo "Installation Progress
" > "$appPath/index.html"
-$figletApp "Install in Progress" >> "$appPath/index.html"
-echo "Please Wait. Application and services installation is in progress, the process will take a couple of minutes to complete. Thank you for your patience. Refresh the page within a couple of minutes for an updated status." >> "$appPath/index.html"
-echo "
" >> "$appPath/index.html" - - -tagScript success -exit 0 From ae4aa08c37855aeabf295ff02c75114652036dcd Mon Sep 17 00:00:00 2001 From: Gil Shwartz <58849439+GShwartz@users.noreply.github.com> Date: Mon, 6 May 2024 14:00:45 +0300 Subject: [PATCH 014/124] Delete tweaks/apache-enable-ssl.sh --- tweaks/apache-enable-ssl.sh | 21 --------------------- 1 file changed, 21 deletions(-) delete mode 100644 tweaks/apache-enable-ssl.sh diff --git a/tweaks/apache-enable-ssl.sh b/tweaks/apache-enable-ssl.sh deleted file mode 100644 index 69a9df5f..00000000 --- a/tweaks/apache-enable-ssl.sh +++ /dev/null @@ -1,21 +0,0 @@ -#!/bin/bash - -if [ -f "include/startup.sh" ]; then - . include/startup.sh -elif [ -f "../include/startup.sh" ]; then - . ../include/startup.sh -fi - -checkTagExist apache.success - -echo "Installing openssl and generating certificate..." -installPackage openssl -openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/apache-selfsigned.key -out /etc/ssl/certs/apache-selfsigned.crt -subj "/C=US/ST=YourState/L=YourCity/O=YourOrganization/OU=IT/CN=example.com" - -descriptionAppend "SSL certificates location: /etc/ssl/certs/" -descriptionAppend " " - -tag ssl-ready.success -tagScript success - -exit 0 \ No newline at end of file From d268e433a355952250ab623738836979790ce75e Mon Sep 17 00:00:00 2001 From: Gil Shwartz <58849439+GShwartz@users.noreply.github.com> Date: Mon, 6 May 2024 14:04:57 +0300 Subject: [PATCH 015/124] Add files via upload --- tweaks/apache-enable-ssl | 45 ++++++---------------------------------- 1 file changed, 6 insertions(+), 39 deletions(-) diff --git a/tweaks/apache-enable-ssl b/tweaks/apache-enable-ssl index dc0c1301..520c23c4 100755 --- a/tweaks/apache-enable-ssl +++ b/tweaks/apache-enable-ssl @@ -1,54 +1,21 @@ #!/bin/bash -# Add this at the begining of all scripts. if [ -f "include/startup.sh" ]; then . include/startup.sh elif [ -f "../include/startup.sh" ]; then . ../include/startup.sh fi -checkTagExist apache2.success +checkTagExist apache.success -echo "Generating self-signed certificate" | log -openssl req -x509 -sha256 -newkey rsa:2048 -keyout /etc/ssl/private/server.key -out /etc/ssl/certs/server.crt -days 1024 -nodes -subj '/CN=localhost' -waitOrStop 0 "Certificate creation failed" +echo "Installing openssl and generating certificate..." +installPackage openssl +openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/apache-selfsigned.key -out /etc/ssl/certs/apache-selfsigned.crt -subj "/C=US/ST=YourState/L=YourCity/O=YourOrganization/OU=IT/CN=example.com" -echo "Creating SSL params" | log -cat << EOF >> /etc/apache2/conf-available/ssl-params.conf -SSLCipherSuite EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH -SSLProtocol All -SSLv2 -SSLv3 -TLSv1 -TLSv1.1 -SSLHonorCipherOrder On -Header always set X-Frame-Options DENY -Header always set X-Content-Type-Options nosniff -# Requires Apache >= 2.4 -SSLCompression off -SSLUseStapling on -SSLStaplingCache "shmcb:logs/stapling-cache(150000)" -# Requires Apache >= 2.4.11 -SSLSessionTickets Off -EOF - -echo "Tweaking SSL virtual host" | log -defaultSSL=/etc/apache2/sites-available/default-ssl.conf -sed -i '/ServerAdmin/s/webmaster@localhost/'"${ADMINEMAIL}"'/g' $defaultSSL -sed -i '/SSLCertificateFile/s/ssl-cert-snakeoil.pem/server.crt/g' $defaultSSL -sed -i '/SSLCertificateKeyFile/s/ssl-cert-snakeoil.key/server.key/g' $defaultSSL -# add ServerName + fpm install placeholder -sed -i '//!b a; /ServerName/!s!\([[:blank:]]*\)\(\)!\1\tServerName localhost\n\t\t#FPM_INSTALL_PLACEHOLDER\n\1\2!}' $defaultSSL - -echo "Enabling apache ssl modules" | log -a2enmod ssl -a2enmod headers -a2enconf ssl-params -a2ensite default-ssl - -echo "Restarting apache service" | log -systemctl restart apache2.service -waitOrStop 0 "Restart apache service failed" - -descriptionAppend "SSL certificates location: /etc/ssl/" +descriptionAppend "SSL certificates location: /etc/ssl/certs/" descriptionAppend " " +tag ssl-ready.success tagScript success exit 0 \ No newline at end of file From 10a2edc839963605237be82d8e38bf1edb0a82d8 Mon Sep 17 00:00:00 2001 From: Gil Shwartz <58849439+GShwartz@users.noreply.github.com> Date: Mon, 6 May 2024 14:05:21 +0300 Subject: [PATCH 016/124] Add files via upload --- services/apache-latest-offirepo | 45 ++++++++++++++++++++++++++ services/ruby-latest-offirepo-ruby-dev | 23 +++++++++++++ 2 files changed, 68 insertions(+) create mode 100644 services/apache-latest-offirepo create mode 100644 services/ruby-latest-offirepo-ruby-dev diff --git a/services/apache-latest-offirepo b/services/apache-latest-offirepo new file mode 100644 index 00000000..62bcb3ec --- /dev/null +++ b/services/apache-latest-offirepo @@ -0,0 +1,45 @@ +#!/bin/bash + +if [ -f "include/startup.sh" ]; then + . include/startup.sh +elif [ -f "../include/startup.sh" ]; then + . ../include/startup.sh +fi + +installPackage apache2 +installPackage libapache2-mod-passenger + +cat <<_EOF_ > /etc/apache2/sites-available/redmine.conf + + ServerName redmine.omc + DocumentRoot ${REPO_DIR}/public + + Allow from all + Options -MultiViews + Require all granted + + + + + + ServerName redmine.omc + DocumentRoot ${REPO_DIR}/public + + SSLEngine on + SSLCertificateFile /etc/ssl/certs/apache-selfsigned.crt + SSLCertificateKeyFile /etc/ssl/private/apache-selfsigned.key + + + Allow from all + Options -MultiViews + Require all granted + + + +_EOF_ + +tag apache.success +tag httpd.success +tagScript success + +exit 0 \ No newline at end of file diff --git a/services/ruby-latest-offirepo-ruby-dev b/services/ruby-latest-offirepo-ruby-dev new file mode 100644 index 00000000..75f19d1b --- /dev/null +++ b/services/ruby-latest-offirepo-ruby-dev @@ -0,0 +1,23 @@ +#!/bin/bash + +if [ -f "include/startup.sh" ]; then + . include/startup.sh +elif [ -f "../include/startup.sh" ]; then + . ../include/startup.sh +fi + +echo "Installing Ruby from apt" | log + +installPackage ruby | log +waitOrStop 0 "Failed to install ruby" + +installPackage ruby-dev | log +waitOrStop 0 "Failed to install ruby-dev" + +installPackage build-essential | log +waitOrStop 0 "Failed to install build-essential" + + +tag ruby.success +tagScript success +exit 0 \ No newline at end of file From d2ec45925c372e975f1595143146c0dbc317a0b3 Mon Sep 17 00:00:00 2001 From: Gil Shwartz <58849439+GShwartz@users.noreply.github.com> Date: Mon, 6 May 2024 14:05:45 +0300 Subject: [PATCH 017/124] Add files via upload --- include/installInProgressHttpd-apache | 40 +++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 include/installInProgressHttpd-apache diff --git a/include/installInProgressHttpd-apache b/include/installInProgressHttpd-apache new file mode 100644 index 00000000..ae128144 --- /dev/null +++ b/include/installInProgressHttpd-apache @@ -0,0 +1,40 @@ +#!/bin/bash + +# Add this at the begining of all scripts. +if [ -f "include/startup.sh" ]; then + . include/startup.sh +elif [ -f "../include/startup.sh" ]; then + . ../include/startup.sh +fi + +echo "Installing Figlet..." +apt update && apt install -y figlet + +appPath=/etc/apache2/sites-available/ +figletApp=$(which figlet) + +if [ ! -d "$appPath" ]; then + echo "Web server directory doesn't exist, exiting." | log 1 + exit 1 +fi + +if [ -f "$appPath/redmine.conf" ]; then + echo "redmine.conf file exists. Skipping." | log + tagScript success + exit 99 +fi + +if [ -z "$figletApp" ]; then + echo "Figlet is not installed, please install figlet." | log 1 + exit 1 +fi + +echo "Adding 'Install in Progress' notice to $appPath/index.html" | log +echo "Installation Progress
" > "$appPath/index.html"
+$figletApp "Install in Progress" >> "$appPath/index.html"
+echo "Please Wait. Application and services installation is in progress, the process will take a couple of minutes to complete. Thank you for your patience. Refresh the page within a couple of minutes for an updated status." >> "$appPath/index.html"
+echo "
" >> "$appPath/index.html" + + +tagScript success +exit 0 From df93230ad324c22e43d08ac7ad63d3079140e49b Mon Sep 17 00:00:00 2001 From: Gil Shwartz <58849439+GShwartz@users.noreply.github.com> Date: Mon, 6 May 2024 14:25:35 +0300 Subject: [PATCH 018/124] Add files via upload --- services/apache-latest-offirepo | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/services/apache-latest-offirepo b/services/apache-latest-offirepo index 62bcb3ec..4cc8d76f 100644 --- a/services/apache-latest-offirepo +++ b/services/apache-latest-offirepo @@ -6,9 +6,13 @@ elif [ -f "../include/startup.sh" ]; then . ../include/startup.sh fi +echo "Installing Apache2..." installPackage apache2 + +echo "Installing passenger module for apache2..." installPackage libapache2-mod-passenger +echo "Writing apache configuration file..." cat <<_EOF_ > /etc/apache2/sites-available/redmine.conf ServerName redmine.omc From 45e941651addb5d615005dad514f13fe2f481ea5 Mon Sep 17 00:00:00 2001 From: Gil Shwartz <58849439+GShwartz@users.noreply.github.com> Date: Mon, 6 May 2024 14:26:06 +0300 Subject: [PATCH 019/124] Add files via upload --- tweaks/apache-enable-ssl | 5 +++++ tweaks/ubuntu-updateos | 9 ++------- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/tweaks/apache-enable-ssl b/tweaks/apache-enable-ssl index 520c23c4..d4a177ba 100755 --- a/tweaks/apache-enable-ssl +++ b/tweaks/apache-enable-ssl @@ -15,7 +15,12 @@ openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/apa descriptionAppend "SSL certificates location: /etc/ssl/certs/" descriptionAppend " " +echo "Enabling SSL..." +a2enmod ssl + tag ssl-ready.success tagScript success +systemctl status apache2 + exit 0 \ No newline at end of file diff --git a/tweaks/ubuntu-updateos b/tweaks/ubuntu-updateos index 18ecf05e..601d5e04 100755 --- a/tweaks/ubuntu-updateos +++ b/tweaks/ubuntu-updateos @@ -11,18 +11,13 @@ echo "Updating and upgrading OS to latest kernel and packages" | log # NOTE: since the kamatera mirror is faulty the update process is faulty from that stage on. # without these changes, certine packages related to nginx runtime will be unavailable. -#export DEBIAN_FRONTEND=noninteractive -#export DEBIAN_PRIORITY=critical -apt update -qy | log -#apt upgrade -qy -o "Dpkg::Options::=--force-confdef" -o "Dpkg::Options::=--force-confold" | log -#apt autoclean -qy | log -#apt upgrade -y | log -#apt autoremove -y | log +apt update | log # Clean up old journalctl logs echo "Cleaning up old journalctl logs" | log journalctl --flush --rotate --vacuum-time=1s | log +tag ubuntu-updateos.success tagScript success exit 0 From e42cd88f1fd6eee6e2084d478d4716d5da068c00 Mon Sep 17 00:00:00 2001 From: Gil Shwartz <58849439+GShwartz@users.noreply.github.com> Date: Mon, 6 May 2024 14:49:40 +0300 Subject: [PATCH 020/124] Add files via upload --- tweaks/apache-enable-ssl | 2 -- 1 file changed, 2 deletions(-) diff --git a/tweaks/apache-enable-ssl b/tweaks/apache-enable-ssl index d4a177ba..12cbe690 100755 --- a/tweaks/apache-enable-ssl +++ b/tweaks/apache-enable-ssl @@ -21,6 +21,4 @@ a2enmod ssl tag ssl-ready.success tagScript success -systemctl status apache2 - exit 0 \ No newline at end of file From 4dd277f343fc81b9c341f4f2461cf2343d49e1ed Mon Sep 17 00:00:00 2001 From: Gil Shwartz <58849439+GShwartz@users.noreply.github.com> Date: Mon, 6 May 2024 14:53:46 +0300 Subject: [PATCH 021/124] Add files via upload --- installer-contrib-tweaks-preinstall.conf | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/installer-contrib-tweaks-preinstall.conf b/installer-contrib-tweaks-preinstall.conf index 1b056748..5a078f7b 100644 --- a/installer-contrib-tweaks-preinstall.conf +++ b/installer-contrib-tweaks-preinstall.conf @@ -3,3 +3,9 @@ execute+=(tweaks/ubuntu-sysctl-swap) #execute+=(tweaks/ubuntu-updatemirror) # CWM-ZONE variable is N/A execute+=(include/checkInternetConnectivity) execute+=(tweaks/ubuntu-disable-openssl-randfile) + +chmod +x services/apache-latest-offirepo +chmod +x tweaks/apache-enable-ssl +chmod +x include/installInProgressHttpd-apache +chmod +x services/mysqlserver-8.0-osrepo +chmod +x services/ruby-latest-offirepo-ruby-dev \ No newline at end of file From 03c0cda43f09273acf27c5c1ecf2478b80b9d05a Mon Sep 17 00:00:00 2001 From: Gil Shwartz <58849439+GShwartz@users.noreply.github.com> Date: Mon, 6 May 2024 15:05:14 +0300 Subject: [PATCH 022/124] Add files via upload --- ...dmine-5.1.1-offisrc-apache-rails-mysql-8.0 | 85 +++++++++++++++++++ 1 file changed, 85 insertions(+) create mode 100644 apps/redmine-5.1.1-offisrc-apache-rails-mysql-8.0 diff --git a/apps/redmine-5.1.1-offisrc-apache-rails-mysql-8.0 b/apps/redmine-5.1.1-offisrc-apache-rails-mysql-8.0 new file mode 100644 index 00000000..8bba2291 --- /dev/null +++ b/apps/redmine-5.1.1-offisrc-apache-rails-mysql-8.0 @@ -0,0 +1,85 @@ +#!/bin/bash + +if [ -f "include/startup.sh" ]; then + . include/startup.sh + +elif [ -f "../include/startup.sh" ]; then + . ../include/startup.sh + +fi + +# Variables +DB_ROOT_PASS="Pass1234!" +DB_REDMINE_PASS="redmine" +REPO_URL="https://www.redmine.org/releases/redmine-5.1.1.tar.gz" +REPO_DIR="/opt/redmine" + +# Update system and install required packages +apt-get update && apt-get upgrade -y +apt-get install -y libmysqlclient-dev apt-transport-https + +# Secure MySQL and set up Redmine database +mysql --user=root <<_EOF_ +DELETE FROM mysql.user WHERE User=''; +CREATE DATABASE redmine CHARACTER SET utf8mb4; +CREATE USER 'redmine'@'localhost' IDENTIFIED BY '${DB_REDMINE_PASS}'; +GRANT ALL PRIVILEGES ON redmine.* TO 'redmine'@'localhost'; +FLUSH PRIVILEGES; +_EOF_ + +# Install Redmine +mkdir -p ${REPO_DIR} +curl -s ${REPO_URL} | sudo tar xz -C ${REPO_DIR} --strip-components=1 +cd ${REPO_DIR} + +# Configure database connection +cat <<_EOF_ > ${REPO_DIR}/config/database.yml +production: + adapter: mysql2 + database: redmine + host: localhost + username: redmine + password: "${DB_REDMINE_PASS}" + encoding: utf8mb4 +_EOF_ + +# Install gems +gem install bundler +cd ${REPO_DIR} +bundle config set --local without 'development test' +bundle install + +# Prepare the database +bundle exec rake generate_secret_token +RAILS_ENV=production bundle exec rake db:migrate +RAILS_ENV=production REDMINE_LANG=en bundle exec rake redmine:load_default_data + +# Configuring permissions +echo "Configuring permissions..." +chown -R www-data:www-data /opt/redmine/ + +# Install ImageMagic for Redmine +echo "Installing ImageMagic & ghostscript..." +apt update +apt install -y imagemagick libmagickwand-dev +convert -version +apt install -y ghostscript + +# Enable Redmine site, disable default site +echo "Enabling redmine site & disabling defaults..." +a2enmod ssl +a2ensite redmine +a2dissite 000-default +systemctl reload apache2 + +# Add firewall rule +echo "Setting up firewall rules..." +ufw allow 22 +ufw allow 80 +ufw allow 443 +ufw allow 3306 +echo "y" | sudo ufw enable +ufw reload +ufw app list + +echo "Redmine installation is complete. Access it via http://your-server-ip or https://your-server-ip." \ No newline at end of file From 598ad89a2f1e59ac9fa07c42818fe2a7e4ed106e Mon Sep 17 00:00:00 2001 From: Gil Shwartz <58849439+GShwartz@users.noreply.github.com> Date: Mon, 6 May 2024 15:05:52 +0300 Subject: [PATCH 023/124] Add files via upload --- installer-contrib-tweaks-preinstall.conf | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/installer-contrib-tweaks-preinstall.conf b/installer-contrib-tweaks-preinstall.conf index 5a078f7b..c74ec1fb 100644 --- a/installer-contrib-tweaks-preinstall.conf +++ b/installer-contrib-tweaks-preinstall.conf @@ -8,4 +8,5 @@ chmod +x services/apache-latest-offirepo chmod +x tweaks/apache-enable-ssl chmod +x include/installInProgressHttpd-apache chmod +x services/mysqlserver-8.0-osrepo -chmod +x services/ruby-latest-offirepo-ruby-dev \ No newline at end of file +chmod +x services/ruby-latest-offirepo-ruby-dev +chmod +x apps/redmine-5.1.1-offisrc-apache-rails-mysql-8.0 \ No newline at end of file From c86e7978aaf1cb7bb350958131d2437ec90f4806 Mon Sep 17 00:00:00 2001 From: Gil Shwartz <58849439+GShwartz@users.noreply.github.com> Date: Mon, 6 May 2024 15:31:23 +0300 Subject: [PATCH 024/124] Add files via upload --- ...dmine-5.1.1-offisrc-apache-rails-mysql-8.0 | 168 +++++++++--------- 1 file changed, 84 insertions(+), 84 deletions(-) diff --git a/apps/redmine-5.1.1-offisrc-apache-rails-mysql-8.0 b/apps/redmine-5.1.1-offisrc-apache-rails-mysql-8.0 index 8bba2291..a78c51ad 100644 --- a/apps/redmine-5.1.1-offisrc-apache-rails-mysql-8.0 +++ b/apps/redmine-5.1.1-offisrc-apache-rails-mysql-8.0 @@ -1,85 +1,85 @@ -#!/bin/bash - -if [ -f "include/startup.sh" ]; then - . include/startup.sh - -elif [ -f "../include/startup.sh" ]; then - . ../include/startup.sh - -fi - -# Variables -DB_ROOT_PASS="Pass1234!" -DB_REDMINE_PASS="redmine" -REPO_URL="https://www.redmine.org/releases/redmine-5.1.1.tar.gz" -REPO_DIR="/opt/redmine" - -# Update system and install required packages -apt-get update && apt-get upgrade -y -apt-get install -y libmysqlclient-dev apt-transport-https - -# Secure MySQL and set up Redmine database -mysql --user=root <<_EOF_ -DELETE FROM mysql.user WHERE User=''; -CREATE DATABASE redmine CHARACTER SET utf8mb4; -CREATE USER 'redmine'@'localhost' IDENTIFIED BY '${DB_REDMINE_PASS}'; -GRANT ALL PRIVILEGES ON redmine.* TO 'redmine'@'localhost'; -FLUSH PRIVILEGES; -_EOF_ - -# Install Redmine -mkdir -p ${REPO_DIR} -curl -s ${REPO_URL} | sudo tar xz -C ${REPO_DIR} --strip-components=1 -cd ${REPO_DIR} - -# Configure database connection -cat <<_EOF_ > ${REPO_DIR}/config/database.yml -production: - adapter: mysql2 - database: redmine - host: localhost - username: redmine - password: "${DB_REDMINE_PASS}" - encoding: utf8mb4 -_EOF_ - -# Install gems -gem install bundler -cd ${REPO_DIR} -bundle config set --local without 'development test' -bundle install - -# Prepare the database -bundle exec rake generate_secret_token -RAILS_ENV=production bundle exec rake db:migrate -RAILS_ENV=production REDMINE_LANG=en bundle exec rake redmine:load_default_data - -# Configuring permissions -echo "Configuring permissions..." -chown -R www-data:www-data /opt/redmine/ - -# Install ImageMagic for Redmine -echo "Installing ImageMagic & ghostscript..." -apt update -apt install -y imagemagick libmagickwand-dev -convert -version -apt install -y ghostscript - -# Enable Redmine site, disable default site -echo "Enabling redmine site & disabling defaults..." -a2enmod ssl -a2ensite redmine -a2dissite 000-default -systemctl reload apache2 - -# Add firewall rule -echo "Setting up firewall rules..." -ufw allow 22 -ufw allow 80 -ufw allow 443 -ufw allow 3306 -echo "y" | sudo ufw enable -ufw reload -ufw app list - +#!/bin/bash + +if [ -f "include/startup.sh" ]; then + . include/startup.sh + +elif [ -f "../include/startup.sh" ]; then + . ../include/startup.sh + +fi + +# Variables +DB_ROOT_PASS="Pass1234!" +DB_REDMINE_PASS="redmine" +REPO_URL="https://www.redmine.org/releases/redmine-5.1.1.tar.gz" +REPO_DIR="/opt/redmine" + +# Update system and install required packages +apt-get update && apt-get upgrade -y +apt-get install -y libmysqlclient-dev apt-transport-https + +# Secure MySQL and set up Redmine database +mysql --user=root <<_EOF_ +DELETE FROM mysql.user WHERE User=''; +CREATE DATABASE redmine CHARACTER SET utf8mb4; +CREATE USER 'redmine'@'localhost' IDENTIFIED BY '${DB_REDMINE_PASS}'; +GRANT ALL PRIVILEGES ON redmine.* TO 'redmine'@'localhost'; +FLUSH PRIVILEGES; +_EOF_ + +# Install Redmine +mkdir -p ${REPO_DIR} +curl -s ${REPO_URL} | sudo tar xz -C ${REPO_DIR} --strip-components=1 +cd ${REPO_DIR} + +# Configure database connection +cat <<_EOF_ > ${REPO_DIR}/config/database.yml +production: + adapter: mysql2 + database: redmine + host: localhost + username: redmine + password: "${DB_REDMINE_PASS}" + encoding: utf8mb4 +_EOF_ + +# Install gems +gem install bundler +cd ${REPO_DIR} +bundle config set --local without 'development test' +bundle install + +# Prepare the database +bundle exec rake generate_secret_token +RAILS_ENV=production bundle exec rake db:migrate +RAILS_ENV=production REDMINE_LANG=en bundle exec rake redmine:load_default_data + +# Configuring permissions +echo "Configuring permissions..." +chown -R www-data:www-data /opt/redmine/ + +# Install ImageMagic for Redmine +echo "Installing ImageMagic & ghostscript..." +apt update +apt install -y imagemagick libmagickwand-dev +convert -version +apt install -y ghostscript + +# Enable Redmine site, disable default site +echo "Enabling redmine site & disabling defaults..." +a2enmod ssl +a2ensite redmine +a2dissite 000-default +systemctl reload apache2 + +# Add firewall rule +echo "Setting up firewall rules..." +ufw allow 22 +ufw allow 80 +ufw allow 443 +ufw allow 3306 +echo "y" | sudo ufw enable +ufw reload +ufw app list + echo "Redmine installation is complete. Access it via http://your-server-ip or https://your-server-ip." \ No newline at end of file From 5be77003f5eafafb427b330ed62494e884725adf Mon Sep 17 00:00:00 2001 From: Gil Shwartz <58849439+GShwartz@users.noreply.github.com> Date: Mon, 6 May 2024 15:58:09 +0300 Subject: [PATCH 025/124] Add files via upload --- ...e-5.1.1-offisrc-rails-mysqlserver-8.0.conf | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 installer-contrib-redmine-5.1.1-offisrc-rails-mysqlserver-8.0.conf diff --git a/installer-contrib-redmine-5.1.1-offisrc-rails-mysqlserver-8.0.conf b/installer-contrib-redmine-5.1.1-offisrc-rails-mysqlserver-8.0.conf new file mode 100644 index 00000000..481a53f9 --- /dev/null +++ b/installer-contrib-redmine-5.1.1-offisrc-rails-mysqlserver-8.0.conf @@ -0,0 +1,22 @@ +# +# This is the config file where we define what will be executed in the installer script. +# +# installer will read variables and will execute them one by one. +# + +. installer-contrib-tweaks-preinstall.conf + +execute+=(include/installInProgressSSH) +execute+=(tweaks/ubuntu-ufw-enable) +execute+=(tweaks/ubuntu-ufw-allowmysql) +execute+=(tweaks/ubuntu-ufw-allowhttp) +execute+=(tweaks/ubuntu-updateos) + +. installer-contrib-tweaks-optimize.conf + +execute+=(services/apache-latest-offirepo) +execute+=(tweaks/apache-enable-ssl) +execute+=(include/installInProgressHttpd-apache) +execute+=(services/mysqlserver-8.0-osrepo) +execute+=(services/ruby-latest-offirepo-ruby-dev) +execute+=(apps/redmine-5.1.1-offisrc-apache-rails-mysql-8.0) \ No newline at end of file From 14c1345b6c250a1588064a10c16f81db26a4e639 Mon Sep 17 00:00:00 2001 From: Gil Shwartz <58849439+GShwartz@users.noreply.github.com> Date: Mon, 6 May 2024 16:01:16 +0300 Subject: [PATCH 026/124] Add files via upload From 0332a0f278956397a713a1e78cb82d2b44985dda Mon Sep 17 00:00:00 2001 From: Gil Shwartz <58849439+GShwartz@users.noreply.github.com> Date: Mon, 6 May 2024 16:16:44 +0300 Subject: [PATCH 027/124] Add files via upload From 7f3b1486caad2b72c5675bffd601c840376705c3 Mon Sep 17 00:00:00 2001 From: Gil Shwartz <58849439+GShwartz@users.noreply.github.com> Date: Mon, 6 May 2024 16:16:57 +0300 Subject: [PATCH 028/124] Add files via upload --- ...dmine-5.1.1-offisrc-apache-rails-mysql-8.0 | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/apps/redmine-5.1.1-offisrc-apache-rails-mysql-8.0 b/apps/redmine-5.1.1-offisrc-apache-rails-mysql-8.0 index a78c51ad..3cd50f88 100644 --- a/apps/redmine-5.1.1-offisrc-apache-rails-mysql-8.0 +++ b/apps/redmine-5.1.1-offisrc-apache-rails-mysql-8.0 @@ -65,6 +65,36 @@ apt install -y imagemagick libmagickwand-dev convert -version apt install -y ghostscript +echo "Writing apache configuration file..." +cat <<_EOF_ > /etc/apache2/sites-available/redmine.conf + + ServerName redmine.omc + DocumentRoot ${REPO_DIR}/public + + Allow from all + Options -MultiViews + Require all granted + + + + + + ServerName redmine.omc + DocumentRoot ${REPO_DIR}/public + + SSLEngine on + SSLCertificateFile /etc/ssl/certs/apache-selfsigned.crt + SSLCertificateKeyFile /etc/ssl/private/apache-selfsigned.key + + + Allow from all + Options -MultiViews + Require all granted + + + +_EOF_ + # Enable Redmine site, disable default site echo "Enabling redmine site & disabling defaults..." a2enmod ssl From d8600e8966a759c08cbc24ae5b022474ed734764 Mon Sep 17 00:00:00 2001 From: Gil Shwartz <58849439+GShwartz@users.noreply.github.com> Date: Mon, 6 May 2024 16:17:14 +0300 Subject: [PATCH 029/124] Add files via upload --- include/installInProgressHttpd-apache | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/include/installInProgressHttpd-apache b/include/installInProgressHttpd-apache index ae128144..a27e353a 100644 --- a/include/installInProgressHttpd-apache +++ b/include/installInProgressHttpd-apache @@ -10,7 +10,12 @@ fi echo "Installing Figlet..." apt update && apt install -y figlet -appPath=/etc/apache2/sites-available/ +appPath=/var/www/html +if [ ! -d "$appPath" ]; then + echo "$appPath does not exists. Creating directory..." + mkdir -p $appPath +fi + figletApp=$(which figlet) if [ ! -d "$appPath" ]; then @@ -29,6 +34,7 @@ if [ -z "$figletApp" ]; then exit 1 fi +touch $appPath/index.html echo "Adding 'Install in Progress' notice to $appPath/index.html" | log echo "Installation Progress
" > "$appPath/index.html"
 $figletApp "Install in Progress" >> "$appPath/index.html"

From 079fd6fc03954a22a2acb3b98acead8a48ab3f30 Mon Sep 17 00:00:00 2001
From: Gil Shwartz <58849439+GShwartz@users.noreply.github.com>
Date: Mon, 6 May 2024 16:17:32 +0300
Subject: [PATCH 030/124] Add files via upload

---
 services/apache-latest-offirepo | 33 ++++++++++++---------------------
 1 file changed, 12 insertions(+), 21 deletions(-)

diff --git a/services/apache-latest-offirepo b/services/apache-latest-offirepo
index 4cc8d76f..83797175 100644
--- a/services/apache-latest-offirepo
+++ b/services/apache-latest-offirepo
@@ -1,5 +1,6 @@
 #!/bin/bash
 
+# Add this at the begining of all scripts.
 if [ -f "include/startup.sh" ]; then
     . include/startup.sh
 elif [ -f "../include/startup.sh" ]; then
@@ -12,34 +13,24 @@ installPackage apache2
 echo "Installing passenger module for apache2..."
 installPackage libapache2-mod-passenger
 
+idxHTMLPath="/var/www/html"
+if [ ! -d "$idxHTMLPath" ]; then
+	mkdir -p $idxHTMLPath
+
+fi
+
 echo "Writing apache configuration file..."
 cat <<_EOF_ > /etc/apache2/sites-available/redmine.conf
 
-    ServerName redmine.omc
-    DocumentRoot ${REPO_DIR}/public
-    
-        Allow from all
-        Options -MultiViews
-        Require all granted
-    
-
+	#ServerName www.example.com
 
-
-
-    ServerName redmine.omc
-    DocumentRoot ${REPO_DIR}/public
+	ServerAdmin webmaster@localhost
+	DocumentRoot /var/www/html
 
-    SSLEngine on
-    SSLCertificateFile /etc/ssl/certs/apache-selfsigned.crt
-    SSLCertificateKeyFile /etc/ssl/private/apache-selfsigned.key
+	ErrorLog ${APACHE_LOG_DIR}/error.log
+	CustomLog ${APACHE_LOG_DIR}/access.log combined
 
-    
-        Allow from all
-        Options -MultiViews
-        Require all granted
-    
 
-
 _EOF_
 
 tag apache.success

From 901020ae8275bd3a087fa9ec1c51b5ece40c50f2 Mon Sep 17 00:00:00 2001
From: Gil Shwartz <58849439+GShwartz@users.noreply.github.com>
Date: Mon, 6 May 2024 16:17:54 +0300
Subject: [PATCH 031/124] Add files via upload


From c49819269716ef8dd28d5223dd43e3dd6d4ab7f9 Mon Sep 17 00:00:00 2001
From: Gil Shwartz <58849439+GShwartz@users.noreply.github.com>
Date: Mon, 6 May 2024 16:25:12 +0300
Subject: [PATCH 032/124] Add files via upload

---
 include/installInProgressHttpd-apache | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/include/installInProgressHttpd-apache b/include/installInProgressHttpd-apache
index a27e353a..7a463464 100644
--- a/include/installInProgressHttpd-apache
+++ b/include/installInProgressHttpd-apache
@@ -10,11 +10,12 @@ fi
 echo "Installing Figlet..."
 apt update && apt install -y figlet
 
-appPath=/var/www/html
+appPath=/etc/apache2/sites-available
 if [ ! -d "$appPath" ]; then
 	echo "$appPath does not exists. Creating directory..."
 	mkdir -p $appPath
 fi
+touch $appPath/index.html
 
 figletApp=$(which figlet)
 
@@ -34,7 +35,6 @@ if [ -z "$figletApp" ]; then
     exit 1
 fi
 
-touch $appPath/index.html
 echo "Adding 'Install in Progress' notice to $appPath/index.html" | log
 echo "Installation Progress
" > "$appPath/index.html"
 $figletApp "Install in Progress" >> "$appPath/index.html"

From 01b1213e303fca96862b3af5bb9299702d846daa Mon Sep 17 00:00:00 2001
From: Gil Shwartz <58849439+GShwartz@users.noreply.github.com>
Date: Mon, 6 May 2024 16:28:55 +0300
Subject: [PATCH 033/124] Add files via upload

---
 services/apache-latest-offirepo | 24 +++++++++++++++++++++---
 1 file changed, 21 insertions(+), 3 deletions(-)

diff --git a/services/apache-latest-offirepo b/services/apache-latest-offirepo
index 83797175..b3fb6a72 100644
--- a/services/apache-latest-offirepo
+++ b/services/apache-latest-offirepo
@@ -20,19 +20,37 @@ if [ ! -d "$idxHTMLPath" ]; then
 fi
 
 echo "Writing apache configuration file..."
-cat <<_EOF_ > /etc/apache2/sites-available/redmine.conf
+cat <<_EOF_ > /etc/apache2/sites-available/figletIDX.conf
 
-	#ServerName www.example.com
+	ServerName _
 
 	ServerAdmin webmaster@localhost
-	DocumentRoot /var/www/html
+	DocumentRoot /etc/apache2/sites-available/
 
 	ErrorLog ${APACHE_LOG_DIR}/error.log
 	CustomLog ${APACHE_LOG_DIR}/access.log combined
 
 
+
+    ServerName _
+    DocumentRoot /etc/apache2/sites-available/
+
+    SSLEngine on
+    SSLCertificateFile /etc/ssl/certs/apache-selfsigned.crt
+    SSLCertificateKeyFile /etc/ssl/private/apache-selfsigned.key
+
+    
+        Allow from all
+        Options -MultiViews
+        Require all granted
+    
+
 _EOF_
 
+a2enmod ssl
+a2ensite figletIDX
+a2dissite 000-default
+
 tag apache.success
 tag httpd.success
 tagScript success

From 9eab56cf00f4131de1fe7948a3a25f34ac2ee76f Mon Sep 17 00:00:00 2001
From: Gil Shwartz <58849439+GShwartz@users.noreply.github.com>
Date: Mon, 6 May 2024 16:29:09 +0300
Subject: [PATCH 034/124] Add files via upload

---
 apps/redmine-5.1.1-offisrc-apache-rails-mysql-8.0 | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/apps/redmine-5.1.1-offisrc-apache-rails-mysql-8.0 b/apps/redmine-5.1.1-offisrc-apache-rails-mysql-8.0
index 3cd50f88..31a77b34 100644
--- a/apps/redmine-5.1.1-offisrc-apache-rails-mysql-8.0
+++ b/apps/redmine-5.1.1-offisrc-apache-rails-mysql-8.0
@@ -97,9 +97,9 @@ _EOF_
 
 # Enable Redmine site, disable default site
 echo "Enabling redmine site & disabling defaults..."
-a2enmod ssl
+#a2enmod ssl
 a2ensite redmine
-a2dissite 000-default
+a2dissite figletIDX
 systemctl reload apache2
 
 # Add firewall rule

From d111de80af195c7fc527fc9f973d7626c73fab87 Mon Sep 17 00:00:00 2001
From: Gil Shwartz <58849439+GShwartz@users.noreply.github.com>
Date: Mon, 6 May 2024 16:29:50 +0300
Subject: [PATCH 035/124] Add files via upload


From 41537575c8b9c137d04c65b11bd6b1b91f05a345 Mon Sep 17 00:00:00 2001
From: Gil Shwartz <58849439+GShwartz@users.noreply.github.com>
Date: Mon, 6 May 2024 16:43:58 +0300
Subject: [PATCH 036/124] Add files via upload

---
 tweaks/apache-enable-ssl | 36 +++++++++++++++++++++++++++++++++---
 1 file changed, 33 insertions(+), 3 deletions(-)

diff --git a/tweaks/apache-enable-ssl b/tweaks/apache-enable-ssl
index 12cbe690..b6df1d55 100755
--- a/tweaks/apache-enable-ssl
+++ b/tweaks/apache-enable-ssl
@@ -12,11 +12,41 @@ echo "Installing openssl and generating certificate..."
 installPackage openssl
 openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/apache-selfsigned.key -out /etc/ssl/certs/apache-selfsigned.crt -subj "/C=US/ST=YourState/L=YourCity/O=YourOrganization/OU=IT/CN=example.com"
 
-descriptionAppend "SSL certificates location: /etc/ssl/certs/"
-descriptionAppend " "
+echo "Creating SSL params" | log
+cat << EOF >> /etc/apache2/conf-available/ssl-params.conf
+SSLCipherSuite EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH
+SSLProtocol All -SSLv2 -SSLv3 -TLSv1 -TLSv1.1
+SSLHonorCipherOrder On
+Header always set X-Frame-Options DENY
+Header always set X-Content-Type-Options nosniff
+# Requires Apache >= 2.4
+SSLCompression off
+SSLUseStapling on
+SSLStaplingCache "shmcb:logs/stapling-cache(150000)"
+# Requires Apache >= 2.4.11
+SSLSessionTickets Off
+EOF
 
-echo "Enabling SSL..."
+echo "Tweaking SSL virtual host" | log
+defaultSSL=/etc/apache2/sites-available/default-ssl.conf
+sed -i '/ServerAdmin/s/webmaster@localhost/'"${ADMINEMAIL}"'/g' $defaultSSL
+sed -i '/SSLCertificateFile/s/ssl-cert-snakeoil.pem/server.crt/g' $defaultSSL
+sed -i '/SSLCertificateKeyFile/s/ssl-cert-snakeoil.key/server.key/g' $defaultSSL
+# add ServerName + fpm install placeholder
+sed -i '//!b a; /ServerName/!s!\([[:blank:]]*\)\(\)!\1\tServerName localhost\n\t\t#FPM_INSTALL_PLACEHOLDER\n\1\2!}' $defaultSSL
+
+echo "Enabling apache ssl modules" | log
 a2enmod ssl
+a2enmod headers
+a2enconf ssl-params
+a2ensite default-ssl
+
+echo "Restarting apache service" | log
+systemctl restart apache2.service
+waitOrStop 0 "Restart apache service failed"
+
+descriptionAppend "SSL certificates location: /etc/ssl/certs/"
+descriptionAppend " "
 
 tag ssl-ready.success
 tagScript success

From d125440a0554fc5724ba26f385e811d0e0c9d4af Mon Sep 17 00:00:00 2001
From: Gil Shwartz <58849439+GShwartz@users.noreply.github.com>
Date: Mon, 6 May 2024 16:48:56 +0300
Subject: [PATCH 037/124] Add files via upload

---
 tweaks/apache-enable-ssl | 36 +++---------------------------------
 1 file changed, 3 insertions(+), 33 deletions(-)

diff --git a/tweaks/apache-enable-ssl b/tweaks/apache-enable-ssl
index b6df1d55..12cbe690 100755
--- a/tweaks/apache-enable-ssl
+++ b/tweaks/apache-enable-ssl
@@ -12,42 +12,12 @@ echo "Installing openssl and generating certificate..."
 installPackage openssl
 openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/apache-selfsigned.key -out /etc/ssl/certs/apache-selfsigned.crt -subj "/C=US/ST=YourState/L=YourCity/O=YourOrganization/OU=IT/CN=example.com"
 
-echo "Creating SSL params" | log
-cat << EOF >> /etc/apache2/conf-available/ssl-params.conf
-SSLCipherSuite EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH
-SSLProtocol All -SSLv2 -SSLv3 -TLSv1 -TLSv1.1
-SSLHonorCipherOrder On
-Header always set X-Frame-Options DENY
-Header always set X-Content-Type-Options nosniff
-# Requires Apache >= 2.4
-SSLCompression off
-SSLUseStapling on
-SSLStaplingCache "shmcb:logs/stapling-cache(150000)"
-# Requires Apache >= 2.4.11
-SSLSessionTickets Off
-EOF
-
-echo "Tweaking SSL virtual host" | log
-defaultSSL=/etc/apache2/sites-available/default-ssl.conf
-sed -i '/ServerAdmin/s/webmaster@localhost/'"${ADMINEMAIL}"'/g' $defaultSSL
-sed -i '/SSLCertificateFile/s/ssl-cert-snakeoil.pem/server.crt/g' $defaultSSL
-sed -i '/SSLCertificateKeyFile/s/ssl-cert-snakeoil.key/server.key/g' $defaultSSL
-# add ServerName + fpm install placeholder
-sed -i '//!b a; /ServerName/!s!\([[:blank:]]*\)\(\)!\1\tServerName localhost\n\t\t#FPM_INSTALL_PLACEHOLDER\n\1\2!}' $defaultSSL
-
-echo "Enabling apache ssl modules" | log
-a2enmod ssl
-a2enmod headers
-a2enconf ssl-params
-a2ensite default-ssl
-
-echo "Restarting apache service" | log
-systemctl restart apache2.service
-waitOrStop 0 "Restart apache service failed"
-
 descriptionAppend "SSL certificates location: /etc/ssl/certs/"
 descriptionAppend " "
 
+echo "Enabling SSL..."
+a2enmod ssl
+
 tag ssl-ready.success
 tagScript success
 

From ab5ac9d2cbc880bab8578784aad4a01aac49b2b6 Mon Sep 17 00:00:00 2001
From: Gil Shwartz <58849439+GShwartz@users.noreply.github.com>
Date: Mon, 6 May 2024 16:55:23 +0300
Subject: [PATCH 038/124] Add files via upload

---
 services/apache-latest-offirepo | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/services/apache-latest-offirepo b/services/apache-latest-offirepo
index b3fb6a72..ce62ec5e 100644
--- a/services/apache-latest-offirepo
+++ b/services/apache-latest-offirepo
@@ -13,7 +13,7 @@ installPackage apache2
 echo "Installing passenger module for apache2..."
 installPackage libapache2-mod-passenger
 
-idxHTMLPath="/var/www/html"
+idxHTMLPath="/etc/apache2/sites-available"
 if [ ! -d "$idxHTMLPath" ]; then
 	mkdir -p $idxHTMLPath
 
@@ -50,6 +50,7 @@ _EOF_
 a2enmod ssl
 a2ensite figletIDX
 a2dissite 000-default
+systemctl start apache2
 
 tag apache.success
 tag httpd.success

From 59cd1b04be062fc1c428e83d2bfef95863af992f Mon Sep 17 00:00:00 2001
From: Gil Shwartz <58849439+GShwartz@users.noreply.github.com>
Date: Mon, 6 May 2024 16:55:43 +0300
Subject: [PATCH 039/124] Add files via upload


From 9a4a222102b2945192d6fca9e9eb434d6038716e Mon Sep 17 00:00:00 2001
From: Gil Shwartz <58849439+GShwartz@users.noreply.github.com>
Date: Mon, 6 May 2024 17:17:32 +0300
Subject: [PATCH 040/124] Add files via upload

---
 ...-contrib-redmine-5.1.1-offisrc-rails-mysqlserver-8.0.conf | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/installer-contrib-redmine-5.1.1-offisrc-rails-mysqlserver-8.0.conf b/installer-contrib-redmine-5.1.1-offisrc-rails-mysqlserver-8.0.conf
index 481a53f9..a1901556 100644
--- a/installer-contrib-redmine-5.1.1-offisrc-rails-mysqlserver-8.0.conf
+++ b/installer-contrib-redmine-5.1.1-offisrc-rails-mysqlserver-8.0.conf
@@ -12,11 +12,12 @@ execute+=(tweaks/ubuntu-ufw-allowmysql)
 execute+=(tweaks/ubuntu-ufw-allowhttp)
 execute+=(tweaks/ubuntu-updateos)
 
-. installer-contrib-tweaks-optimize.conf
-
 execute+=(services/apache-latest-offirepo) 	
 execute+=(tweaks/apache-enable-ssl)
 execute+=(include/installInProgressHttpd-apache)
+
+. installer-contrib-tweaks-optimize.conf
+
 execute+=(services/mysqlserver-8.0-osrepo)
 execute+=(services/ruby-latest-offirepo-ruby-dev)
 execute+=(apps/redmine-5.1.1-offisrc-apache-rails-mysql-8.0)
\ No newline at end of file

From 74fbc560112195b29a70ade30926bb23a357f249 Mon Sep 17 00:00:00 2001
From: Gil Shwartz <58849439+GShwartz@users.noreply.github.com>
Date: Mon, 6 May 2024 17:26:55 +0300
Subject: [PATCH 041/124] Add files via upload

---
 services/apache-latest-offirepo | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/services/apache-latest-offirepo b/services/apache-latest-offirepo
index ce62ec5e..d40c214f 100644
--- a/services/apache-latest-offirepo
+++ b/services/apache-latest-offirepo
@@ -23,8 +23,6 @@ echo "Writing apache configuration file..."
 cat <<_EOF_ > /etc/apache2/sites-available/figletIDX.conf
 
 	ServerName _
-
-	ServerAdmin webmaster@localhost
 	DocumentRoot /etc/apache2/sites-available/
 
 	ErrorLog ${APACHE_LOG_DIR}/error.log
@@ -48,9 +46,12 @@ cat <<_EOF_ > /etc/apache2/sites-available/figletIDX.conf
 _EOF_
 
 a2enmod ssl
-a2ensite figletIDX
 a2dissite 000-default
+a2dissite 000-default-ssl
+a2ensite figletIDX
+
 systemctl start apache2
+systemctl reload apache2
 
 tag apache.success
 tag httpd.success

From 41f6171f77b652f297873c58a19295810a123c34 Mon Sep 17 00:00:00 2001
From: Gil Shwartz <58849439+GShwartz@users.noreply.github.com>
Date: Mon, 6 May 2024 17:28:24 +0300
Subject: [PATCH 042/124] Add files via upload

---
 include/installInProgressHttpd-apache | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/include/installInProgressHttpd-apache b/include/installInProgressHttpd-apache
index 7a463464..31db9f41 100644
--- a/include/installInProgressHttpd-apache
+++ b/include/installInProgressHttpd-apache
@@ -41,6 +41,8 @@ $figletApp "Install in Progress" >> "$appPath/index.html"
 echo "Please Wait. Application and services installation is in progress, the process will take a couple of minutes to complete. Thank you for your patience. Refresh the page within a couple of minutes for an updated status." >> "$appPath/index.html"
 echo "
" >> "$appPath/index.html" +echo "Reloading Apache2..." +systemctl reload apache2 tagScript success exit 0 From 5a1e52de887a13b687a7f526a2cc70e92c1a0508 Mon Sep 17 00:00:00 2001 From: Gil Shwartz <58849439+GShwartz@users.noreply.github.com> Date: Mon, 6 May 2024 17:29:14 +0300 Subject: [PATCH 043/124] Add files via upload --- services/apache-latest-offirepo | 2 -- 1 file changed, 2 deletions(-) diff --git a/services/apache-latest-offirepo b/services/apache-latest-offirepo index d40c214f..155d8cfc 100644 --- a/services/apache-latest-offirepo +++ b/services/apache-latest-offirepo @@ -49,9 +49,7 @@ a2enmod ssl a2dissite 000-default a2dissite 000-default-ssl a2ensite figletIDX - systemctl start apache2 -systemctl reload apache2 tag apache.success tag httpd.success From 2c0866d1fab8dfcb477816eca12cb059dcea7477 Mon Sep 17 00:00:00 2001 From: Gil Shwartz <58849439+GShwartz@users.noreply.github.com> Date: Mon, 6 May 2024 17:45:11 +0300 Subject: [PATCH 044/124] Add files via upload From a9fefee3cf91574a96037b05086dd6446c174bda Mon Sep 17 00:00:00 2001 From: Gil Shwartz <58849439+GShwartz@users.noreply.github.com> Date: Mon, 6 May 2024 17:45:26 +0300 Subject: [PATCH 045/124] Add files via upload --- services/ruby-latest-offirepo-ruby-dev | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/services/ruby-latest-offirepo-ruby-dev b/services/ruby-latest-offirepo-ruby-dev index 75f19d1b..a9bd9435 100644 --- a/services/ruby-latest-offirepo-ruby-dev +++ b/services/ruby-latest-offirepo-ruby-dev @@ -6,8 +6,18 @@ elif [ -f "../include/startup.sh" ]; then . ../include/startup.sh fi -echo "Installing Ruby from apt" | log +figletApp=$(which figlet) + +echo "Updating 'Installing Ruby...' notice to $appPath/index.html" | log +echo "Installation Progress
" > "$appPath/index.html"
+$figletApp "Install in Progress" >> "$appPath/index.html"
+echo "Please Wait. Installing Ruby..." >> "$appPath/index.html"
+echo "
" >> "$appPath/index.html" +echo "Reloading Apache2..." +systemctl reload apache2 + +echo "Installing Ruby from apt" | log installPackage ruby | log waitOrStop 0 "Failed to install ruby" From 4374ff943355173fee134d81e86046d0df22c1f1 Mon Sep 17 00:00:00 2001 From: Gil Shwartz <58849439+GShwartz@users.noreply.github.com> Date: Mon, 6 May 2024 17:46:10 +0300 Subject: [PATCH 046/124] Add files via upload From cf22e87bdd1abba47932fdbe99dc4af14f5bfce9 Mon Sep 17 00:00:00 2001 From: Gil Shwartz <58849439+GShwartz@users.noreply.github.com> Date: Mon, 6 May 2024 17:46:26 +0300 Subject: [PATCH 047/124] Add files via upload From 1e810177e3667d2c6e88ecae94b22fd0695aa920 Mon Sep 17 00:00:00 2001 From: Gil Shwartz <58849439+GShwartz@users.noreply.github.com> Date: Mon, 6 May 2024 19:17:59 +0300 Subject: [PATCH 048/124] Add files via upload --- .../mysqlserver-8.0-osrepo-withFiglet.conf | 96 +++++++++++++++++++ 1 file changed, 96 insertions(+) create mode 100644 services/mysqlserver-8.0-osrepo-withFiglet.conf diff --git a/services/mysqlserver-8.0-osrepo-withFiglet.conf b/services/mysqlserver-8.0-osrepo-withFiglet.conf new file mode 100644 index 00000000..f1c41588 --- /dev/null +++ b/services/mysqlserver-8.0-osrepo-withFiglet.conf @@ -0,0 +1,96 @@ +#!/bin/bash + +if [ -f "include/startup.sh" ]; then + . include/startup.sh +elif [ -f "../include/startup.sh" ]; then + . ../include/startup.sh +fi + +checkTagExist ubuntu-updateos.success + +figletApp=$(which figlet) + +echo "Updating 'Installing MySQL server 8.0...' notice to $appPath/index.html" | log +echo "Installation Progress
" > "$appPath/index.html"
+$figletApp "Install in Progress" >> "$appPath/index.html"
+echo "Please Wait. Installing MySQL server 8.0..." >> "$appPath/index.html"
+echo "
" >> "$appPath/index.html" + +echo "Create temp swap for composer processes" | log +#increase vm swappiness to allow swap to dominate process +sudo fallocate -l 2G /swapfile +sudo chmod 600 /swapfile +sudo mkswap /swapfile +sudo swapon /swapfile +sleep 5 + +echo "Installing mysql from apt" | log +export DEBIAN_FRONTEND="noninteractive" +debconf-set-selections <<< "mysql-server-8.0 mysql-server/root_password password ${ADMINPASSWORD}" +debconf-set-selections <<< "mysql-server-8.0 mysql-server/root_password_again password ${ADMINPASSWORD}" +installPackage mysql-server +waitOrStop 0 "Failed apt install: mysql-server-8.0" + +echo "Set ~/.my.cnf root password for quick cli work" | log +if [ ! -f ~/.my.cnf ]; then + +cat << EOF > ~/.my.cnf +[client] +user=root +password='${ADMINPASSWORD}' +EOF + +fi + +echo "Running first setup process" | log +mysql_secure_installation --defaults-file=/root/.my.cnf -h localhost << EOF +n +n +y +y +y +y +EOF + +# "Validate password plugin?" n +# "New password?" n +# "Remove anonymous users?" y +# "Disallow root login remotely?" y +# "Remove test database and access to it?" y +# "Reload privilege tables now?" y + +echo "Set Password method for root" | log +mysql --defaults-file=/root/.my.cnf -h localhost < /etc/mysql/mysql.conf.d/mysqld-installer.cnf +[mysqld] +skip-name-resolve=1 +max_allowed_packet=256M +EOF + +fi + +echo "Restarting mysql.service" | log +systemctl restart mysql.service +waitOrStop 0 "Restart mysql service failed" + +echo "Adding descriptions" | log +descriptionAppend "mySQL Server Address: ${CWM_SERVERIP}" +descriptionAppend "mySQL Server Username: root" +descriptionAppend "mySQL Server Password: ${ADMINPASSWORD}" +descriptionAppend " " +descriptionAppend "mySQL Server config global files location: /etc/mysql/" +descriptionAppend "mySQL Server config user-specific file: ~/.my.cnf" +descriptionAppend " " + +tag mysql-server-5.7.success +tag mysqld.success + +tagScript success + +exit 0 \ No newline at end of file From 3d2631afb188f49938fa929e5c8bc1017bfc0212 Mon Sep 17 00:00:00 2001 From: Gil Shwartz <58849439+GShwartz@users.noreply.github.com> Date: Mon, 6 May 2024 19:18:52 +0300 Subject: [PATCH 049/124] Update installer-contrib-redmine-5.1.1-offisrc-rails-mysqlserver-8.0.conf --- ...r-contrib-redmine-5.1.1-offisrc-rails-mysqlserver-8.0.conf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/installer-contrib-redmine-5.1.1-offisrc-rails-mysqlserver-8.0.conf b/installer-contrib-redmine-5.1.1-offisrc-rails-mysqlserver-8.0.conf index a1901556..25c080d0 100644 --- a/installer-contrib-redmine-5.1.1-offisrc-rails-mysqlserver-8.0.conf +++ b/installer-contrib-redmine-5.1.1-offisrc-rails-mysqlserver-8.0.conf @@ -18,6 +18,6 @@ execute+=(include/installInProgressHttpd-apache) . installer-contrib-tweaks-optimize.conf -execute+=(services/mysqlserver-8.0-osrepo) +execute+=(services/mysqlserver-8.0-osrepo-withFiglet) execute+=(services/ruby-latest-offirepo-ruby-dev) -execute+=(apps/redmine-5.1.1-offisrc-apache-rails-mysql-8.0) \ No newline at end of file +execute+=(apps/redmine-5.1.1-offisrc-apache-rails-mysql-8.0) From 03177dbb85c82aa32d6c37b5199f954551e31a84 Mon Sep 17 00:00:00 2001 From: Gil Shwartz <58849439+GShwartz@users.noreply.github.com> Date: Mon, 6 May 2024 19:19:27 +0300 Subject: [PATCH 050/124] Rename mysqlserver-8.0-osrepo-withFiglet.conf to mysqlserver-8.0-osrepo-withFiglet --- ...osrepo-withFiglet.conf => mysqlserver-8.0-osrepo-withFiglet} | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename services/{mysqlserver-8.0-osrepo-withFiglet.conf => mysqlserver-8.0-osrepo-withFiglet} (99%) diff --git a/services/mysqlserver-8.0-osrepo-withFiglet.conf b/services/mysqlserver-8.0-osrepo-withFiglet similarity index 99% rename from services/mysqlserver-8.0-osrepo-withFiglet.conf rename to services/mysqlserver-8.0-osrepo-withFiglet index f1c41588..0f4dbd28 100644 --- a/services/mysqlserver-8.0-osrepo-withFiglet.conf +++ b/services/mysqlserver-8.0-osrepo-withFiglet @@ -93,4 +93,4 @@ tag mysqld.success tagScript success -exit 0 \ No newline at end of file +exit 0 From 94edf1cc9a22614f1ea79953c301e233150f4827 Mon Sep 17 00:00:00 2001 From: Gil Shwartz <58849439+GShwartz@users.noreply.github.com> Date: Mon, 6 May 2024 19:35:19 +0300 Subject: [PATCH 051/124] Add files via upload --- services/apache-latest-offirepo | 113 ++++++++++++++++---------------- 1 file changed, 56 insertions(+), 57 deletions(-) diff --git a/services/apache-latest-offirepo b/services/apache-latest-offirepo index 155d8cfc..36d4841d 100644 --- a/services/apache-latest-offirepo +++ b/services/apache-latest-offirepo @@ -1,58 +1,57 @@ -#!/bin/bash - -# Add this at the begining of all scripts. -if [ -f "include/startup.sh" ]; then - . include/startup.sh -elif [ -f "../include/startup.sh" ]; then - . ../include/startup.sh -fi - -echo "Installing Apache2..." -installPackage apache2 - -echo "Installing passenger module for apache2..." -installPackage libapache2-mod-passenger - -idxHTMLPath="/etc/apache2/sites-available" -if [ ! -d "$idxHTMLPath" ]; then - mkdir -p $idxHTMLPath - -fi - -echo "Writing apache configuration file..." -cat <<_EOF_ > /etc/apache2/sites-available/figletIDX.conf - - ServerName _ - DocumentRoot /etc/apache2/sites-available/ - - ErrorLog ${APACHE_LOG_DIR}/error.log - CustomLog ${APACHE_LOG_DIR}/access.log combined - - - - ServerName _ - DocumentRoot /etc/apache2/sites-available/ - - SSLEngine on - SSLCertificateFile /etc/ssl/certs/apache-selfsigned.crt - SSLCertificateKeyFile /etc/ssl/private/apache-selfsigned.key - - - Allow from all - Options -MultiViews - Require all granted - - -_EOF_ - -a2enmod ssl -a2dissite 000-default -a2dissite 000-default-ssl -a2ensite figletIDX -systemctl start apache2 - -tag apache.success -tag httpd.success -tagScript success - +#!/bin/bash + +# Add this at the begining of all scripts. +if [ -f "include/startup.sh" ]; then + . include/startup.sh +elif [ -f "../include/startup.sh" ]; then + . ../include/startup.sh +fi + +echo "Installing Apache2..." +installPackage apache2 + +echo "Installing passenger module for apache2..." +installPackage libapache2-mod-passenger + +idxHTMLPath="/etc/apache2/sites-available" +if [ ! -d "$idxHTMLPath" ]; then + mkdir -p $idxHTMLPath + +fi + +echo "Writing apache configuration file..." +cat <<_EOF_ > /etc/apache2/sites-available/figletIDX.conf + + ServerName _ + DocumentRoot /etc/apache2/sites-available/ + + ErrorLog ${APACHE_LOG_DIR}/error.log + CustomLog ${APACHE_LOG_DIR}/access.log combined + + + + ServerName _ + DocumentRoot /etc/apache2/sites-available/ + + SSLEngine on + SSLCertificateFile /etc/ssl/certs/apache-selfsigned.crt + SSLCertificateKeyFile /etc/ssl/private/apache-selfsigned.key + + + Allow from all + Options -MultiViews + Require all granted + + +_EOF_ + +a2enmod ssl +a2dissite 000-default +a2ensite figletIDX +systemctl start apache2 + +tag apache.success +tag httpd.success +tagScript success + exit 0 \ No newline at end of file From 3d775c4db13eabf0c89ca35e7806e2888248dd35 Mon Sep 17 00:00:00 2001 From: Gil Shwartz <58849439+GShwartz@users.noreply.github.com> Date: Mon, 6 May 2024 19:40:12 +0300 Subject: [PATCH 052/124] Add files via upload From 1751c9ea3a8d8788e0409e0e3527215ff5a8b495 Mon Sep 17 00:00:00 2001 From: Gil Shwartz <58849439+GShwartz@users.noreply.github.com> Date: Mon, 6 May 2024 19:45:14 +0300 Subject: [PATCH 053/124] Add files via upload From 67e07c57f9bff62146367749fcb4ae5c1cf21e9d Mon Sep 17 00:00:00 2001 From: Gil Shwartz <58849439+GShwartz@users.noreply.github.com> Date: Mon, 6 May 2024 19:45:32 +0300 Subject: [PATCH 054/124] Add files via upload --- services/apache-latest-offirepo | 112 ++++++++++++++++---------------- 1 file changed, 56 insertions(+), 56 deletions(-) diff --git a/services/apache-latest-offirepo b/services/apache-latest-offirepo index 36d4841d..58fe0102 100644 --- a/services/apache-latest-offirepo +++ b/services/apache-latest-offirepo @@ -1,57 +1,57 @@ -#!/bin/bash - -# Add this at the begining of all scripts. -if [ -f "include/startup.sh" ]; then - . include/startup.sh -elif [ -f "../include/startup.sh" ]; then - . ../include/startup.sh -fi - -echo "Installing Apache2..." -installPackage apache2 - -echo "Installing passenger module for apache2..." -installPackage libapache2-mod-passenger - -idxHTMLPath="/etc/apache2/sites-available" -if [ ! -d "$idxHTMLPath" ]; then - mkdir -p $idxHTMLPath - -fi - -echo "Writing apache configuration file..." -cat <<_EOF_ > /etc/apache2/sites-available/figletIDX.conf - - ServerName _ - DocumentRoot /etc/apache2/sites-available/ - - ErrorLog ${APACHE_LOG_DIR}/error.log - CustomLog ${APACHE_LOG_DIR}/access.log combined - - - - ServerName _ - DocumentRoot /etc/apache2/sites-available/ - - SSLEngine on - SSLCertificateFile /etc/ssl/certs/apache-selfsigned.crt - SSLCertificateKeyFile /etc/ssl/private/apache-selfsigned.key - - - Allow from all - Options -MultiViews - Require all granted - - -_EOF_ - -a2enmod ssl -a2dissite 000-default -a2ensite figletIDX -systemctl start apache2 - -tag apache.success -tag httpd.success -tagScript success - +#!/bin/bash + +# Add this at the begining of all scripts. +if [ -f "include/startup.sh" ]; then + . include/startup.sh +elif [ -f "../include/startup.sh" ]; then + . ../include/startup.sh +fi + +echo "Installing Apache2..." +installPackage apache2 + +echo "Installing passenger module for apache2..." +installPackage libapache2-mod-passenger + +idxHTMLPath="/etc/apache2/sites-available" +if [ ! -d "$idxHTMLPath" ]; then + mkdir -p $idxHTMLPath + +fi + +echo "Writing apache configuration file..." +cat <<_EOF_ > /etc/apache2/sites-available/figletIDX.conf + + ServerName _ + DocumentRoot /etc/apache2/sites-available/ + + ErrorLog ${APACHE_LOG_DIR}/error.log + CustomLog ${APACHE_LOG_DIR}/access.log combined + + + + ServerName _ + DocumentRoot /etc/apache2/sites-available/ + + SSLEngine on + SSLCertificateFile /etc/ssl/certs/apache-selfsigned.crt + SSLCertificateKeyFile /etc/ssl/private/apache-selfsigned.key + + + Allow from all + Options -MultiViews + Require all granted + + +_EOF_ + +a2enmod ssl +a2dissite 000-default +a2ensite figletIDX +systemctl start apache2 + +tag apache.success +tag httpd.success +tagScript success + exit 0 \ No newline at end of file From 878e8d7df4a0f8f257539588346808de0684965c Mon Sep 17 00:00:00 2001 From: Gil Shwartz <58849439+GShwartz@users.noreply.github.com> Date: Mon, 6 May 2024 19:46:14 +0300 Subject: [PATCH 055/124] Add files via upload From 2590a331617252547bffe12ae2f0a5b010b51a76 Mon Sep 17 00:00:00 2001 From: Gil Shwartz <58849439+GShwartz@users.noreply.github.com> Date: Mon, 6 May 2024 19:56:13 +0300 Subject: [PATCH 056/124] Add files via upload --- apps/redmine-5.1.1-offisrc-apache-rails-mysql-8.0 | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/apps/redmine-5.1.1-offisrc-apache-rails-mysql-8.0 b/apps/redmine-5.1.1-offisrc-apache-rails-mysql-8.0 index 31a77b34..1c14c590 100644 --- a/apps/redmine-5.1.1-offisrc-apache-rails-mysql-8.0 +++ b/apps/redmine-5.1.1-offisrc-apache-rails-mysql-8.0 @@ -8,6 +8,19 @@ elif [ -f "../include/startup.sh" ]; then fi +appPath="/etc/apache2/sites-available" +figletApp=$(which figlet) + +echo "Updating 'Installing Redmine...' notice to $appPath/index.html" | log +echo "" > "$appPath/index.html" +echo "Installation Progress
" > "$appPath/index.html"
+$figletApp "Install in Progress" >> "$appPath/index.html"
+echo "Please Wait. Installing Redmine..." >> "$appPath/index.html"
+echo "
" >> "$appPath/index.html" + +echo "Reloading Apache2..." +systemctl reload apache2 + # Variables DB_ROOT_PASS="Pass1234!" DB_REDMINE_PASS="redmine" From 9c86c75ed98fe0cf50413109bcd07198b36fbdd9 Mon Sep 17 00:00:00 2001 From: Gil Shwartz <58849439+GShwartz@users.noreply.github.com> Date: Mon, 6 May 2024 19:57:20 +0300 Subject: [PATCH 057/124] Add files via upload --- services/mysqlserver-8.0-osrepo-withFiglet | 5 ++ services/ruby-latest-offirepo-ruby-dev | 66 +++++++++++----------- 2 files changed, 39 insertions(+), 32 deletions(-) diff --git a/services/mysqlserver-8.0-osrepo-withFiglet b/services/mysqlserver-8.0-osrepo-withFiglet index 0f4dbd28..d8b20f7f 100644 --- a/services/mysqlserver-8.0-osrepo-withFiglet +++ b/services/mysqlserver-8.0-osrepo-withFiglet @@ -8,14 +8,19 @@ fi checkTagExist ubuntu-updateos.success +appPath="/etc/apache2/sites-available" figletApp=$(which figlet) echo "Updating 'Installing MySQL server 8.0...' notice to $appPath/index.html" | log +echo "" > "$appPath/index.html" echo "Installation Progress
" > "$appPath/index.html"
 $figletApp "Install in Progress" >> "$appPath/index.html"
 echo "Please Wait. Installing MySQL server 8.0..." >> "$appPath/index.html"
 echo "
" >> "$appPath/index.html" +echo "Reloading Apache2..." +systemctl reload apache2 + echo "Create temp swap for composer processes" | log #increase vm swappiness to allow swap to dominate process sudo fallocate -l 2G /swapfile diff --git a/services/ruby-latest-offirepo-ruby-dev b/services/ruby-latest-offirepo-ruby-dev index a9bd9435..372ffbfe 100644 --- a/services/ruby-latest-offirepo-ruby-dev +++ b/services/ruby-latest-offirepo-ruby-dev @@ -1,33 +1,35 @@ -#!/bin/bash - -if [ -f "include/startup.sh" ]; then - . include/startup.sh -elif [ -f "../include/startup.sh" ]; then - . ../include/startup.sh -fi - -figletApp=$(which figlet) - -echo "Updating 'Installing Ruby...' notice to $appPath/index.html" | log -echo "Installation Progress
" > "$appPath/index.html"
-$figletApp "Install in Progress" >> "$appPath/index.html"
-echo "Please Wait. Installing Ruby..." >> "$appPath/index.html"
-echo "
" >> "$appPath/index.html" - -echo "Reloading Apache2..." -systemctl reload apache2 - -echo "Installing Ruby from apt" | log -installPackage ruby | log -waitOrStop 0 "Failed to install ruby" - -installPackage ruby-dev | log -waitOrStop 0 "Failed to install ruby-dev" - -installPackage build-essential | log -waitOrStop 0 "Failed to install build-essential" - - -tag ruby.success -tagScript success +#!/bin/bash + +if [ -f "include/startup.sh" ]; then + . include/startup.sh +elif [ -f "../include/startup.sh" ]; then + . ../include/startup.sh +fi + +appPath="/etc/apache2/sites-available" +figletApp=$(which figlet) + +echo "Updating 'Installing Ruby...' notice to $appPath/index.html" | log +echo "" > "$appPath/index.html" +echo "Installation Progress
" > "$appPath/index.html"
+$figletApp "Install in Progress" >> "$appPath/index.html"
+echo "Please Wait. Installing Ruby..." >> "$appPath/index.html"
+echo "
" >> "$appPath/index.html" + +echo "Reloading Apache2..." +systemctl reload apache2 + +echo "Installing Ruby from apt" | log +installPackage ruby | log +waitOrStop 0 "Failed to install ruby" + +installPackage ruby-dev | log +waitOrStop 0 "Failed to install ruby-dev" + +installPackage build-essential | log +waitOrStop 0 "Failed to install build-essential" + + +tag ruby.success +tagScript success exit 0 \ No newline at end of file From 5740d554d3329a950176d56b397a218f3f3d10c6 Mon Sep 17 00:00:00 2001 From: Gil Shwartz <58849439+GShwartz@users.noreply.github.com> Date: Mon, 6 May 2024 20:00:54 +0300 Subject: [PATCH 058/124] Add files via upload --- installer-contrib-tweaks-preinstall.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/installer-contrib-tweaks-preinstall.conf b/installer-contrib-tweaks-preinstall.conf index c74ec1fb..8db6f9c9 100644 --- a/installer-contrib-tweaks-preinstall.conf +++ b/installer-contrib-tweaks-preinstall.conf @@ -7,6 +7,6 @@ execute+=(tweaks/ubuntu-disable-openssl-randfile) chmod +x services/apache-latest-offirepo chmod +x tweaks/apache-enable-ssl chmod +x include/installInProgressHttpd-apache -chmod +x services/mysqlserver-8.0-osrepo +chmod +x services/mysqlserver-8.0-osrepo-withFiglet chmod +x services/ruby-latest-offirepo-ruby-dev chmod +x apps/redmine-5.1.1-offisrc-apache-rails-mysql-8.0 \ No newline at end of file From 3983735eeee98f8c6a8ddc90b15962f8793e342e Mon Sep 17 00:00:00 2001 From: Gil Shwartz <58849439+GShwartz@users.noreply.github.com> Date: Mon, 6 May 2024 20:03:54 +0300 Subject: [PATCH 059/124] Add files via upload --- services/ruby-latest-offirepo-ruby-dev | 68 +++++++++++++------------- 1 file changed, 34 insertions(+), 34 deletions(-) diff --git a/services/ruby-latest-offirepo-ruby-dev b/services/ruby-latest-offirepo-ruby-dev index 372ffbfe..8d76f4e1 100644 --- a/services/ruby-latest-offirepo-ruby-dev +++ b/services/ruby-latest-offirepo-ruby-dev @@ -1,35 +1,35 @@ -#!/bin/bash - -if [ -f "include/startup.sh" ]; then - . include/startup.sh -elif [ -f "../include/startup.sh" ]; then - . ../include/startup.sh -fi - -appPath="/etc/apache2/sites-available" -figletApp=$(which figlet) - -echo "Updating 'Installing Ruby...' notice to $appPath/index.html" | log -echo "" > "$appPath/index.html" -echo "Installation Progress
" > "$appPath/index.html"
-$figletApp "Install in Progress" >> "$appPath/index.html"
-echo "Please Wait. Installing Ruby..." >> "$appPath/index.html"
-echo "
" >> "$appPath/index.html" - -echo "Reloading Apache2..." -systemctl reload apache2 - -echo "Installing Ruby from apt" | log -installPackage ruby | log -waitOrStop 0 "Failed to install ruby" - -installPackage ruby-dev | log -waitOrStop 0 "Failed to install ruby-dev" - -installPackage build-essential | log -waitOrStop 0 "Failed to install build-essential" - - -tag ruby.success -tagScript success +#!/bin/bash + +if [ -f "include/startup.sh" ]; then + . include/startup.sh +elif [ -f "../include/startup.sh" ]; then + . ../include/startup.sh +fi + +appPath="/etc/apache2/sites-available" +figletApp=$(which figlet) + +echo "Updating 'Installing Ruby...' notice to $appPath/index.html" | log +echo "" > "$appPath/index.html" +echo "Installation Progress
" > "$appPath/index.html"
+$figletApp "Install in Progress" >> "$appPath/index.html"
+echo "Please Wait. Installing Ruby..." >> "$appPath/index.html"
+echo "
" >> "$appPath/index.html" + +echo "Reloading Apache2..." +systemctl reload apache2 + +echo "Installing Ruby from apt" | log +installPackage ruby | log +waitOrStop 0 "Failed to install ruby" + +installPackage ruby-dev | log +waitOrStop 0 "Failed to install ruby-dev" + +installPackage build-essential | log +waitOrStop 0 "Failed to install build-essential" + + +tag ruby.success +tagScript success exit 0 \ No newline at end of file From f976bcbebed34c707974022b709f3ce2efe5d22c Mon Sep 17 00:00:00 2001 From: Gil Shwartz <58849439+GShwartz@users.noreply.github.com> Date: Mon, 6 May 2024 20:13:54 +0300 Subject: [PATCH 060/124] Add files via upload --- services/apache-latest-offirepo | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/services/apache-latest-offirepo b/services/apache-latest-offirepo index 58fe0102..8ca181f1 100644 --- a/services/apache-latest-offirepo +++ b/services/apache-latest-offirepo @@ -46,9 +46,13 @@ cat <<_EOF_ > /etc/apache2/sites-available/figletIDX.conf _EOF_ a2enmod ssl -a2dissite 000-default a2ensite figletIDX +a2dissite 000-default systemctl start apache2 +systemctl enable Apache2 + +echo "Reloading Apache2..." +systemctl reload apache2 tag apache.success tag httpd.success From 588dd45db6bbb183ac3d9ce4f1fcb7695faaf7f2 Mon Sep 17 00:00:00 2001 From: Gil Shwartz <58849439+GShwartz@users.noreply.github.com> Date: Mon, 6 May 2024 20:16:33 +0300 Subject: [PATCH 061/124] Add files via upload --- services/apache-latest-offirepo | 4 ---- 1 file changed, 4 deletions(-) diff --git a/services/apache-latest-offirepo b/services/apache-latest-offirepo index 8ca181f1..bcc0a709 100644 --- a/services/apache-latest-offirepo +++ b/services/apache-latest-offirepo @@ -49,10 +49,6 @@ a2enmod ssl a2ensite figletIDX a2dissite 000-default systemctl start apache2 -systemctl enable Apache2 - -echo "Reloading Apache2..." -systemctl reload apache2 tag apache.success tag httpd.success From 3affc01804dd2e70e514cebb63220244ba07cadc Mon Sep 17 00:00:00 2001 From: Gil Shwartz <58849439+GShwartz@users.noreply.github.com> Date: Mon, 6 May 2024 20:24:16 +0300 Subject: [PATCH 062/124] Add files via upload --- tweaks/apache-enable-ssl | 3 +++ 1 file changed, 3 insertions(+) diff --git a/tweaks/apache-enable-ssl b/tweaks/apache-enable-ssl index 12cbe690..d33d2692 100755 --- a/tweaks/apache-enable-ssl +++ b/tweaks/apache-enable-ssl @@ -18,6 +18,9 @@ descriptionAppend " " echo "Enabling SSL..." a2enmod ssl +echo "Reloading Apache2..." +systemctl reload apache2 + tag ssl-ready.success tagScript success From adbc412863a631fe6491213a97f66bf5934aefa9 Mon Sep 17 00:00:00 2001 From: Gil Shwartz <58849439+GShwartz@users.noreply.github.com> Date: Mon, 6 May 2024 22:32:09 +0300 Subject: [PATCH 063/124] Add files via upload --- include/installInProgressHttpd-apache | 97 ++++++++++++++------------- 1 file changed, 49 insertions(+), 48 deletions(-) diff --git a/include/installInProgressHttpd-apache b/include/installInProgressHttpd-apache index 31db9f41..189a7017 100644 --- a/include/installInProgressHttpd-apache +++ b/include/installInProgressHttpd-apache @@ -1,48 +1,49 @@ -#!/bin/bash - -# Add this at the begining of all scripts. -if [ -f "include/startup.sh" ]; then - . include/startup.sh -elif [ -f "../include/startup.sh" ]; then - . ../include/startup.sh -fi - -echo "Installing Figlet..." -apt update && apt install -y figlet - -appPath=/etc/apache2/sites-available -if [ ! -d "$appPath" ]; then - echo "$appPath does not exists. Creating directory..." - mkdir -p $appPath -fi -touch $appPath/index.html - -figletApp=$(which figlet) - -if [ ! -d "$appPath" ]; then - echo "Web server directory doesn't exist, exiting." | log 1 - exit 1 -fi - -if [ -f "$appPath/redmine.conf" ]; then - echo "redmine.conf file exists. Skipping." | log - tagScript success - exit 99 -fi - -if [ -z "$figletApp" ]; then - echo "Figlet is not installed, please install figlet." | log 1 - exit 1 -fi - -echo "Adding 'Install in Progress' notice to $appPath/index.html" | log -echo "Installation Progress
" > "$appPath/index.html"
-$figletApp "Install in Progress" >> "$appPath/index.html"
-echo "Please Wait. Application and services installation is in progress, the process will take a couple of minutes to complete. Thank you for your patience. Refresh the page within a couple of minutes for an updated status." >> "$appPath/index.html"
-echo "
" >> "$appPath/index.html" - -echo "Reloading Apache2..." -systemctl reload apache2 - -tagScript success -exit 0 +#!/bin/bash + +# Add this at the begining of all scripts. +if [ -f "include/startup.sh" ]; then + . include/startup.sh +elif [ -f "../include/startup.sh" ]; then + . ../include/startup.sh +fi + +echo "Installing Figlet..." +apt update && apt install -y figlet + +appPath="/etc/apache2/sites-available" +if [ ! -d "$appPath" ]; then + echo "$appPath does not exists. Creating directory..." + mkdir -p $appPath +fi +touch $appPath/index.html + +figletApp=$(which figlet) + +if [ ! -d "$appPath" ]; then + echo "Web server directory doesn't exist, exiting." | log 1 + exit 1 +fi + +if [ -f "$appPath/redmine.conf" ]; then + echo "redmine.conf file exists. Skipping." | log + tagScript success + exit 99 +fi + +if [ -z "$figletApp" ]; then + echo "Figlet is not installed, please install figlet." | log 1 + exit 1 +fi + +echo "Adding 'Install in Progress' notice to $appPath/index.html" | log +echo "Installation Progress
" > "$appPath/index.html"
+$figletApp "Install in Progress" >> "$appPath/index.html"
+echo "Please Wait. Application and services installation is in progress, the process will take a couple of minutes to complete. Thank you for your patience. Refresh the page within a couple of minutes for an updated status." >> "$appPath/index.html"
+echo "" >> "$appPath/index.html"
+echo "
" >> "$appPath/index.html" + +echo "Reloading Apache2..." +systemctl reload apache2 + +tagScript success +exit 0 From be42ed231b07bf52e0a9909a5e8cb60bfb80f396 Mon Sep 17 00:00:00 2001 From: Gil Shwartz <58849439+GShwartz@users.noreply.github.com> Date: Mon, 6 May 2024 22:32:30 +0300 Subject: [PATCH 064/124] Add files via upload --- services/mysqlserver-8.0-osrepo-withFiglet | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/services/mysqlserver-8.0-osrepo-withFiglet b/services/mysqlserver-8.0-osrepo-withFiglet index d8b20f7f..d7d11756 100644 --- a/services/mysqlserver-8.0-osrepo-withFiglet +++ b/services/mysqlserver-8.0-osrepo-withFiglet @@ -12,10 +12,10 @@ appPath="/etc/apache2/sites-available" figletApp=$(which figlet) echo "Updating 'Installing MySQL server 8.0...' notice to $appPath/index.html" | log -echo "" > "$appPath/index.html" echo "Installation Progress
" > "$appPath/index.html"
 $figletApp "Install in Progress" >> "$appPath/index.html"
 echo "Please Wait. Installing MySQL server 8.0..." >> "$appPath/index.html"
+echo "" >> "$appPath/index.html"
 echo "
" >> "$appPath/index.html" echo "Reloading Apache2..." From c3289ab2022b61afe488ed7726285878c19c4bdb Mon Sep 17 00:00:00 2001 From: Gil Shwartz <58849439+GShwartz@users.noreply.github.com> Date: Mon, 6 May 2024 22:34:18 +0300 Subject: [PATCH 065/124] Add files via upload --- include/installInProgressHttpd-apache | 98 +++++++++++++-------------- 1 file changed, 49 insertions(+), 49 deletions(-) diff --git a/include/installInProgressHttpd-apache b/include/installInProgressHttpd-apache index 189a7017..8b5210a0 100644 --- a/include/installInProgressHttpd-apache +++ b/include/installInProgressHttpd-apache @@ -1,49 +1,49 @@ -#!/bin/bash - -# Add this at the begining of all scripts. -if [ -f "include/startup.sh" ]; then - . include/startup.sh -elif [ -f "../include/startup.sh" ]; then - . ../include/startup.sh -fi - -echo "Installing Figlet..." -apt update && apt install -y figlet - -appPath="/etc/apache2/sites-available" -if [ ! -d "$appPath" ]; then - echo "$appPath does not exists. Creating directory..." - mkdir -p $appPath -fi -touch $appPath/index.html - -figletApp=$(which figlet) - -if [ ! -d "$appPath" ]; then - echo "Web server directory doesn't exist, exiting." | log 1 - exit 1 -fi - -if [ -f "$appPath/redmine.conf" ]; then - echo "redmine.conf file exists. Skipping." | log - tagScript success - exit 99 -fi - -if [ -z "$figletApp" ]; then - echo "Figlet is not installed, please install figlet." | log 1 - exit 1 -fi - -echo "Adding 'Install in Progress' notice to $appPath/index.html" | log -echo "Installation Progress
" > "$appPath/index.html"
-$figletApp "Install in Progress" >> "$appPath/index.html"
-echo "Please Wait. Application and services installation is in progress, the process will take a couple of minutes to complete. Thank you for your patience. Refresh the page within a couple of minutes for an updated status." >> "$appPath/index.html"
-echo "" >> "$appPath/index.html"
-echo "
" >> "$appPath/index.html" - -echo "Reloading Apache2..." -systemctl reload apache2 - -tagScript success -exit 0 +#!/bin/bash + +# Add this at the begining of all scripts. +if [ -f "include/startup.sh" ]; then + . include/startup.sh +elif [ -f "../include/startup.sh" ]; then + . ../include/startup.sh +fi + +echo "Installing Figlet..." +apt update && apt install -y figlet + +appPath="/etc/apache2/sites-available" +if [ ! -d "$appPath" ]; then + echo "$appPath does not exists. Creating directory..." + mkdir -p $appPath +fi +touch $appPath/index.html + +figletApp=$(which figlet) + +if [ ! -d "$appPath" ]; then + echo "Web server directory doesn't exist, exiting." | log 1 + exit 1 +fi + +if [ -f "$appPath/redmine.conf" ]; then + echo "redmine.conf file exists. Skipping." | log + tagScript success + exit 99 +fi + +if [ -z "$figletApp" ]; then + echo "Figlet is not installed, please install figlet." | log 1 + exit 1 +fi + +echo "Adding 'Install in Progress' notice to $appPath/index.html" | log +echo "Installation Progress
" > "$appPath/index.html"
+$figletApp "Install in Progress" >> "$appPath/index.html"
+echo "Please Wait. Application and services installation is in progress, the process will take a couple of minutes to complete. Thank you for your patience. Refresh the page within a couple of minutes for an updated status." >> "$appPath/index.html"
+echo "" >> "$appPath/index.html"
+echo "
" >> "$appPath/index.html" + +echo "Reloading Apache2..." +systemctl reload apache2 + +tagScript success +exit 0 From 32839ad7181c604aae4849f52a65c771302a343b Mon Sep 17 00:00:00 2001 From: Gil Shwartz <58849439+GShwartz@users.noreply.github.com> Date: Mon, 6 May 2024 22:47:42 +0300 Subject: [PATCH 066/124] Add files via upload --- services/mysqlserver-8.0-osrepo-withFiglet | 2 +- services/ruby-latest-offirepo-ruby-dev | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/services/mysqlserver-8.0-osrepo-withFiglet b/services/mysqlserver-8.0-osrepo-withFiglet index d7d11756..9482946a 100644 --- a/services/mysqlserver-8.0-osrepo-withFiglet +++ b/services/mysqlserver-8.0-osrepo-withFiglet @@ -15,7 +15,7 @@ echo "Updating 'Installing MySQL server 8.0...' notice to $appPath/index.html" | echo "Installation Progress
" > "$appPath/index.html"
 $figletApp "Install in Progress" >> "$appPath/index.html"
 echo "Please Wait. Installing MySQL server 8.0..." >> "$appPath/index.html"
-echo "" >> "$appPath/index.html"
+echo "" >> "$appPath/index.html"
 echo "
" >> "$appPath/index.html" echo "Reloading Apache2..." diff --git a/services/ruby-latest-offirepo-ruby-dev b/services/ruby-latest-offirepo-ruby-dev index 8d76f4e1..e67784fe 100644 --- a/services/ruby-latest-offirepo-ruby-dev +++ b/services/ruby-latest-offirepo-ruby-dev @@ -10,10 +10,11 @@ appPath="/etc/apache2/sites-available" figletApp=$(which figlet) echo "Updating 'Installing Ruby...' notice to $appPath/index.html" | log -echo "" > "$appPath/index.html" echo "Installation Progress
" > "$appPath/index.html"
 $figletApp "Install in Progress" >> "$appPath/index.html"
-echo "Please Wait. Installing Ruby..." >> "$appPath/index.html"
+echo "Install MySQL server 8.0...[DONE]" >> "$appPath/index.html"
+echo "Please Wait. Installing Ruby 3.2.3..." >> "$appPath/index.html"
+echo "" >> "$appPath/index.html"
 echo "
" >> "$appPath/index.html" echo "Reloading Apache2..." From 7caf425f56c1d7a7d4e3c9a37fa92b9f8af1f16b Mon Sep 17 00:00:00 2001 From: Gil Shwartz <58849439+GShwartz@users.noreply.github.com> Date: Mon, 6 May 2024 22:48:13 +0300 Subject: [PATCH 067/124] Add files via upload --- apps/redmine-5.1.1-offisrc-apache-rails-mysql-8.0 | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/apps/redmine-5.1.1-offisrc-apache-rails-mysql-8.0 b/apps/redmine-5.1.1-offisrc-apache-rails-mysql-8.0 index 1c14c590..b23e0d5c 100644 --- a/apps/redmine-5.1.1-offisrc-apache-rails-mysql-8.0 +++ b/apps/redmine-5.1.1-offisrc-apache-rails-mysql-8.0 @@ -12,10 +12,12 @@ appPath="/etc/apache2/sites-available" figletApp=$(which figlet) echo "Updating 'Installing Redmine...' notice to $appPath/index.html" | log -echo "" > "$appPath/index.html" echo "Installation Progress
" > "$appPath/index.html"
 $figletApp "Install in Progress" >> "$appPath/index.html"
-echo "Please Wait. Installing Redmine..." >> "$appPath/index.html"
+echo "Install MySQL server 8.0...[DONE]" >> "$appPath/index.html"
+echo "Install Ruby 3.2.3...[DONE]" >> "$appPath/index.html"
+echo "Please Wait. Installing Redmine 5.1.1..." >> "$appPath/index.html"
+echo "" >> "$appPath/index.html"
 echo "
" >> "$appPath/index.html" echo "Reloading Apache2..." From 7075ab58bb35261803219343990e614988a30d52 Mon Sep 17 00:00:00 2001 From: Gil Shwartz <58849439+GShwartz@users.noreply.github.com> Date: Mon, 6 May 2024 22:56:54 +0300 Subject: [PATCH 068/124] Add files via upload --- apps/redmine-5.1.1-offisrc-apache-rails-mysql-8.0 | 12 +----------- 1 file changed, 1 insertion(+), 11 deletions(-) diff --git a/apps/redmine-5.1.1-offisrc-apache-rails-mysql-8.0 b/apps/redmine-5.1.1-offisrc-apache-rails-mysql-8.0 index b23e0d5c..b117df5c 100644 --- a/apps/redmine-5.1.1-offisrc-apache-rails-mysql-8.0 +++ b/apps/redmine-5.1.1-offisrc-apache-rails-mysql-8.0 @@ -15,7 +15,7 @@ echo "Updating 'Installing Redmine...' notice to $appPath/index.html" | log echo "Installation Progress
" > "$appPath/index.html"
 $figletApp "Install in Progress" >> "$appPath/index.html"
 echo "Install MySQL server 8.0...[DONE]" >> "$appPath/index.html"
-echo "Install Ruby 3.2.3...[DONE]" >> "$appPath/index.html"
+echo "Install Ruby 3.2.3.........[DONE]" >> "$appPath/index.html"
 echo "Please Wait. Installing Redmine 5.1.1..." >> "$appPath/index.html"
 echo "" >> "$appPath/index.html"
 echo "
" >> "$appPath/index.html" @@ -117,14 +117,4 @@ a2ensite redmine a2dissite figletIDX systemctl reload apache2 -# Add firewall rule -echo "Setting up firewall rules..." -ufw allow 22 -ufw allow 80 -ufw allow 443 -ufw allow 3306 -echo "y" | sudo ufw enable -ufw reload -ufw app list - echo "Redmine installation is complete. Access it via http://your-server-ip or https://your-server-ip." \ No newline at end of file From 23fe20d412507bd7930abe2efb2aa43eb223a0f3 Mon Sep 17 00:00:00 2001 From: Gil Shwartz <58849439+GShwartz@users.noreply.github.com> Date: Mon, 6 May 2024 22:57:09 +0300 Subject: [PATCH 069/124] Add files via upload --- include/installInProgressHttpd-apache | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/include/installInProgressHttpd-apache b/include/installInProgressHttpd-apache index 8b5210a0..9493efcc 100644 --- a/include/installInProgressHttpd-apache +++ b/include/installInProgressHttpd-apache @@ -38,8 +38,8 @@ fi echo "Adding 'Install in Progress' notice to $appPath/index.html" | log echo "Installation Progress
" > "$appPath/index.html"
 $figletApp "Install in Progress" >> "$appPath/index.html"
-echo "Please Wait. Application and services installation is in progress, the process will take a couple of minutes to complete. Thank you for your patience. Refresh the page within a couple of minutes for an updated status." >> "$appPath/index.html"
-echo "" >> "$appPath/index.html"
+echo "Please Wait. Application and services installation is in progress, the process will take a couple of minutes to complete. Thank you for your patience." >> "$appPath/index.html"
+echo "" >> "$appPath/index.html"
 echo "
" >> "$appPath/index.html" echo "Reloading Apache2..." From 3f4d18a6fd60e0e23980688e9e1c85a7cb1bac66 Mon Sep 17 00:00:00 2001 From: Gil Shwartz <58849439+GShwartz@users.noreply.github.com> Date: Tue, 7 May 2024 08:42:15 +0300 Subject: [PATCH 070/124] Add files via upload --- apps/redmine-5.1.1-offisrc-apache-rails-mysql-8.0 | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/apps/redmine-5.1.1-offisrc-apache-rails-mysql-8.0 b/apps/redmine-5.1.1-offisrc-apache-rails-mysql-8.0 index b117df5c..a1641ae9 100644 --- a/apps/redmine-5.1.1-offisrc-apache-rails-mysql-8.0 +++ b/apps/redmine-5.1.1-offisrc-apache-rails-mysql-8.0 @@ -24,7 +24,10 @@ echo "Reloading Apache2..." systemctl reload apache2 # Variables -DB_ROOT_PASS="Pass1234!" +DB_ROOT_PASS="${ADMINPASSWORD}" +echo "${ADMINPASSWORD}" +exit 0 + DB_REDMINE_PASS="redmine" REPO_URL="https://www.redmine.org/releases/redmine-5.1.1.tar.gz" REPO_DIR="/opt/redmine" From f02d01133e1f13d6c96ed3df8cc5062c9d37a53a Mon Sep 17 00:00:00 2001 From: Gil Shwartz <58849439+GShwartz@users.noreply.github.com> Date: Tue, 7 May 2024 09:04:19 +0300 Subject: [PATCH 071/124] Add files via upload --- apps/redmine-5.1.1-offisrc-apache-rails-mysql-8.0 | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/apps/redmine-5.1.1-offisrc-apache-rails-mysql-8.0 b/apps/redmine-5.1.1-offisrc-apache-rails-mysql-8.0 index a1641ae9..b117df5c 100644 --- a/apps/redmine-5.1.1-offisrc-apache-rails-mysql-8.0 +++ b/apps/redmine-5.1.1-offisrc-apache-rails-mysql-8.0 @@ -24,10 +24,7 @@ echo "Reloading Apache2..." systemctl reload apache2 # Variables -DB_ROOT_PASS="${ADMINPASSWORD}" -echo "${ADMINPASSWORD}" -exit 0 - +DB_ROOT_PASS="Pass1234!" DB_REDMINE_PASS="redmine" REPO_URL="https://www.redmine.org/releases/redmine-5.1.1.tar.gz" REPO_DIR="/opt/redmine" From d8facc18ad8ff70f596abfad686374a4d6a5492f Mon Sep 17 00:00:00 2001 From: Gil Shwartz <58849439+GShwartz@users.noreply.github.com> Date: Tue, 7 May 2024 10:11:49 +0300 Subject: [PATCH 072/124] Add files via upload --- apps/redmine-5.1.1-offisrc-apache-rails-mysql-8.0 | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/apps/redmine-5.1.1-offisrc-apache-rails-mysql-8.0 b/apps/redmine-5.1.1-offisrc-apache-rails-mysql-8.0 index b117df5c..d1815666 100644 --- a/apps/redmine-5.1.1-offisrc-apache-rails-mysql-8.0 +++ b/apps/redmine-5.1.1-offisrc-apache-rails-mysql-8.0 @@ -24,7 +24,7 @@ echo "Reloading Apache2..." systemctl reload apache2 # Variables -DB_ROOT_PASS="Pass1234!" +DB_ROOT_PASS="${ADMINPASSWORD}" DB_REDMINE_PASS="redmine" REPO_URL="https://www.redmine.org/releases/redmine-5.1.1.tar.gz" REPO_DIR="/opt/redmine" @@ -60,7 +60,6 @@ _EOF_ # Install gems gem install bundler -cd ${REPO_DIR} bundle config set --local without 'development test' bundle install @@ -112,9 +111,8 @@ _EOF_ # Enable Redmine site, disable default site echo "Enabling redmine site & disabling defaults..." -#a2enmod ssl a2ensite redmine a2dissite figletIDX systemctl reload apache2 -echo "Redmine installation is complete. Access it via http://your-server-ip or https://your-server-ip." \ No newline at end of file +echo "Redmine installation is complete." \ No newline at end of file From 0856f91eae15e21b615bcf00b747a2b7988ee9d7 Mon Sep 17 00:00:00 2001 From: Gil Shwartz <58849439+GShwartz@users.noreply.github.com> Date: Tue, 7 May 2024 10:12:08 +0300 Subject: [PATCH 073/124] Add files via upload --- services/mysqlserver-8.0-osrepo-withFiglet | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/services/mysqlserver-8.0-osrepo-withFiglet b/services/mysqlserver-8.0-osrepo-withFiglet index 9482946a..8bac5695 100644 --- a/services/mysqlserver-8.0-osrepo-withFiglet +++ b/services/mysqlserver-8.0-osrepo-withFiglet @@ -22,7 +22,7 @@ echo "Reloading Apache2..." systemctl reload apache2 echo "Create temp swap for composer processes" | log -#increase vm swappiness to allow swap to dominate process +# Increase vm swappiness to allow swap to dominate process sudo fallocate -l 2G /swapfile sudo chmod 600 /swapfile sudo mkswap /swapfile @@ -42,7 +42,7 @@ if [ ! -f ~/.my.cnf ]; then cat << EOF > ~/.my.cnf [client] user=root -password='${ADMINPASSWORD}' +password="${ADMINPASSWORD}" EOF fi From b8e1f5db0d9e29a558b276844cf6f36bda70cb8a Mon Sep 17 00:00:00 2001 From: Gil Shwartz <58849439+GShwartz@users.noreply.github.com> Date: Tue, 7 May 2024 10:35:00 +0300 Subject: [PATCH 074/124] Add files via upload From 2dc13b58fb229e320569581668cda32aa255edf3 Mon Sep 17 00:00:00 2001 From: Gil Shwartz <58849439+GShwartz@users.noreply.github.com> Date: Tue, 7 May 2024 10:35:21 +0300 Subject: [PATCH 075/124] Add files via upload --- apps/redmine-5.1.1-offisrc-apache-rails-mysql-8.0 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/redmine-5.1.1-offisrc-apache-rails-mysql-8.0 b/apps/redmine-5.1.1-offisrc-apache-rails-mysql-8.0 index d1815666..85a74b6b 100644 --- a/apps/redmine-5.1.1-offisrc-apache-rails-mysql-8.0 +++ b/apps/redmine-5.1.1-offisrc-apache-rails-mysql-8.0 @@ -17,7 +17,7 @@ $figletApp "Install in Progress" >> "$appPath/index.html" echo "Install MySQL server 8.0...[DONE]" >> "$appPath/index.html" echo "Install Ruby 3.2.3.........[DONE]" >> "$appPath/index.html" echo "Please Wait. Installing Redmine 5.1.1..." >> "$appPath/index.html" -echo "" >> "$appPath/index.html" +echo "" >> "$appPath/index.html" echo "
" >> "$appPath/index.html" echo "Reloading Apache2..." From 846699d8bdd9c9ce2efacaecab99cfa0c1a834c5 Mon Sep 17 00:00:00 2001 From: Gil Shwartz <58849439+GShwartz@users.noreply.github.com> Date: Tue, 7 May 2024 10:35:47 +0300 Subject: [PATCH 076/124] Add files via upload --- include/installInProgressHttpd-apache | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/include/installInProgressHttpd-apache b/include/installInProgressHttpd-apache index 9493efcc..71d7ef24 100644 --- a/include/installInProgressHttpd-apache +++ b/include/installInProgressHttpd-apache @@ -39,7 +39,8 @@ echo "Adding 'Install in Progress' notice to $appPath/index.html" | log echo "Installation Progress
" > "$appPath/index.html"
 $figletApp "Install in Progress" >> "$appPath/index.html"
 echo "Please Wait. Application and services installation is in progress, the process will take a couple of minutes to complete. Thank you for your patience." >> "$appPath/index.html"
-echo "" >> "$appPath/index.html"
+echo "Installing initial dependencies..." >> "$appPath/index.html"
+echo "" >> "$appPath/index.html"
 echo "
" >> "$appPath/index.html" echo "Reloading Apache2..." From a49de5832d90596ed124f7b7dff111c6cbc76aa7 Mon Sep 17 00:00:00 2001 From: Gil Shwartz <58849439+GShwartz@users.noreply.github.com> Date: Tue, 7 May 2024 10:36:39 +0300 Subject: [PATCH 077/124] Add files via upload --- services/mysqlserver-8.0-osrepo-withFiglet | 2 +- services/ruby-latest-offirepo-ruby-dev | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/services/mysqlserver-8.0-osrepo-withFiglet b/services/mysqlserver-8.0-osrepo-withFiglet index 8bac5695..0657cc07 100644 --- a/services/mysqlserver-8.0-osrepo-withFiglet +++ b/services/mysqlserver-8.0-osrepo-withFiglet @@ -15,7 +15,7 @@ echo "Updating 'Installing MySQL server 8.0...' notice to $appPath/index.html" | echo "Installation Progress
" > "$appPath/index.html"
 $figletApp "Install in Progress" >> "$appPath/index.html"
 echo "Please Wait. Installing MySQL server 8.0..." >> "$appPath/index.html"
-echo "" >> "$appPath/index.html"
+echo "" >> "$appPath/index.html"
 echo "
" >> "$appPath/index.html" echo "Reloading Apache2..." diff --git a/services/ruby-latest-offirepo-ruby-dev b/services/ruby-latest-offirepo-ruby-dev index e67784fe..a8c13acb 100644 --- a/services/ruby-latest-offirepo-ruby-dev +++ b/services/ruby-latest-offirepo-ruby-dev @@ -14,7 +14,7 @@ echo "Installation Progress
Installation Progress
" > "$appPath/index.html"
 $figletApp "Install in Progress" >> "$appPath/index.html"
-echo "Install MySQL server 8.0...[DONE]" >> "$appPath/index.html"
-echo "Install Ruby 3.2.3.........[DONE]" >> "$appPath/index.html"
+echo "Please Wait. Application and services installation is in progress, the process will take a couple of minutes to complete. Thank you for your patience." >> "$appPath/index.html"
+echo "Installing initial dependencies............[DONE]" >> "$appPath/index.html"
+echo "Install MySQL server 8.0...................[DONE]" >> "$appPath/index.html"
+echo "Install Ruby 3.2.3.........................[DONE]" >> "$appPath/index.html"
 echo "Please Wait. Installing Redmine 5.1.1..." >> "$appPath/index.html"
 echo "" >> "$appPath/index.html"
 echo "
" >> "$appPath/index.html" From d88bb1f1bda7420c05dcb4031e84686ba0ccf3db Mon Sep 17 00:00:00 2001 From: Gil Shwartz <58849439+GShwartz@users.noreply.github.com> Date: Tue, 7 May 2024 10:53:37 +0300 Subject: [PATCH 079/124] Add files via upload From 3c386174f0e5fb5aa1baccac1841e0e82f6cb2da Mon Sep 17 00:00:00 2001 From: Gil Shwartz <58849439+GShwartz@users.noreply.github.com> Date: Tue, 7 May 2024 10:54:21 +0300 Subject: [PATCH 080/124] Add files via upload --- services/mysqlserver-8.0-osrepo-withFiglet | 2 ++ services/ruby-latest-offirepo-ruby-dev | 4 +++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/services/mysqlserver-8.0-osrepo-withFiglet b/services/mysqlserver-8.0-osrepo-withFiglet index 0657cc07..b32b6478 100644 --- a/services/mysqlserver-8.0-osrepo-withFiglet +++ b/services/mysqlserver-8.0-osrepo-withFiglet @@ -14,6 +14,8 @@ figletApp=$(which figlet) echo "Updating 'Installing MySQL server 8.0...' notice to $appPath/index.html" | log echo "Installation Progress
" > "$appPath/index.html"
 $figletApp "Install in Progress" >> "$appPath/index.html"
+echo "Please Wait. Application and services installation is in progress, the process will take a couple of minutes to complete. Thank you for your patience." >> "$appPath/index.html"
+echo "Installing initial dependencies............[DONE]" >> "$appPath/index.html"
 echo "Please Wait. Installing MySQL server 8.0..." >> "$appPath/index.html"
 echo "" >> "$appPath/index.html"
 echo "
" >> "$appPath/index.html" diff --git a/services/ruby-latest-offirepo-ruby-dev b/services/ruby-latest-offirepo-ruby-dev index a8c13acb..95be1bff 100644 --- a/services/ruby-latest-offirepo-ruby-dev +++ b/services/ruby-latest-offirepo-ruby-dev @@ -12,7 +12,9 @@ figletApp=$(which figlet) echo "Updating 'Installing Ruby...' notice to $appPath/index.html" | log echo "Installation Progress
" > "$appPath/index.html"
 $figletApp "Install in Progress" >> "$appPath/index.html"
-echo "Install MySQL server 8.0...[DONE]" >> "$appPath/index.html"
+echo "Please Wait. Application and services installation is in progress, the process will take a couple of minutes to complete. Thank you for your patience." >> "$appPath/index.html"
+echo "Installing initial dependencies............[DONE]" >> "$appPath/index.html"
+echo "Install MySQL server 8.0...................[DONE]" >> "$appPath/index.html"
 echo "Please Wait. Installing Ruby 3.2.3..." >> "$appPath/index.html"
 echo "" >> "$appPath/index.html"
 echo "
" >> "$appPath/index.html" From c6d196f07e637c37af1ca3ccf5a33eaa9b2cf3fb Mon Sep 17 00:00:00 2001 From: Gil Shwartz <58849439+GShwartz@users.noreply.github.com> Date: Tue, 7 May 2024 14:20:18 +0300 Subject: [PATCH 081/124] Add files via upload --- apps/redmine-5.1.1-offisrc-apache-rails-mysql-8.0 | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/apps/redmine-5.1.1-offisrc-apache-rails-mysql-8.0 b/apps/redmine-5.1.1-offisrc-apache-rails-mysql-8.0 index 04f034ed..8270d459 100644 --- a/apps/redmine-5.1.1-offisrc-apache-rails-mysql-8.0 +++ b/apps/redmine-5.1.1-offisrc-apache-rails-mysql-8.0 @@ -19,6 +19,10 @@ echo "Installing initial dependencies............[DONE]" >> "$appPath/index.html echo "Install MySQL server 8.0...................[DONE]" >> "$appPath/index.html" echo "Install Ruby 3.2.3.........................[DONE]" >> "$appPath/index.html" echo "Please Wait. Installing Redmine 5.1.1..." >> "$appPath/index.html" +echo "=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=" >> "$appPath/index.html" +echo "Username: admin" >> "$appPath/index.html" +echo "Default password (You will be required to change that on first login): admin" >> "$appPath/index.html" +echo "=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=" >> "$appPath/index.html" echo "" >> "$appPath/index.html" echo "
" >> "$appPath/index.html" From e562a17c78919b4be391f87dabdae25293306ece Mon Sep 17 00:00:00 2001 From: Gil Shwartz <58849439+GShwartz@users.noreply.github.com> Date: Tue, 7 May 2024 14:20:37 +0300 Subject: [PATCH 082/124] Add files via upload --- include/installInProgressHttpd-apache | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/include/installInProgressHttpd-apache b/include/installInProgressHttpd-apache index 71d7ef24..af9a01f7 100644 --- a/include/installInProgressHttpd-apache +++ b/include/installInProgressHttpd-apache @@ -40,6 +40,10 @@ echo "Installation Progress
Installation Progress
" > "$appPath/index.html"
 $figletApp "Install in Progress" >> "$appPath/index.html"
 echo "Please Wait. Application and services installation is in progress, the process will take a couple of minutes to complete. Thank you for your patience." >> "$appPath/index.html"
-echo "Installing initial dependencies............[DONE]" >> "$appPath/index.html"
+echo "Installing dependencies....................[DONE]" >> "$appPath/index.html"
 echo "Install MySQL server 8.0...................[DONE]" >> "$appPath/index.html"
 echo "Install Ruby 3.2.3.........................[DONE]" >> "$appPath/index.html"
 echo "Please Wait. Installing Redmine 5.1.1..." >> "$appPath/index.html"
-echo "=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=" >> "$appPath/index.html"
-echo "Username: admin" >> "$appPath/index.html"
-echo "Default password (You will be required to change that on first login): admin" >> "$appPath/index.html"
-echo "=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=" >> "$appPath/index.html"
 echo "" >> "$appPath/index.html"
 echo "
" >> "$appPath/index.html" @@ -30,7 +26,6 @@ echo "Reloading Apache2..." systemctl reload apache2 # Variables -DB_ROOT_PASS="${ADMINPASSWORD}" DB_REDMINE_PASS="redmine" REPO_URL="https://www.redmine.org/releases/redmine-5.1.1.tar.gz" REPO_DIR="/opt/redmine" @@ -115,6 +110,16 @@ cat <<_EOF_ > /etc/apache2/sites-available/redmine.conf _EOF_ + +# Replace default admin password +echo "Replacing default admin password..." +cd ${REPO_DIR} +RAILS_ENV=production bundle exec rails c +admin_user = User.where(admin: true).first +admin_user.password = '${ADMINPASSWORD}' +admin_user.password_confirmation = '${ADMINPASSWORD}' +admin_user.save! + # Enable Redmine site, disable default site echo "Enabling redmine site & disabling defaults..." a2ensite redmine From c0b19a2088f04af70e30908773d8841b63de151d Mon Sep 17 00:00:00 2001 From: Gil Shwartz <58849439+GShwartz@users.noreply.github.com> Date: Tue, 7 May 2024 14:50:51 +0300 Subject: [PATCH 085/124] Add files via upload --- include/installInProgressHttpd-apache | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/include/installInProgressHttpd-apache b/include/installInProgressHttpd-apache index af9a01f7..a17e584c 100644 --- a/include/installInProgressHttpd-apache +++ b/include/installInProgressHttpd-apache @@ -39,11 +39,7 @@ echo "Adding 'Install in Progress' notice to $appPath/index.html" | log echo "Installation Progress
" > "$appPath/index.html"
 $figletApp "Install in Progress" >> "$appPath/index.html"
 echo "Please Wait. Application and services installation is in progress, the process will take a couple of minutes to complete. Thank you for your patience." >> "$appPath/index.html"
-echo "Installing initial dependencies..." >> "$appPath/index.html"
-echo "=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=" >> "$appPath/index.html"
-echo "Username: admin" >> "$appPath/index.html"
-echo "Default password (You will be required to change that on first login): admin" >> "$appPath/index.html"
-echo "=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=" >> "$appPath/index.html"
+echo "Installing dependencies..." >> "$appPath/index.html"
 echo "" >> "$appPath/index.html"
 echo "
" >> "$appPath/index.html" From ceaa5a533e9b98fdb53a36f47dbb159fc976f5a2 Mon Sep 17 00:00:00 2001 From: Gil Shwartz <58849439+GShwartz@users.noreply.github.com> Date: Tue, 7 May 2024 14:51:17 +0300 Subject: [PATCH 086/124] Add files via upload --- services/mysqlserver-8.0-osrepo-withFiglet | 6 +----- services/ruby-latest-offirepo-ruby-dev | 6 +----- 2 files changed, 2 insertions(+), 10 deletions(-) diff --git a/services/mysqlserver-8.0-osrepo-withFiglet b/services/mysqlserver-8.0-osrepo-withFiglet index b910a843..c57350d5 100644 --- a/services/mysqlserver-8.0-osrepo-withFiglet +++ b/services/mysqlserver-8.0-osrepo-withFiglet @@ -15,12 +15,8 @@ echo "Updating 'Installing MySQL server 8.0...' notice to $appPath/index.html" | echo "Installation Progress
" > "$appPath/index.html"
 $figletApp "Install in Progress" >> "$appPath/index.html"
 echo "Please Wait. Application and services installation is in progress, the process will take a couple of minutes to complete. Thank you for your patience." >> "$appPath/index.html"
-echo "Installing initial dependencies............[DONE]" >> "$appPath/index.html"
+echo "Installing dependencies....................[DONE]" >> "$appPath/index.html"
 echo "Please Wait. Installing MySQL server 8.0..." >> "$appPath/index.html"
-echo "=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=" >> "$appPath/index.html"
-echo "Username: admin" >> "$appPath/index.html"
-echo "Default password (You will be required to change that on first login): admin" >> "$appPath/index.html"
-echo "=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=" >> "$appPath/index.html"
 echo "" >> "$appPath/index.html"
 echo "
" >> "$appPath/index.html" diff --git a/services/ruby-latest-offirepo-ruby-dev b/services/ruby-latest-offirepo-ruby-dev index 9344c80b..65fc8a54 100644 --- a/services/ruby-latest-offirepo-ruby-dev +++ b/services/ruby-latest-offirepo-ruby-dev @@ -13,13 +13,9 @@ echo "Updating 'Installing Ruby...' notice to $appPath/index.html" | log echo "Installation Progress
" > "$appPath/index.html"
 $figletApp "Install in Progress" >> "$appPath/index.html"
 echo "Please Wait. Application and services installation is in progress, the process will take a couple of minutes to complete. Thank you for your patience." >> "$appPath/index.html"
-echo "Installing initial dependencies............[DONE]" >> "$appPath/index.html"
+echo "Installing dependencies....................[DONE]" >> "$appPath/index.html"
 echo "Install MySQL server 8.0...................[DONE]" >> "$appPath/index.html"
 echo "Please Wait. Installing Ruby 3.2.3..." >> "$appPath/index.html"
-echo "=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=" >> "$appPath/index.html"
-echo "Username: admin" >> "$appPath/index.html"
-echo "Default password (You will be required to change that on first login): admin" >> "$appPath/index.html"
-echo "=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=" >> "$appPath/index.html"
 echo "" >> "$appPath/index.html"
 echo "
" >> "$appPath/index.html" From da1ef68d62df3701f267ae29f948f3d1144e4e40 Mon Sep 17 00:00:00 2001 From: Gil Shwartz <58849439+GShwartz@users.noreply.github.com> Date: Tue, 7 May 2024 14:52:39 +0300 Subject: [PATCH 087/124] Add files via upload --- installer-contrib-tweaks-preinstall.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/installer-contrib-tweaks-preinstall.conf b/installer-contrib-tweaks-preinstall.conf index 8db6f9c9..446d9da2 100644 --- a/installer-contrib-tweaks-preinstall.conf +++ b/installer-contrib-tweaks-preinstall.conf @@ -1,6 +1,6 @@ execute+=(tweaks/cwm-settimezone) execute+=(tweaks/ubuntu-sysctl-swap) -#execute+=(tweaks/ubuntu-updatemirror) # CWM-ZONE variable is N/A +execute+=(tweaks/ubuntu-updatemirror) execute+=(include/checkInternetConnectivity) execute+=(tweaks/ubuntu-disable-openssl-randfile) From f396e5b428745c857b3cfdc13a2f80af1fcd5f65 Mon Sep 17 00:00:00 2001 From: Gil Shwartz <58849439+GShwartz@users.noreply.github.com> Date: Tue, 7 May 2024 15:08:35 +0300 Subject: [PATCH 088/124] Add files via upload --- ...dmine-5.1.1-offisrc-apache-rails-mysql-8.0 | 22 +++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/apps/redmine-5.1.1-offisrc-apache-rails-mysql-8.0 b/apps/redmine-5.1.1-offisrc-apache-rails-mysql-8.0 index 5a3853bf..edc4023f 100644 --- a/apps/redmine-5.1.1-offisrc-apache-rails-mysql-8.0 +++ b/apps/redmine-5.1.1-offisrc-apache-rails-mysql-8.0 @@ -114,11 +114,25 @@ _EOF_ # Replace default admin password echo "Replacing default admin password..." cd ${REPO_DIR} -RAILS_ENV=production bundle exec rails c +ruby << 'RUBY' +require_relative 'config/environment' + admin_user = User.where(admin: true).first -admin_user.password = '${ADMINPASSWORD}' -admin_user.password_confirmation = '${ADMINPASSWORD}' -admin_user.save! +if admin_user.nil? + puts "Admin user not found!" + exit 1 +end + +admin_user.password = 'new_password_here' +admin_user.password_confirmation = 'new_password_here' + +if admin_user.save + puts "Password updated successfully." +else + puts "Failed to update password: #{admin_user.errors.full_messages.join(", ")}" + exit 1 +end +RUBY # Enable Redmine site, disable default site echo "Enabling redmine site & disabling defaults..." From a61d58a38fdb8e7b7dc893becbca9edfe85be028 Mon Sep 17 00:00:00 2001 From: Gil Shwartz <58849439+GShwartz@users.noreply.github.com> Date: Tue, 7 May 2024 20:28:52 +0300 Subject: [PATCH 089/124] Add files via upload --- ...dmine-5.1.1-offisrc-apache-rails-mysql-8.0 | 313 ++++++++++-------- 1 file changed, 171 insertions(+), 142 deletions(-) diff --git a/apps/redmine-5.1.1-offisrc-apache-rails-mysql-8.0 b/apps/redmine-5.1.1-offisrc-apache-rails-mysql-8.0 index edc4023f..95e260bb 100644 --- a/apps/redmine-5.1.1-offisrc-apache-rails-mysql-8.0 +++ b/apps/redmine-5.1.1-offisrc-apache-rails-mysql-8.0 @@ -1,143 +1,172 @@ -#!/bin/bash - -if [ -f "include/startup.sh" ]; then - . include/startup.sh - -elif [ -f "../include/startup.sh" ]; then - . ../include/startup.sh - -fi - -appPath="/etc/apache2/sites-available" -figletApp=$(which figlet) - -echo "Updating 'Installing Redmine...' notice to $appPath/index.html" | log -echo "Installation Progress
" > "$appPath/index.html"
-$figletApp "Install in Progress" >> "$appPath/index.html"
-echo "Please Wait. Application and services installation is in progress, the process will take a couple of minutes to complete. Thank you for your patience." >> "$appPath/index.html"
-echo "Installing dependencies....................[DONE]" >> "$appPath/index.html"
-echo "Install MySQL server 8.0...................[DONE]" >> "$appPath/index.html"
-echo "Install Ruby 3.2.3.........................[DONE]" >> "$appPath/index.html"
-echo "Please Wait. Installing Redmine 5.1.1..." >> "$appPath/index.html"
-echo "" >> "$appPath/index.html"
-echo "
" >> "$appPath/index.html" - -echo "Reloading Apache2..." -systemctl reload apache2 - -# Variables -DB_REDMINE_PASS="redmine" -REPO_URL="https://www.redmine.org/releases/redmine-5.1.1.tar.gz" -REPO_DIR="/opt/redmine" - -# Update system and install required packages -apt-get update && apt-get upgrade -y -apt-get install -y libmysqlclient-dev apt-transport-https - -# Secure MySQL and set up Redmine database -mysql --user=root <<_EOF_ -DELETE FROM mysql.user WHERE User=''; -CREATE DATABASE redmine CHARACTER SET utf8mb4; -CREATE USER 'redmine'@'localhost' IDENTIFIED BY '${DB_REDMINE_PASS}'; -GRANT ALL PRIVILEGES ON redmine.* TO 'redmine'@'localhost'; -FLUSH PRIVILEGES; -_EOF_ - -# Install Redmine -mkdir -p ${REPO_DIR} -curl -s ${REPO_URL} | sudo tar xz -C ${REPO_DIR} --strip-components=1 -cd ${REPO_DIR} - -# Configure database connection -cat <<_EOF_ > ${REPO_DIR}/config/database.yml -production: - adapter: mysql2 - database: redmine - host: localhost - username: redmine - password: "${DB_REDMINE_PASS}" - encoding: utf8mb4 -_EOF_ - -# Install gems -gem install bundler -bundle config set --local without 'development test' -bundle install - -# Prepare the database -bundle exec rake generate_secret_token -RAILS_ENV=production bundle exec rake db:migrate -RAILS_ENV=production REDMINE_LANG=en bundle exec rake redmine:load_default_data - -# Configuring permissions -echo "Configuring permissions..." -chown -R www-data:www-data /opt/redmine/ - -# Install ImageMagic for Redmine -echo "Installing ImageMagic & ghostscript..." -apt update -apt install -y imagemagick libmagickwand-dev -convert -version -apt install -y ghostscript - -echo "Writing apache configuration file..." -cat <<_EOF_ > /etc/apache2/sites-available/redmine.conf - - ServerName redmine.omc - DocumentRoot ${REPO_DIR}/public - - Allow from all - Options -MultiViews - Require all granted - - - - - - ServerName redmine.omc - DocumentRoot ${REPO_DIR}/public - - SSLEngine on - SSLCertificateFile /etc/ssl/certs/apache-selfsigned.crt - SSLCertificateKeyFile /etc/ssl/private/apache-selfsigned.key - - - Allow from all - Options -MultiViews - Require all granted - - - -_EOF_ - - -# Replace default admin password -echo "Replacing default admin password..." -cd ${REPO_DIR} -ruby << 'RUBY' -require_relative 'config/environment' - -admin_user = User.where(admin: true).first -if admin_user.nil? - puts "Admin user not found!" - exit 1 -end - -admin_user.password = 'new_password_here' -admin_user.password_confirmation = 'new_password_here' - -if admin_user.save - puts "Password updated successfully." -else - puts "Failed to update password: #{admin_user.errors.full_messages.join(", ")}" - exit 1 -end -RUBY - -# Enable Redmine site, disable default site -echo "Enabling redmine site & disabling defaults..." -a2ensite redmine -a2dissite figletIDX -systemctl reload apache2 - +#!/bin/bash + +if [ -f "include/startup.sh" ]; then + . include/startup.sh + +elif [ -f "../include/startup.sh" ]; then + . ../include/startup.sh + +fi + +setAdminPassword() { + # Find the admin user + admin_user = User.where(admin: true).first + + if admin_user.nil? + puts "Admin user not found!" + exit 1 + else + # Set new password + admin_user.password = ENV['NEW_ADMIN_PASSWORD'] + admin_user.password_confirmation = ENV['NEW_ADMIN_PASSWORD'] + + # Save changes and check for success + if admin_user.save + puts "Password updated successfully." + else + puts "Failed to update password: #{admin_user.errors.full_messages.join(", ")}" + exit 1 + end + end + +} + + +appPath="/etc/apache2/sites-available" +figletApp=$(which figlet) + +echo "Updating 'Installing Redmine...' notice to $appPath/index.html" | log +echo "Installation Progress
" > "$appPath/index.html"
+$figletApp "Install in Progress" >> "$appPath/index.html"
+echo "Please Wait. Application and services installation is in progress, the process will take a couple of minutes to complete. Thank you for your patience." >> "$appPath/index.html"
+echo "Installing dependencies....................[DONE]" >> "$appPath/index.html"
+echo "Install MySQL server 8.0...................[DONE]" >> "$appPath/index.html"
+echo "Install Ruby 3.2.3.........................[DONE]" >> "$appPath/index.html"
+echo "Please Wait. Installing Redmine 5.1.1..." >> "$appPath/index.html"
+echo "" >> "$appPath/index.html"
+echo "
" >> "$appPath/index.html" + +echo "Reloading Apache2..." +systemctl reload apache2 + +# Variables +DB_REDMINE_PASS="redmine" +REPO_URL="https://www.redmine.org/releases/redmine-5.1.1.tar.gz" +REPO_DIR="/opt/redmine" + +# Update system and install required packages +apt-get update && apt-get upgrade -y +apt-get install -y libmysqlclient-dev apt-transport-https + +# Secure MySQL and set up Redmine database +mysql --user=root <<_EOF_ +DELETE FROM mysql.user WHERE User=''; +CREATE DATABASE redmine CHARACTER SET utf8mb4; +CREATE USER 'redmine'@'localhost' IDENTIFIED BY '${DB_REDMINE_PASS}'; +GRANT ALL PRIVILEGES ON redmine.* TO 'redmine'@'localhost'; +FLUSH PRIVILEGES; +_EOF_ + +# Install Redmine +mkdir -p ${REPO_DIR} +curl -s ${REPO_URL} | sudo tar xz -C ${REPO_DIR} --strip-components=1 +cd ${REPO_DIR} + +# Configure database connection +cat <<_EOF_ > ${REPO_DIR}/config/database.yml +production: + adapter: mysql2 + database: redmine + host: localhost + username: redmine + password: "${DB_REDMINE_PASS}" + encoding: utf8mb4 +_EOF_ + +# Install gems +gem install bundler +bundle config set --local without 'development test' +bundle install + +# Prepare the database +bundle exec rake generate_secret_token +RAILS_ENV=production bundle exec rake db:migrate +RAILS_ENV=production REDMINE_LANG=en bundle exec rake redmine:load_default_data + +# Configuring permissions +echo "Configuring permissions..." +chown -R www-data:www-data /opt/redmine/ + +# Install ImageMagic for Redmine +echo "Installing ImageMagic & ghostscript..." +apt update +apt install -y imagemagick libmagickwand-dev +convert -version +apt install -y ghostscript + +changePassScript="${REPO_DIR}/change_admin_password.sh" +cat <<_EOF_ > $changePassScript +# Find the admin user +admin_user = User.where(admin: true).first + +if admin_user.nil? + puts "Admin user not found!" + exit 1 +else + # Set new password + admin_user.password = ENV['NEW_ADMIN_PASSWORD'] + admin_user.password_confirmation = ENV['NEW_ADMIN_PASSWORD'] + + # Save changes and check for success + if admin_user.save + puts "Password updated successfully." + else + puts "Failed to update password: #{admin_user.errors.full_messages.join(", ")}" + exit 1 + end +end +_EOF_ +chmod +x $changePassScript + +# Replace default admin password +echo "Replacing default admin password..." +RAILS_ENV=production NEW_ADMIN_PASSWORD='12341234' rails runner $changePassScript + +echo "Writing apache configuration file..." +cat <<_EOF_ > /etc/apache2/sites-available/redmine.conf + + ServerName redmine.omc + DocumentRoot ${REPO_DIR}/public + + Allow from all + Options -MultiViews + Require all granted + + + + + + ServerName redmine.omc + DocumentRoot ${REPO_DIR}/public + + SSLEngine on + SSLCertificateFile /etc/ssl/certs/apache-selfsigned.crt + SSLCertificateKeyFile /etc/ssl/private/apache-selfsigned.key + + + Allow from all + Options -MultiViews + Require all granted + + + +_EOF_ + + +# Enable Redmine site, disable default site +echo "Enabling redmine site & disabling defaults..." +a2ensite redmine +a2dissite figletIDX +systemctl reload apache2 + echo "Redmine installation is complete." \ No newline at end of file From cb1164cf6971d0551a92140297d1babf840b683a Mon Sep 17 00:00:00 2001 From: Gil Shwartz <58849439+GShwartz@users.noreply.github.com> Date: Tue, 7 May 2024 20:34:21 +0300 Subject: [PATCH 090/124] Add files via upload --- ...dmine-5.1.1-offisrc-apache-rails-mysql-8.0 | 343 +++++++++--------- 1 file changed, 172 insertions(+), 171 deletions(-) diff --git a/apps/redmine-5.1.1-offisrc-apache-rails-mysql-8.0 b/apps/redmine-5.1.1-offisrc-apache-rails-mysql-8.0 index 95e260bb..c8074045 100644 --- a/apps/redmine-5.1.1-offisrc-apache-rails-mysql-8.0 +++ b/apps/redmine-5.1.1-offisrc-apache-rails-mysql-8.0 @@ -1,172 +1,173 @@ -#!/bin/bash - -if [ -f "include/startup.sh" ]; then - . include/startup.sh - -elif [ -f "../include/startup.sh" ]; then - . ../include/startup.sh - -fi - -setAdminPassword() { - # Find the admin user - admin_user = User.where(admin: true).first - - if admin_user.nil? - puts "Admin user not found!" - exit 1 - else - # Set new password - admin_user.password = ENV['NEW_ADMIN_PASSWORD'] - admin_user.password_confirmation = ENV['NEW_ADMIN_PASSWORD'] - - # Save changes and check for success - if admin_user.save - puts "Password updated successfully." - else - puts "Failed to update password: #{admin_user.errors.full_messages.join(", ")}" - exit 1 - end - end - -} - - -appPath="/etc/apache2/sites-available" -figletApp=$(which figlet) - -echo "Updating 'Installing Redmine...' notice to $appPath/index.html" | log -echo "Installation Progress
" > "$appPath/index.html"
-$figletApp "Install in Progress" >> "$appPath/index.html"
-echo "Please Wait. Application and services installation is in progress, the process will take a couple of minutes to complete. Thank you for your patience." >> "$appPath/index.html"
-echo "Installing dependencies....................[DONE]" >> "$appPath/index.html"
-echo "Install MySQL server 8.0...................[DONE]" >> "$appPath/index.html"
-echo "Install Ruby 3.2.3.........................[DONE]" >> "$appPath/index.html"
-echo "Please Wait. Installing Redmine 5.1.1..." >> "$appPath/index.html"
-echo "" >> "$appPath/index.html"
-echo "
" >> "$appPath/index.html" - -echo "Reloading Apache2..." -systemctl reload apache2 - -# Variables -DB_REDMINE_PASS="redmine" -REPO_URL="https://www.redmine.org/releases/redmine-5.1.1.tar.gz" -REPO_DIR="/opt/redmine" - -# Update system and install required packages -apt-get update && apt-get upgrade -y -apt-get install -y libmysqlclient-dev apt-transport-https - -# Secure MySQL and set up Redmine database -mysql --user=root <<_EOF_ -DELETE FROM mysql.user WHERE User=''; -CREATE DATABASE redmine CHARACTER SET utf8mb4; -CREATE USER 'redmine'@'localhost' IDENTIFIED BY '${DB_REDMINE_PASS}'; -GRANT ALL PRIVILEGES ON redmine.* TO 'redmine'@'localhost'; -FLUSH PRIVILEGES; -_EOF_ - -# Install Redmine -mkdir -p ${REPO_DIR} -curl -s ${REPO_URL} | sudo tar xz -C ${REPO_DIR} --strip-components=1 -cd ${REPO_DIR} - -# Configure database connection -cat <<_EOF_ > ${REPO_DIR}/config/database.yml -production: - adapter: mysql2 - database: redmine - host: localhost - username: redmine - password: "${DB_REDMINE_PASS}" - encoding: utf8mb4 -_EOF_ - -# Install gems -gem install bundler -bundle config set --local without 'development test' -bundle install - -# Prepare the database -bundle exec rake generate_secret_token -RAILS_ENV=production bundle exec rake db:migrate -RAILS_ENV=production REDMINE_LANG=en bundle exec rake redmine:load_default_data - -# Configuring permissions -echo "Configuring permissions..." -chown -R www-data:www-data /opt/redmine/ - -# Install ImageMagic for Redmine -echo "Installing ImageMagic & ghostscript..." -apt update -apt install -y imagemagick libmagickwand-dev -convert -version -apt install -y ghostscript - -changePassScript="${REPO_DIR}/change_admin_password.sh" -cat <<_EOF_ > $changePassScript -# Find the admin user -admin_user = User.where(admin: true).first - -if admin_user.nil? - puts "Admin user not found!" - exit 1 -else - # Set new password - admin_user.password = ENV['NEW_ADMIN_PASSWORD'] - admin_user.password_confirmation = ENV['NEW_ADMIN_PASSWORD'] - - # Save changes and check for success - if admin_user.save - puts "Password updated successfully." - else - puts "Failed to update password: #{admin_user.errors.full_messages.join(", ")}" - exit 1 - end -end -_EOF_ -chmod +x $changePassScript - -# Replace default admin password -echo "Replacing default admin password..." -RAILS_ENV=production NEW_ADMIN_PASSWORD='12341234' rails runner $changePassScript - -echo "Writing apache configuration file..." -cat <<_EOF_ > /etc/apache2/sites-available/redmine.conf - - ServerName redmine.omc - DocumentRoot ${REPO_DIR}/public - - Allow from all - Options -MultiViews - Require all granted - - - - - - ServerName redmine.omc - DocumentRoot ${REPO_DIR}/public - - SSLEngine on - SSLCertificateFile /etc/ssl/certs/apache-selfsigned.crt - SSLCertificateKeyFile /etc/ssl/private/apache-selfsigned.key - - - Allow from all - Options -MultiViews - Require all granted - - - -_EOF_ - - -# Enable Redmine site, disable default site -echo "Enabling redmine site & disabling defaults..." -a2ensite redmine -a2dissite figletIDX -systemctl reload apache2 - +#!/bin/bash + +if [ -f "include/startup.sh" ]; then + . include/startup.sh + +elif [ -f "../include/startup.sh" ]; then + . ../include/startup.sh + +fi + +setAdminPassword() { + # Find the admin user + admin_user = User.where(admin: true).first + + if admin_user.nil? + puts "Admin user not found!" + exit 1 + else + # Set new password + admin_user.password = ENV['NEW_ADMIN_PASSWORD'] + admin_user.password_confirmation = ENV['NEW_ADMIN_PASSWORD'] + + # Save changes and check for success + if admin_user.save + puts "Password updated successfully." + else + puts "Failed to update password: #{admin_user.errors.full_messages.join(", ")}" + exit 1 + end + end + +} + + +appPath="/etc/apache2/sites-available" +figletApp=$(which figlet) + +echo "Updating 'Installing Redmine...' notice to $appPath/index.html" | log +echo "Installation Progress
" > "$appPath/index.html"
+$figletApp "Install in Progress" >> "$appPath/index.html"
+echo "Please Wait. Application and services installation is in progress, the process will take a couple of minutes to complete. Thank you for your patience." >> "$appPath/index.html"
+echo "Installing dependencies....................[DONE]" >> "$appPath/index.html"
+echo "Install MySQL server 8.0...................[DONE]" >> "$appPath/index.html"
+echo "Install Ruby 3.2.3.........................[DONE]" >> "$appPath/index.html"
+echo "Please Wait. Installing Redmine 5.1.1..." >> "$appPath/index.html"
+echo "" >> "$appPath/index.html"
+echo "
" >> "$appPath/index.html" + +echo "Reloading Apache2..." +systemctl reload apache2 + +# Variables +DB_REDMINE_PASS="redmine" +REPO_URL="https://www.redmine.org/releases/redmine-5.1.1.tar.gz" +REPO_DIR="/opt/redmine" + +# Update system and install required packages +apt-get update && apt-get upgrade -y +apt-get install -y libmysqlclient-dev apt-transport-https + +# Secure MySQL and set up Redmine database +mysql --user=root <<_EOF_ +DELETE FROM mysql.user WHERE User=''; +CREATE DATABASE redmine CHARACTER SET utf8mb4; +CREATE USER 'redmine'@'localhost' IDENTIFIED BY '${DB_REDMINE_PASS}'; +GRANT ALL PRIVILEGES ON redmine.* TO 'redmine'@'localhost'; +FLUSH PRIVILEGES; +_EOF_ + +# Install Redmine +mkdir -p ${REPO_DIR} +curl -s ${REPO_URL} | sudo tar xz -C ${REPO_DIR} --strip-components=1 +cd ${REPO_DIR} + +# Configure database connection +cat <<_EOF_ > ${REPO_DIR}/config/database.yml +production: + adapter: mysql2 + database: redmine + host: localhost + username: redmine + password: "${DB_REDMINE_PASS}" + encoding: utf8mb4 +_EOF_ + +# Install gems +gem install bundler +bundle config set --local without 'development test' +bundle install + +# Prepare the database +bundle exec rake generate_secret_token +RAILS_ENV=production bundle exec rake db:migrate +RAILS_ENV=production REDMINE_LANG=en bundle exec rake redmine:load_default_data + +# Configuring permissions +echo "Configuring permissions..." +chown -R www-data:www-data /opt/redmine/ + +# Install ImageMagic for Redmine +echo "Installing ImageMagic & ghostscript..." +apt update +apt install -y imagemagick libmagickwand-dev +convert -version +apt install -y ghostscript + +changePassScript="${REPO_DIR}/change_admin_password.sh" +touch $changePassScript +cat <<_EOF_ > $changePassScript +# Find the admin user +admin_user = User.where(admin: true).first + +if admin_user.nil? + puts "Admin user not found!" + exit 1 +else + # Set new password + admin_user.password = ENV['NEW_ADMIN_PASSWORD'] + admin_user.password_confirmation = ENV['NEW_ADMIN_PASSWORD'] + + # Save changes and check for success + if admin_user.save + puts "Password updated successfully." + else + puts "Failed to update password: #{admin_user.errors.full_messages.join(", ")}" + exit 1 + end +end +_EOF_ +chmod +x $changePassScript + +# Replace default admin password +echo "Replacing default admin password..." +RAILS_ENV=production NEW_ADMIN_PASSWORD='12341234' rails runner $changePassScript + +echo "Writing apache configuration file..." +cat <<_EOF_ > /etc/apache2/sites-available/redmine.conf + + ServerName redmine.omc + DocumentRoot ${REPO_DIR}/public + + Allow from all + Options -MultiViews + Require all granted + + + + + + ServerName redmine.omc + DocumentRoot ${REPO_DIR}/public + + SSLEngine on + SSLCertificateFile /etc/ssl/certs/apache-selfsigned.crt + SSLCertificateKeyFile /etc/ssl/private/apache-selfsigned.key + + + Allow from all + Options -MultiViews + Require all granted + + + +_EOF_ + + +# Enable Redmine site, disable default site +echo "Enabling redmine site & disabling defaults..." +a2ensite redmine +a2dissite figletIDX +systemctl reload apache2 + echo "Redmine installation is complete." \ No newline at end of file From 8e21f56e1a8c366c094316ff9571ace9139da0be Mon Sep 17 00:00:00 2001 From: Gil Shwartz <58849439+GShwartz@users.noreply.github.com> Date: Tue, 7 May 2024 20:40:10 +0300 Subject: [PATCH 091/124] Add files via upload --- apps/redmine-5.1.1-offisrc-apache-rails-mysql-8.0 | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/apps/redmine-5.1.1-offisrc-apache-rails-mysql-8.0 b/apps/redmine-5.1.1-offisrc-apache-rails-mysql-8.0 index c8074045..729fea8c 100644 --- a/apps/redmine-5.1.1-offisrc-apache-rails-mysql-8.0 +++ b/apps/redmine-5.1.1-offisrc-apache-rails-mysql-8.0 @@ -104,9 +104,9 @@ apt install -y imagemagick libmagickwand-dev convert -version apt install -y ghostscript -changePassScript="${REPO_DIR}/change_admin_password.sh" +changePassScript="${REPO_DIR}/change_admin_password.rb" touch $changePassScript -cat <<_EOF_ > $changePassScript +cat <<'_EOF_' > $changePassScript # Find the admin user admin_user = User.where(admin: true).first @@ -120,19 +120,19 @@ else # Save changes and check for success if admin_user.save - puts "Password updated successfully." + puts "Password updated successfully." else - puts "Failed to update password: #{admin_user.errors.full_messages.join(", ")}" - exit 1 + puts "Failed to update password: #{admin_user.errors.full_messages.join(", ")}" + exit 1 end end _EOF_ -chmod +x $changePassScript # Replace default admin password echo "Replacing default admin password..." RAILS_ENV=production NEW_ADMIN_PASSWORD='12341234' rails runner $changePassScript + echo "Writing apache configuration file..." cat <<_EOF_ > /etc/apache2/sites-available/redmine.conf From 73d40e5d0e5d3ab5ecd61696f0440bf409f9f50d Mon Sep 17 00:00:00 2001 From: Gil Shwartz <58849439+GShwartz@users.noreply.github.com> Date: Tue, 7 May 2024 20:40:31 +0300 Subject: [PATCH 092/124] Add files via upload --- services/mysqlserver-8.0-osrepo-withFiglet | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/services/mysqlserver-8.0-osrepo-withFiglet b/services/mysqlserver-8.0-osrepo-withFiglet index c57350d5..f1e781e0 100644 --- a/services/mysqlserver-8.0-osrepo-withFiglet +++ b/services/mysqlserver-8.0-osrepo-withFiglet @@ -15,7 +15,7 @@ echo "Updating 'Installing MySQL server 8.0...' notice to $appPath/index.html" | echo "Installation Progress
" > "$appPath/index.html"
 $figletApp "Install in Progress" >> "$appPath/index.html"
 echo "Please Wait. Application and services installation is in progress, the process will take a couple of minutes to complete. Thank you for your patience." >> "$appPath/index.html"
-echo "Installing dependencies....................[DONE]" >> "$appPath/index.html"
+echo "Install dependencies.......................[DONE]" >> "$appPath/index.html"
 echo "Please Wait. Installing MySQL server 8.0..." >> "$appPath/index.html"
 echo "" >> "$appPath/index.html"
 echo "
" >> "$appPath/index.html" From a7e7332d2253600048cfb585ef85635e62557685 Mon Sep 17 00:00:00 2001 From: Gil Shwartz <58849439+GShwartz@users.noreply.github.com> Date: Tue, 7 May 2024 20:41:26 +0300 Subject: [PATCH 093/124] Add files via upload --- services/ruby-latest-offirepo-ruby-dev | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/services/ruby-latest-offirepo-ruby-dev b/services/ruby-latest-offirepo-ruby-dev index 65fc8a54..78a2f66d 100644 --- a/services/ruby-latest-offirepo-ruby-dev +++ b/services/ruby-latest-offirepo-ruby-dev @@ -13,7 +13,7 @@ echo "Updating 'Installing Ruby...' notice to $appPath/index.html" | log echo "Installation Progress
" > "$appPath/index.html"
 $figletApp "Install in Progress" >> "$appPath/index.html"
 echo "Please Wait. Application and services installation is in progress, the process will take a couple of minutes to complete. Thank you for your patience." >> "$appPath/index.html"
-echo "Installing dependencies....................[DONE]" >> "$appPath/index.html"
+echo "Install dependencies.......................[DONE]" >> "$appPath/index.html"
 echo "Install MySQL server 8.0...................[DONE]" >> "$appPath/index.html"
 echo "Please Wait. Installing Ruby 3.2.3..." >> "$appPath/index.html"
 echo "" >> "$appPath/index.html"

From 87d2f6189bc9a6a84dcc5336d558b1befaae4844 Mon Sep 17 00:00:00 2001
From: Gil Shwartz <58849439+GShwartz@users.noreply.github.com>
Date: Tue, 7 May 2024 20:41:54 +0300
Subject: [PATCH 094/124] Add files via upload

---
 apps/redmine-5.1.1-offisrc-apache-rails-mysql-8.0 | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/apps/redmine-5.1.1-offisrc-apache-rails-mysql-8.0 b/apps/redmine-5.1.1-offisrc-apache-rails-mysql-8.0
index 729fea8c..5d658f3c 100644
--- a/apps/redmine-5.1.1-offisrc-apache-rails-mysql-8.0
+++ b/apps/redmine-5.1.1-offisrc-apache-rails-mysql-8.0
@@ -39,7 +39,7 @@ echo "Updating 'Installing Redmine...' notice to $appPath/index.html" | log
 echo "Installation Progress
" > "$appPath/index.html"
 $figletApp "Install in Progress" >> "$appPath/index.html"
 echo "Please Wait. Application and services installation is in progress, the process will take a couple of minutes to complete. Thank you for your patience." >> "$appPath/index.html"
-echo "Installing dependencies....................[DONE]" >> "$appPath/index.html"
+echo "Install dependencies.......................[DONE]" >> "$appPath/index.html"
 echo "Install MySQL server 8.0...................[DONE]" >> "$appPath/index.html"
 echo "Install Ruby 3.2.3.........................[DONE]" >> "$appPath/index.html"
 echo "Please Wait. Installing Redmine 5.1.1..." >> "$appPath/index.html"

From ade2e39e8c195d8d4c358cf93f0d23cbb644a293 Mon Sep 17 00:00:00 2001
From: Gil Shwartz <58849439+GShwartz@users.noreply.github.com>
Date: Tue, 7 May 2024 21:20:52 +0300
Subject: [PATCH 095/124] Add files via upload

---
 ...dmine-5.1.1-offisrc-apache-rails-mysql-8.0 | 38 ++++---------------
 1 file changed, 8 insertions(+), 30 deletions(-)

diff --git a/apps/redmine-5.1.1-offisrc-apache-rails-mysql-8.0 b/apps/redmine-5.1.1-offisrc-apache-rails-mysql-8.0
index 5d658f3c..dc796427 100644
--- a/apps/redmine-5.1.1-offisrc-apache-rails-mysql-8.0
+++ b/apps/redmine-5.1.1-offisrc-apache-rails-mysql-8.0
@@ -8,30 +8,6 @@ elif [ -f "../include/startup.sh" ]; then
 
 fi
 
-setAdminPassword() {
-	# Find the admin user
-	admin_user = User.where(admin: true).first
-
-	if admin_user.nil?
-	  puts "Admin user not found!"
-	  exit 1
-	else
-	  # Set new password
-	  admin_user.password = ENV['NEW_ADMIN_PASSWORD']
-	  admin_user.password_confirmation = ENV['NEW_ADMIN_PASSWORD']
-
-	  # Save changes and check for success
-	  if admin_user.save
-		puts "Password updated successfully."
-	  else
-		puts "Failed to update password: #{admin_user.errors.full_messages.join(", ")}"
-		exit 1
-	  end
-	end
-
-}
-
-
 appPath="/etc/apache2/sites-available"
 figletApp=$(which figlet)
 
@@ -104,23 +80,25 @@ apt install -y imagemagick libmagickwand-dev
 convert -version
 apt install -y ghostscript
 
-changePassScript="${REPO_DIR}/change_admin_password.rb"
+changePassScript="$REPO_DIR/change_admin_password.rb"
 touch $changePassScript
-cat <<'_EOF_' > $changePassScript
-# Find the admin user
+cat <<_EOF_ > $changePassScript
+#!/usr/bin/env ruby
+
+require_relative 'config/environment'
 admin_user = User.where(admin: true).first
 
 if admin_user.nil?
   puts "Admin user not found!"
   exit 1
+
 else
-  # Set new password
   admin_user.password = ENV['NEW_ADMIN_PASSWORD']
   admin_user.password_confirmation = ENV['NEW_ADMIN_PASSWORD']
 
-  # Save changes and check for success
   if admin_user.save
     puts "Password updated successfully."
+	
   else
     puts "Failed to update password: #{admin_user.errors.full_messages.join(", ")}"
     exit 1
@@ -128,11 +106,11 @@ else
 end
 _EOF_
 
+cat $changePassScript
 # Replace default admin password
 echo "Replacing default admin password..."
 RAILS_ENV=production NEW_ADMIN_PASSWORD='12341234' rails runner $changePassScript
 
-
 echo "Writing apache configuration file..."
 cat <<_EOF_ > /etc/apache2/sites-available/redmine.conf
 

From 22f766b37c8aa75a769da997632fe6dc7872caf5 Mon Sep 17 00:00:00 2001
From: Gil Shwartz <58849439+GShwartz@users.noreply.github.com>
Date: Tue, 7 May 2024 21:28:58 +0300
Subject: [PATCH 096/124] Add files via upload

---
 apps/redmine-5.1.1-offisrc-apache-rails-mysql-8.0 | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/apps/redmine-5.1.1-offisrc-apache-rails-mysql-8.0 b/apps/redmine-5.1.1-offisrc-apache-rails-mysql-8.0
index dc796427..a7a99500 100644
--- a/apps/redmine-5.1.1-offisrc-apache-rails-mysql-8.0
+++ b/apps/redmine-5.1.1-offisrc-apache-rails-mysql-8.0
@@ -95,6 +95,8 @@ if admin_user.nil?
 else
   admin_user.password = ENV['NEW_ADMIN_PASSWORD']
   admin_user.password_confirmation = ENV['NEW_ADMIN_PASSWORD']
+  admin_user.must_change_password = false
+  admin_user.password_changed_at = Time.current
 
   if admin_user.save
     puts "Password updated successfully."
@@ -106,7 +108,6 @@ else
 end
 _EOF_
 
-cat $changePassScript
 # Replace default admin password
 echo "Replacing default admin password..."
 RAILS_ENV=production NEW_ADMIN_PASSWORD='12341234' rails runner $changePassScript

From 9a9af023bc4931ece04c34f0bdd6e0b7adc9c308 Mon Sep 17 00:00:00 2001
From: Gil Shwartz <58849439+GShwartz@users.noreply.github.com>
Date: Tue, 7 May 2024 21:37:31 +0300
Subject: [PATCH 097/124] Add files via upload

---
 apps/redmine-5.1.1-offisrc-apache-rails-mysql-8.0 | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/apps/redmine-5.1.1-offisrc-apache-rails-mysql-8.0 b/apps/redmine-5.1.1-offisrc-apache-rails-mysql-8.0
index a7a99500..5db1ba6d 100644
--- a/apps/redmine-5.1.1-offisrc-apache-rails-mysql-8.0
+++ b/apps/redmine-5.1.1-offisrc-apache-rails-mysql-8.0
@@ -95,8 +95,7 @@ if admin_user.nil?
 else
   admin_user.password = ENV['NEW_ADMIN_PASSWORD']
   admin_user.password_confirmation = ENV['NEW_ADMIN_PASSWORD']
-  admin_user.must_change_password = false
-  admin_user.password_changed_at = Time.current
+  admin_user.must_change_passwd = false
 
   if admin_user.save
     puts "Password updated successfully."

From d3403f76c95442ac31f8c458bf1457e4f6e3cca2 Mon Sep 17 00:00:00 2001
From: Gil Shwartz <58849439+GShwartz@users.noreply.github.com>
Date: Tue, 7 May 2024 21:55:57 +0300
Subject: [PATCH 098/124] Add files via upload

---
 services/apache-latest-offirepo | 112 ++++++++++++++++----------------
 1 file changed, 56 insertions(+), 56 deletions(-)

diff --git a/services/apache-latest-offirepo b/services/apache-latest-offirepo
index bcc0a709..62458f7c 100644
--- a/services/apache-latest-offirepo
+++ b/services/apache-latest-offirepo
@@ -1,57 +1,57 @@
-#!/bin/bash
-
-# Add this at the begining of all scripts.
-if [ -f "include/startup.sh" ]; then
-    . include/startup.sh
-elif [ -f "../include/startup.sh" ]; then
-    . ../include/startup.sh
-fi
-
-echo "Installing Apache2..."
-installPackage apache2
-
-echo "Installing passenger module for apache2..."
-installPackage libapache2-mod-passenger
-
-idxHTMLPath="/etc/apache2/sites-available"
-if [ ! -d "$idxHTMLPath" ]; then
-	mkdir -p $idxHTMLPath
-
-fi
-
-echo "Writing apache configuration file..."
-cat <<_EOF_ > /etc/apache2/sites-available/figletIDX.conf
-
-	ServerName _
-	DocumentRoot /etc/apache2/sites-available/
-
-	ErrorLog ${APACHE_LOG_DIR}/error.log
-	CustomLog ${APACHE_LOG_DIR}/access.log combined
-
-
-
-    ServerName _
-    DocumentRoot /etc/apache2/sites-available/
-
-    SSLEngine on
-    SSLCertificateFile /etc/ssl/certs/apache-selfsigned.crt
-    SSLCertificateKeyFile /etc/ssl/private/apache-selfsigned.key
-
-    
-        Allow from all
-        Options -MultiViews
-        Require all granted
-    
-
-_EOF_
-
-a2enmod ssl
-a2ensite figletIDX
-a2dissite 000-default
-systemctl start apache2
-
-tag apache.success
-tag httpd.success
-tagScript success
-
+#!/bin/bash
+
+# Add this at the begining of all scripts.
+if [ -f "include/startup.sh" ]; then
+    . include/startup.sh
+elif [ -f "../include/startup.sh" ]; then
+    . ../include/startup.sh
+fi
+
+echo "Installing Apache2..."
+installPackage apache2
+
+echo "Installing passenger module for apache2..."
+installPackage libapache2-mod-passenger
+
+idxHTMLPath="/etc/apache2/sites-available"
+if [ ! -d "$idxHTMLPath" ]; then
+	mkdir -p $idxHTMLPath
+
+fi
+
+echo "Writing apache configuration file..."
+cat <<_EOF_ > $idxHTMLPath/figletIDX.conf
+
+	ServerName _
+	DocumentRoot $idxHTMLPath
+
+	ErrorLog ${APACHE_LOG_DIR}/error.log
+	CustomLog ${APACHE_LOG_DIR}/access.log combined
+
+
+
+    ServerName _
+    DocumentRoot $idxHTMLPath
+
+    SSLEngine on
+    SSLCertificateFile /etc/ssl/certs/apache-selfsigned.crt
+    SSLCertificateKeyFile /etc/ssl/private/apache-selfsigned.key
+
+    
+        Allow from all
+        Options -MultiViews
+        Require all granted
+    
+
+_EOF_
+
+a2enmod ssl
+a2ensite figletIDX
+a2dissite 000-default
+systemctl start apache2
+
+tag apache.success
+tag httpd.success
+tagScript success
+
 exit 0
\ No newline at end of file

From db27cf59571f4a304283048bf9591dcac68c3af1 Mon Sep 17 00:00:00 2001
From: Gil Shwartz <58849439+GShwartz@users.noreply.github.com>
Date: Tue, 7 May 2024 21:56:12 +0300
Subject: [PATCH 099/124] Add files via upload

---
 apps/redmine-5.1.1-offisrc-apache-rails-mysql-8.0 | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/apps/redmine-5.1.1-offisrc-apache-rails-mysql-8.0 b/apps/redmine-5.1.1-offisrc-apache-rails-mysql-8.0
index 5db1ba6d..1926cd52 100644
--- a/apps/redmine-5.1.1-offisrc-apache-rails-mysql-8.0
+++ b/apps/redmine-5.1.1-offisrc-apache-rails-mysql-8.0
@@ -81,6 +81,7 @@ convert -version
 apt install -y ghostscript
 
 changePassScript="$REPO_DIR/change_admin_password.rb"
+echo "Writing password change script to $changePassScript..."
 touch $changePassScript
 cat <<_EOF_ > $changePassScript
 #!/usr/bin/env ruby
@@ -110,6 +111,10 @@ _EOF_
 # Replace default admin password
 echo "Replacing default admin password..."
 RAILS_ENV=production NEW_ADMIN_PASSWORD='12341234' rails runner $changePassScript
+#RAILS_ENV=production NEW_ADMIN_PASSWORD='${ADMINPASSWORD}' rails runner $changePassScript
+
+echo "Removing $changePassScript..."
+rm -f $changePassScript
 
 echo "Writing apache configuration file..."
 cat <<_EOF_ > /etc/apache2/sites-available/redmine.conf

From f37d4dd50bbbc31d0d90e5bada49c0a0a8220575 Mon Sep 17 00:00:00 2001
From: Gil Shwartz <58849439+GShwartz@users.noreply.github.com>
Date: Tue, 7 May 2024 21:56:40 +0300
Subject: [PATCH 100/124] Add files via upload

---
 include/installInProgressHttpd-apache | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/include/installInProgressHttpd-apache b/include/installInProgressHttpd-apache
index a17e584c..05bed428 100644
--- a/include/installInProgressHttpd-apache
+++ b/include/installInProgressHttpd-apache
@@ -43,8 +43,8 @@ echo "Installing dependencies..." >> "$appPath/index.html"
 echo "" >> "$appPath/index.html"
 echo "
" >> "$appPath/index.html" -echo "Reloading Apache2..." -systemctl reload apache2 +#echo "Reloading Apache2..." +#systemctl reload apache2 tagScript success exit 0 From 570ca394fd6bf3adf6956e0c47f0cd614f87900f Mon Sep 17 00:00:00 2001 From: Gil Shwartz <58849439+GShwartz@users.noreply.github.com> Date: Tue, 7 May 2024 21:57:35 +0300 Subject: [PATCH 101/124] Add files via upload --- ...ler-contrib-redmine-5.1.1-offisrc-rails-mysqlserver-8.0.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/installer-contrib-redmine-5.1.1-offisrc-rails-mysqlserver-8.0.conf b/installer-contrib-redmine-5.1.1-offisrc-rails-mysqlserver-8.0.conf index 25c080d0..b2d61da8 100644 --- a/installer-contrib-redmine-5.1.1-offisrc-rails-mysqlserver-8.0.conf +++ b/installer-contrib-redmine-5.1.1-offisrc-rails-mysqlserver-8.0.conf @@ -12,9 +12,9 @@ execute+=(tweaks/ubuntu-ufw-allowmysql) execute+=(tweaks/ubuntu-ufw-allowhttp) execute+=(tweaks/ubuntu-updateos) +execute+=(include/installInProgressHttpd-apache) execute+=(services/apache-latest-offirepo) execute+=(tweaks/apache-enable-ssl) -execute+=(include/installInProgressHttpd-apache) . installer-contrib-tweaks-optimize.conf From 00c685e1617218a0d3277bc41e2e2c7d36c28a66 Mon Sep 17 00:00:00 2001 From: Gil Shwartz <58849439+GShwartz@users.noreply.github.com> Date: Tue, 7 May 2024 21:59:12 +0300 Subject: [PATCH 102/124] Add files via upload --- services/apache-latest-offirepo | 112 ++++++++++++++++---------------- 1 file changed, 56 insertions(+), 56 deletions(-) diff --git a/services/apache-latest-offirepo b/services/apache-latest-offirepo index 62458f7c..dc47053a 100644 --- a/services/apache-latest-offirepo +++ b/services/apache-latest-offirepo @@ -1,57 +1,57 @@ -#!/bin/bash - -# Add this at the begining of all scripts. -if [ -f "include/startup.sh" ]; then - . include/startup.sh -elif [ -f "../include/startup.sh" ]; then - . ../include/startup.sh -fi - -echo "Installing Apache2..." -installPackage apache2 - -echo "Installing passenger module for apache2..." -installPackage libapache2-mod-passenger - -idxHTMLPath="/etc/apache2/sites-available" -if [ ! -d "$idxHTMLPath" ]; then - mkdir -p $idxHTMLPath - -fi - -echo "Writing apache configuration file..." -cat <<_EOF_ > $idxHTMLPath/figletIDX.conf - - ServerName _ - DocumentRoot $idxHTMLPath - - ErrorLog ${APACHE_LOG_DIR}/error.log - CustomLog ${APACHE_LOG_DIR}/access.log combined - - - - ServerName _ - DocumentRoot $idxHTMLPath - - SSLEngine on - SSLCertificateFile /etc/ssl/certs/apache-selfsigned.crt - SSLCertificateKeyFile /etc/ssl/private/apache-selfsigned.key - - - Allow from all - Options -MultiViews - Require all granted - - -_EOF_ - -a2enmod ssl -a2ensite figletIDX -a2dissite 000-default -systemctl start apache2 - -tag apache.success -tag httpd.success -tagScript success - +#!/bin/bash + +# Add this at the begining of all scripts. +if [ -f "include/startup.sh" ]; then + . include/startup.sh +elif [ -f "../include/startup.sh" ]; then + . ../include/startup.sh +fi + +echo "Installing Apache2..." +installPackage apache2 + +echo "Installing passenger module for apache2..." +installPackage libapache2-mod-passenger + +idxHTMLPath="/etc/apache2/sites-available" +if [ ! -d "$idxHTMLPath" ]; then + mkdir -p $idxHTMLPath + +fi + +echo "Writing apache configuration file..." +cat <<_EOF_ > $idxHTMLPath/figletIDX.conf + + ServerName _ + DocumentRoot $idxHTMLPath + + ErrorLog ${APACHE_LOG_DIR}/error.log + CustomLog ${APACHE_LOG_DIR}/access.log combined + + + + ServerName _ + DocumentRoot $idxHTMLPath + + SSLEngine on + SSLCertificateFile /etc/ssl/certs/apache-selfsigned.crt + SSLCertificateKeyFile /etc/ssl/private/apache-selfsigned.key + + + Allow from all + Options -MultiViews + Require all granted + + +_EOF_ + +a2enmod ssl +a2ensite figletIDX +a2dissite 000-default +systemctl start apache2 + +tag apache.success +tag httpd.success +tagScript success + exit 0 \ No newline at end of file From b5da91d04b845e3ae8c11128f4408a6cde28b7a1 Mon Sep 17 00:00:00 2001 From: Gil Shwartz <58849439+GShwartz@users.noreply.github.com> Date: Tue, 7 May 2024 22:12:16 +0300 Subject: [PATCH 103/124] Add files via upload --- include/installInProgressHttpd-apache | 3 --- 1 file changed, 3 deletions(-) diff --git a/include/installInProgressHttpd-apache b/include/installInProgressHttpd-apache index 05bed428..5e617929 100644 --- a/include/installInProgressHttpd-apache +++ b/include/installInProgressHttpd-apache @@ -43,8 +43,5 @@ echo "Installing dependencies..." >> "$appPath/index.html" echo "" >> "$appPath/index.html" echo "
" >> "$appPath/index.html" -#echo "Reloading Apache2..." -#systemctl reload apache2 - tagScript success exit 0 From 9a056a6b9107f152479dea0cbbb464f45c274d8f Mon Sep 17 00:00:00 2001 From: Gil Shwartz <58849439+GShwartz@users.noreply.github.com> Date: Tue, 7 May 2024 22:19:19 +0300 Subject: [PATCH 104/124] Add files via upload --- apps/redmine-5.1.1-offisrc-apache-rails-mysql-8.0 | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/apps/redmine-5.1.1-offisrc-apache-rails-mysql-8.0 b/apps/redmine-5.1.1-offisrc-apache-rails-mysql-8.0 index 1926cd52..89b5ea46 100644 --- a/apps/redmine-5.1.1-offisrc-apache-rails-mysql-8.0 +++ b/apps/redmine-5.1.1-offisrc-apache-rails-mysql-8.0 @@ -29,6 +29,7 @@ systemctl reload apache2 DB_REDMINE_PASS="redmine" REPO_URL="https://www.redmine.org/releases/redmine-5.1.1.tar.gz" REPO_DIR="/opt/redmine" +WEB_DIR="/etc/apache2/sites-available" # Update system and install required packages apt-get update && apt-get upgrade -y @@ -117,9 +118,9 @@ echo "Removing $changePassScript..." rm -f $changePassScript echo "Writing apache configuration file..." -cat <<_EOF_ > /etc/apache2/sites-available/redmine.conf +cat <<_EOF_ > $WEB_DIR/redmine.conf - ServerName redmine.omc + ServerName _ DocumentRoot ${REPO_DIR}/public Allow from all @@ -130,7 +131,7 @@ cat <<_EOF_ > /etc/apache2/sites-available/redmine.conf - ServerName redmine.omc + ServerName _ DocumentRoot ${REPO_DIR}/public SSLEngine on From 3fd07baa3dec4f6437d7c58e5fd541142ab5710f Mon Sep 17 00:00:00 2001 From: Gil Shwartz <58849439+GShwartz@users.noreply.github.com> Date: Tue, 7 May 2024 22:19:58 +0300 Subject: [PATCH 105/124] Add files via upload From 94e06a7909aa2959338447b932732cbfae2ce21b Mon Sep 17 00:00:00 2001 From: Gil Shwartz <58849439+GShwartz@users.noreply.github.com> Date: Tue, 7 May 2024 22:20:21 +0300 Subject: [PATCH 106/124] Add files via upload --- services/apache-latest-offirepo | 110 ++++++++++++++++---------------- 1 file changed, 55 insertions(+), 55 deletions(-) diff --git a/services/apache-latest-offirepo b/services/apache-latest-offirepo index dc47053a..9d832226 100644 --- a/services/apache-latest-offirepo +++ b/services/apache-latest-offirepo @@ -1,57 +1,57 @@ -#!/bin/bash - -# Add this at the begining of all scripts. -if [ -f "include/startup.sh" ]; then - . include/startup.sh -elif [ -f "../include/startup.sh" ]; then - . ../include/startup.sh -fi - -echo "Installing Apache2..." -installPackage apache2 - -echo "Installing passenger module for apache2..." -installPackage libapache2-mod-passenger - -idxHTMLPath="/etc/apache2/sites-available" -if [ ! -d "$idxHTMLPath" ]; then - mkdir -p $idxHTMLPath - -fi - -echo "Writing apache configuration file..." -cat <<_EOF_ > $idxHTMLPath/figletIDX.conf - - ServerName _ - DocumentRoot $idxHTMLPath - - ErrorLog ${APACHE_LOG_DIR}/error.log - CustomLog ${APACHE_LOG_DIR}/access.log combined - - - - ServerName _ - DocumentRoot $idxHTMLPath - - SSLEngine on - SSLCertificateFile /etc/ssl/certs/apache-selfsigned.crt - SSLCertificateKeyFile /etc/ssl/private/apache-selfsigned.key - - - Allow from all - Options -MultiViews - Require all granted - - -_EOF_ - -a2enmod ssl -a2ensite figletIDX -a2dissite 000-default -systemctl start apache2 - -tag apache.success +#!/bin/bash + +# Add this at the begining of all scripts. +if [ -f "include/startup.sh" ]; then + . include/startup.sh +elif [ -f "../include/startup.sh" ]; then + . ../include/startup.sh +fi + +echo "Installing Apache2..." +installPackage apache2 + +echo "Installing passenger module for apache2..." +installPackage libapache2-mod-passenger + +idxHTMLPath="/etc/apache2/sites-available" +if [ ! -d "$idxHTMLPath" ]; then + mkdir -p $idxHTMLPath + +fi + +echo "Writing apache configuration file..." +cat <<_EOF_ > $idxHTMLPath/figletIDX.conf + + ServerName _ + DocumentRoot $idxHTMLPath + + ErrorLog ${APACHE_LOG_DIR}/error.log + CustomLog ${APACHE_LOG_DIR}/access.log combined + + + + ServerName _ + DocumentRoot $idxHTMLPath + + SSLEngine on + SSLCertificateFile /etc/ssl/certs/apache-selfsigned.crt + SSLCertificateKeyFile /etc/ssl/private/apache-selfsigned.key + + + Allow from all + Options -MultiViews + Require all granted + + +_EOF_ + +a2enmod ssl +a2ensite figletIDX +a2dissite 000-default +systemctl start apache2 + tag httpd.success -tagScript success - +tag apache.success +tagScript success + exit 0 \ No newline at end of file From 5b4f695183f03c4be207596f745766059ce61e5f Mon Sep 17 00:00:00 2001 From: Gil Shwartz <58849439+GShwartz@users.noreply.github.com> Date: Tue, 7 May 2024 22:23:18 +0300 Subject: [PATCH 107/124] Add files via upload --- services/apache-latest-offirepo | 110 ++++++++++++++++---------------- 1 file changed, 55 insertions(+), 55 deletions(-) diff --git a/services/apache-latest-offirepo b/services/apache-latest-offirepo index 9d832226..7d1abdf6 100644 --- a/services/apache-latest-offirepo +++ b/services/apache-latest-offirepo @@ -1,57 +1,57 @@ -#!/bin/bash - -# Add this at the begining of all scripts. -if [ -f "include/startup.sh" ]; then - . include/startup.sh -elif [ -f "../include/startup.sh" ]; then - . ../include/startup.sh -fi - -echo "Installing Apache2..." -installPackage apache2 - -echo "Installing passenger module for apache2..." -installPackage libapache2-mod-passenger - -idxHTMLPath="/etc/apache2/sites-available" -if [ ! -d "$idxHTMLPath" ]; then - mkdir -p $idxHTMLPath - -fi - -echo "Writing apache configuration file..." -cat <<_EOF_ > $idxHTMLPath/figletIDX.conf - - ServerName _ - DocumentRoot $idxHTMLPath - - ErrorLog ${APACHE_LOG_DIR}/error.log - CustomLog ${APACHE_LOG_DIR}/access.log combined - - - - ServerName _ - DocumentRoot $idxHTMLPath - - SSLEngine on - SSLCertificateFile /etc/ssl/certs/apache-selfsigned.crt - SSLCertificateKeyFile /etc/ssl/private/apache-selfsigned.key - - - Allow from all - Options -MultiViews - Require all granted - - -_EOF_ - -a2enmod ssl -a2ensite figletIDX -a2dissite 000-default -systemctl start apache2 - +#!/bin/bash + +# Add this at the begining of all scripts. +if [ -f "include/startup.sh" ]; then + . include/startup.sh +elif [ -f "../include/startup.sh" ]; then + . ../include/startup.sh +fi + +echo "Installing Apache2..." +installPackage apache2 + +echo "Installing passenger module for apache2..." +installPackage libapache2-mod-passenger + +idxHTMLPath="/etc/apache2/sites-available" +if [ ! -d "$idxHTMLPath" ]; then + mkdir -p $idxHTMLPath + +fi + +echo "Writing apache configuration file..." +cat <<_EOF_ > $idxHTMLPath/figletIDX.conf + + ServerName _ + DocumentRoot $idxHTMLPath + + ErrorLog ${APACHE_LOG_DIR}/error.log + CustomLog ${APACHE_LOG_DIR}/access.log combined + + + + ServerName _ + DocumentRoot $idxHTMLPath + + SSLEngine on + SSLCertificateFile /etc/ssl/certs/apache-selfsigned.crt + SSLCertificateKeyFile /etc/ssl/private/apache-selfsigned.key + + + Allow from all + Options -MultiViews + Require all granted + + +_EOF_ + +a2enmod ssl +a2ensite figletIDX +a2dissite 000-default +systemctl start apache2 + tag httpd.success -tag apache.success -tagScript success - +tag apache.success +tagScript success + exit 0 \ No newline at end of file From b211c4e9ba183d21aa317e5c6f6f216cd9d49190 Mon Sep 17 00:00:00 2001 From: Gil Shwartz <58849439+GShwartz@users.noreply.github.com> Date: Wed, 8 May 2024 08:06:37 +0300 Subject: [PATCH 108/124] Add files via upload --- ...dmine-5.1.1-offisrc-apache-rails-mysql-8.0 | 101 +++++++++--------- 1 file changed, 51 insertions(+), 50 deletions(-) diff --git a/apps/redmine-5.1.1-offisrc-apache-rails-mysql-8.0 b/apps/redmine-5.1.1-offisrc-apache-rails-mysql-8.0 index 89b5ea46..ef4aa605 100644 --- a/apps/redmine-5.1.1-offisrc-apache-rails-mysql-8.0 +++ b/apps/redmine-5.1.1-offisrc-apache-rails-mysql-8.0 @@ -8,28 +8,64 @@ elif [ -f "../include/startup.sh" ]; then fi -appPath="/etc/apache2/sites-available" -figletApp=$(which figlet) +replaceAdPass() { + changePassScript="$REPO_DIR/change_admin_password.rb" + echo "Writing password change script to $changePassScript..." + touch $changePassScript + cat <<_EOF_ > $changePassScript +#!/usr/bin/env ruby -echo "Updating 'Installing Redmine...' notice to $appPath/index.html" | log -echo "Installation Progress
" > "$appPath/index.html"
-$figletApp "Install in Progress" >> "$appPath/index.html"
-echo "Please Wait. Application and services installation is in progress, the process will take a couple of minutes to complete. Thank you for your patience." >> "$appPath/index.html"
-echo "Install dependencies.......................[DONE]" >> "$appPath/index.html"
-echo "Install MySQL server 8.0...................[DONE]" >> "$appPath/index.html"
-echo "Install Ruby 3.2.3.........................[DONE]" >> "$appPath/index.html"
-echo "Please Wait. Installing Redmine 5.1.1..." >> "$appPath/index.html"
-echo "" >> "$appPath/index.html"
-echo "
" >> "$appPath/index.html" +require_relative 'config/environment' +admin_user = User.where(admin: true).first -echo "Reloading Apache2..." -systemctl reload apache2 +if admin_user.nil? + puts "Admin user not found!" + exit 1 + +else + admin_user.password = ENV['NEW_ADMIN_PASSWORD'] + admin_user.password_confirmation = ENV['NEW_ADMIN_PASSWORD'] + admin_user.must_change_passwd = false + + if admin_user.save + puts "Password updated successfully." + + else + puts "Failed to update password: #{admin_user.errors.full_messages.join(", ")}" + exit 1 + end +end +_EOF_ + + # Replace default admin password + echo "Replacing default admin password..." + RAILS_ENV=production NEW_ADMIN_PASSWORD='${ADMINPASSWORD}' rails runner $changePassScript + + echo "Removing $changePassScript..." + rm -f $changePassScript + +} # Variables DB_REDMINE_PASS="redmine" REPO_URL="https://www.redmine.org/releases/redmine-5.1.1.tar.gz" REPO_DIR="/opt/redmine" WEB_DIR="/etc/apache2/sites-available" +figletApp=$(which figlet) + +echo "Updating 'Installing Redmine...' notice to $WEB_DIR/index.html" | log +echo "Installation Progress
" > "$WEB_DIR/index.html"
+$figletApp "Install in Progress" >> "$WEB_DIR/index.html"
+echo "Please Wait. Application and services installation is in progress, the process will take a couple of minutes to complete. Thank you for your patience." >> "$WEB_DIR/index.html"
+echo "Install dependencies.......................[DONE]" >> "$WEB_DIR/index.html"
+echo "Install MySQL server 8.0...................[DONE]" >> "$WEB_DIR/index.html"
+echo "Install Ruby 3.2.3.........................[DONE]" >> "$WEB_DIR/index.html"
+echo "Please Wait. Installing Redmine 5.1.1..." >> "$WEB_DIR/index.html"
+echo "" >> "$WEB_DIR/index.html"
+echo "
" >> "$WEB_DIR/index.html" + +echo "Reloading Apache2..." +systemctl reload apache2 # Update system and install required packages apt-get update && apt-get upgrade -y @@ -81,42 +117,7 @@ apt install -y imagemagick libmagickwand-dev convert -version apt install -y ghostscript -changePassScript="$REPO_DIR/change_admin_password.rb" -echo "Writing password change script to $changePassScript..." -touch $changePassScript -cat <<_EOF_ > $changePassScript -#!/usr/bin/env ruby - -require_relative 'config/environment' -admin_user = User.where(admin: true).first - -if admin_user.nil? - puts "Admin user not found!" - exit 1 - -else - admin_user.password = ENV['NEW_ADMIN_PASSWORD'] - admin_user.password_confirmation = ENV['NEW_ADMIN_PASSWORD'] - admin_user.must_change_passwd = false - - if admin_user.save - puts "Password updated successfully." - - else - puts "Failed to update password: #{admin_user.errors.full_messages.join(", ")}" - exit 1 - end -end -_EOF_ - -# Replace default admin password -echo "Replacing default admin password..." -RAILS_ENV=production NEW_ADMIN_PASSWORD='12341234' rails runner $changePassScript -#RAILS_ENV=production NEW_ADMIN_PASSWORD='${ADMINPASSWORD}' rails runner $changePassScript - -echo "Removing $changePassScript..." -rm -f $changePassScript - +#replaceAdPass echo "Writing apache configuration file..." cat <<_EOF_ > $WEB_DIR/redmine.conf From a91df76a9ec79b1faf42d18ce8cd15dc714540d8 Mon Sep 17 00:00:00 2001 From: Gil Shwartz <58849439+GShwartz@users.noreply.github.com> Date: Wed, 8 May 2024 08:31:37 +0300 Subject: [PATCH 109/124] Add files via upload --- apps/redmine-5.1.1-offisrc-apache-rails-mysql-8.0 | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/apps/redmine-5.1.1-offisrc-apache-rails-mysql-8.0 b/apps/redmine-5.1.1-offisrc-apache-rails-mysql-8.0 index ef4aa605..15082871 100644 --- a/apps/redmine-5.1.1-offisrc-apache-rails-mysql-8.0 +++ b/apps/redmine-5.1.1-offisrc-apache-rails-mysql-8.0 @@ -83,8 +83,12 @@ _EOF_ # Install Redmine mkdir -p ${REPO_DIR} curl -s ${REPO_URL} | sudo tar xz -C ${REPO_DIR} --strip-components=1 -cd ${REPO_DIR} +# Configuring permissions +echo "Configuring permissions..." +chown -R www-data:www-data /opt/redmine/ + +cd ${REPO_DIR} # Configure database connection cat <<_EOF_ > ${REPO_DIR}/config/database.yml production: @@ -106,10 +110,6 @@ bundle exec rake generate_secret_token RAILS_ENV=production bundle exec rake db:migrate RAILS_ENV=production REDMINE_LANG=en bundle exec rake redmine:load_default_data -# Configuring permissions -echo "Configuring permissions..." -chown -R www-data:www-data /opt/redmine/ - # Install ImageMagic for Redmine echo "Installing ImageMagic & ghostscript..." apt update From 612b59e166ad3aaf72506c9ee536db75fd017c5c Mon Sep 17 00:00:00 2001 From: gils Date: Wed, 15 May 2024 15:14:59 +0300 Subject: [PATCH 110/124] Fixed RM 4.2 & 5 | Added RM 511 | CloudRon | InstallProgress Landing Page --- apps/cloudron-latest-offirepo | 128 ++++++++++++-- ...dmine-5.1.1-offisrc-apache-rails-mysql-8.0 | 26 +-- include/Logos/CloudRon_logo.png | Bin 0 -> 15445 bytes include/Logos/Redmine_icon.png | Bin 0 -> 25756 bytes include/Logos/Redmine_logo.png | Bin 0 -> 10225 bytes include/OMC_logo.png | Bin 0 -> 2357 bytes include/index.html | 111 ++++++++++++ include/installInProgressHttpd-Redmine | 39 +++++ include/updateInstallStatus.sh | 114 ++++++++++++ ...ller-contrib-cloudron-latest-offirepo.conf | 141 +++++++++++++-- ...e-5.1.1-offisrc-rails-mysqlserver-8.0.conf | 165 ++++++++++++++++-- installer-contrib-tweaks-preinstall.conf | 7 - services/apache-latest-offirepo | 44 +---- services/ruby-latest-offirepo-ruby-dev | 19 +- tweaks/ubuntu-updateos-noupgrade | 23 +++ 15 files changed, 682 insertions(+), 135 deletions(-) create mode 100644 include/Logos/CloudRon_logo.png create mode 100644 include/Logos/Redmine_icon.png create mode 100644 include/Logos/Redmine_logo.png create mode 100644 include/OMC_logo.png create mode 100644 include/index.html create mode 100644 include/installInProgressHttpd-Redmine create mode 100644 include/updateInstallStatus.sh create mode 100644 tweaks/ubuntu-updateos-noupgrade diff --git a/apps/cloudron-latest-offirepo b/apps/cloudron-latest-offirepo index c85c6505..ff16c615 100755 --- a/apps/cloudron-latest-offirepo +++ b/apps/cloudron-latest-offirepo @@ -1,30 +1,130 @@ #!/bin/bash + if [ -f "include/startup.sh" ]; then . include/startup.sh elif [ -f "../include/startup.sh" ]; then . ../include/startup.sh fi -rootDir=$(rootDir) +updateAndFinalize() { + local rootDir="$1" + local CWM_DOMAIN="$2" + + # Target directories and files + local html_target="/home/yellowtent/box/dashboard/dist/setupdns.html" + local js_target_dir="/home/yellowtent/box/dashboard/dist/js" + local js_target="${js_target_dir}/setupdns.js" + + # Check every if the directories and files exist + while [[ ! -d "/home/yellowtent/box/dashboard/dist" || ! -d "$js_target_dir" ]]; do + #echo "Waiting for Cloud-Ron's app directory..." + sleep 3 + done + + # Perform operations once the directories exist + echo "Cloud-Ron Directories found. Performing operations..." | log + + # Ensure target files do not exist before copying new ones + rm -rf "$html_target" + rm -rf "$js_target" + + # Copy new files from source to target locations + cp "${rootDir}/tweaks/extras/cloudron/setupdns.html" "$html_target" + cp "${rootDir}/tweaks/extras/cloudron/setupdns.js" "$js_target" + + # Replace placeholders in HTML and JS files + sed -i "s/CWMDOMAIN/${CWM_DOMAIN}/g" "$html_target" + sed -i "s/CWMDOMAIN/${CWM_DOMAIN}/g" "$js_target" + + echo "Setup DNS files have been updated." | log + + . tweaks/cwm-description-autoconfig + + echo "Adding descriptions" | log + descriptionAppend "CloudRon Web UI: https://${CWM_DOMAIN}" + descriptionAppend "SSL will be configured after the first step." + + . tweaks/motd-description-append + . tweaks/cwm-description-autoconfig + . include/installInProgressSSH-remove + + echo "Cleaning up..." | log + sleep 5 + systemctl stop apache2 + apt-get purge apache2 apache2-utils apache2-bin apache2.2-common + rm -rf /etc/apache2 + apt-get autoremove -y + apt-get autoclean -y + + end_time=$(date +%s) + duration=$((end_time - start_time)) + echo "Installation completed in $duration seconds." | log + + tagScript success + exit 0 +} + +# Define variables +rootDir="$(rootDir)" +updateStatus="$rootDir/include/updateInstallStatus.sh" +LOG_PATH="/var/log/cloudron-setup.log" +WEB_PATH="/var/www/html" +HTML_PATH="/var/www/html/index.html" + +clear echo "Downloading and installing CloudRon" | log curlDownload https://cloudron.io/cloudron-setup chmod +x cloudron-setup -bash cloudron-setup -sleep 5 -rm -rf /home/yellowtent/box/dashboard/dist/setupdns.html -rm -rf /home/yellowtent/box/dashboard/dist/js/setupdns.html -cp $rootDir/tweaks/extras/cloudron/setupdns.html /home/yellowtent/box/dashboard/dist/setupdns.html -cp $rootDir/tweaks/extras/cloudron/setupdns.js /home/yellowtent/box/dashboard/dist/js/setupdns.js -sed -i "s/CWMDOMAIN/${CWM_DOMAIN}/g" /home/yellowtent/box/dashboard/dist/setupdns.html -sed -i "s/CWMDOMAIN/${CWM_DOMAIN}/g" /home/yellowtent/box/dashboard/dist/js/setupdns.js +# Run the Cloudron setup and tee the output to both stdout and the log file +if [ ! -f "$LOG_PATH" ]; then + touch "$LOG_PATH" +fi + +# Wait for App dir and replace files +echo "Starting listener for Cloud-Ron app dirs & DNS update..." | log +updateAndFinalize "$rootDir" "${CWM_DOMAIN}" & + +echo "Running CloudRon setup..." | log +start_time=$(date +%s) +echo Y | bash cloudron-setup | tee "$LOG_PATH" & + +# Define lists to hold log messages +declare -a pre_display_list=() +declare -A seen # associative array to track seen lines + +# Start tailing the log file and process lines as they come +while read line; do + # Locate the line to display + if [[ "$line" == *"==> "* ]]; then + if [[ "$line" == *"Pulling docker images"* ]]; then + line="Pulling docker images (Takes some time)..." + else + line="${line#*==> }" + fi + + # Clean the line from extras + line=$(echo "$line" | sed -e 's/installer://g' -e 's/start://g' -e 's/"$//' -e 's/ \+.*//') -echo "Adding descriptions" | log -descriptionAppend "CloudRon Web UI: https://${CWM_DOMAIN}" -descriptionAppend "SSL will be configured after the first step." + # Check if the line has been seen already + if [[ -z "${seen[$line]}" ]]; then + seen[$line]=1 + pre_display_list+=("$line") -tagScript success + "$updateStatus" "$HTML_PATH" -cp + for stage in "${pre_display_list[@]}"; do + # Remove all trailing dots first + cleaned_stage=$(echo "$stage" | sed 's/\.*$//') + + # Append exactly three dots + final_stage="${cleaned_stage}..." + + # Update the installation landing page + "$updateStatus" "$HTML_PATH" -ap "${final_stage}" + done + fi + fi +done < <(tail -f "$LOG_PATH") -exit 0 diff --git a/apps/redmine-5.1.1-offisrc-apache-rails-mysql-8.0 b/apps/redmine-5.1.1-offisrc-apache-rails-mysql-8.0 index 15082871..6b90f9cb 100644 --- a/apps/redmine-5.1.1-offisrc-apache-rails-mysql-8.0 +++ b/apps/redmine-5.1.1-offisrc-apache-rails-mysql-8.0 @@ -1,11 +1,10 @@ #!/bin/bash +# Add this at the begining of all scripts. if [ -f "include/startup.sh" ]; then . include/startup.sh - elif [ -f "../include/startup.sh" ]; then . ../include/startup.sh - fi replaceAdPass() { @@ -50,22 +49,7 @@ _EOF_ DB_REDMINE_PASS="redmine" REPO_URL="https://www.redmine.org/releases/redmine-5.1.1.tar.gz" REPO_DIR="/opt/redmine" -WEB_DIR="/etc/apache2/sites-available" -figletApp=$(which figlet) - -echo "Updating 'Installing Redmine...' notice to $WEB_DIR/index.html" | log -echo "Installation Progress
" > "$WEB_DIR/index.html"
-$figletApp "Install in Progress" >> "$WEB_DIR/index.html"
-echo "Please Wait. Application and services installation is in progress, the process will take a couple of minutes to complete. Thank you for your patience." >> "$WEB_DIR/index.html"
-echo "Install dependencies.......................[DONE]" >> "$WEB_DIR/index.html"
-echo "Install MySQL server 8.0...................[DONE]" >> "$WEB_DIR/index.html"
-echo "Install Ruby 3.2.3.........................[DONE]" >> "$WEB_DIR/index.html"
-echo "Please Wait. Installing Redmine 5.1.1..." >> "$WEB_DIR/index.html"
-echo "" >> "$WEB_DIR/index.html"
-echo "
" >> "$WEB_DIR/index.html" - -echo "Reloading Apache2..." -systemctl reload apache2 +WEBAPP_CONF="/etc/apache2/sites-available" # Update system and install required packages apt-get update && apt-get upgrade -y @@ -119,7 +103,7 @@ apt install -y ghostscript #replaceAdPass echo "Writing apache configuration file..." -cat <<_EOF_ > $WEB_DIR/redmine.conf +cat <<_EOF_ > $WEBAPP_CONF/redmine.conf ServerName _ DocumentRoot ${REPO_DIR}/public @@ -152,7 +136,7 @@ _EOF_ # Enable Redmine site, disable default site echo "Enabling redmine site & disabling defaults..." a2ensite redmine -a2dissite figletIDX +a2dissite installProgress systemctl reload apache2 -echo "Redmine installation is complete." \ No newline at end of file +echo "Redmine installation is complete." diff --git a/include/Logos/CloudRon_logo.png b/include/Logos/CloudRon_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..097e6d6be9616833397797c3cc62fb94db1f3c48 GIT binary patch literal 15445 zcmcJ$c_7r^7dQS!D6&-I6IrtFOST$ireqoWQuZw*62c&aDMgWO>}20U_MI#h*|$Ms zC+pbDzRz=~@9*#5U(fSLHQjsP_nv$1IrqNqIj{RcTT_{aikS+6AR45~16>Fr1wTol z^AzBpotHyL;GYXGRE*ppi1r8Z4@sNzXB$v>4W(#^(sQ;&c|LZ10(p9RirPClxLH4b z@kG?w^=Z<^9cBpPfRGRFJ$(6Tee&s7?k5Rne^-lE#c#a7Bq0|31$|et z*~;(|VTDszh~nZop8v$Z&wj5H6zuN4WcVZaJ*S{8iJ4`)kkNlO*xSCkp2Mg968N%P zzu#{7xd_nrK7-=<%QQHTQ_d@ zi06nLuSMn;_6V#g@+$J~Yl74!ha!G3s;)$En;FF^Pp`4-0InI)#m{N;?i` zDHgo?+pLhTKvt+kf><2Q{*ko*pvwJORb^6@3obU&!9>BE?_+=*0xmUVKhP4&57#SsBLv(NnXp zh{~;M5SaYdlfpT;w>UPH&C0VI)O$f)fphs1lCE>j&#g(!ebQm;m{W0IR=24y{L7uo zFm411VjOfK5?+?BtM$H7+s?O-d$&PjtS!?{%Wb+XJDI07eVfEA!ycRLnx&-gB0jKe^48uylIP=8GYVQ>-xhvJg^q(}0it={4l@ zHsl!v(&Sw)ndMKvxtwhK>mu7fj@i$%QjFdwX|~uEzUJ$}yh`TkAHYqWOo`~qx>+x* z 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 I_buQ2AHJmKaR2}S literal 0 HcmV?d00001 diff --git a/include/Logos/Redmine_icon.png b/include/Logos/Redmine_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..a674000d3293f783c15b4004707950db75b0fa23 GIT binary patch literal 25756 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%0Ae*xANtu+r$Y)ZU$9cqv=MR%IUhNh$FzsTy zgIiqwlde3P|7n)$rNLdZ2TdKR?Lo`=qQ{*TaoF%Jznr#7@$V|3coQ$Wo6)Z=ATn2mNkBxFSff*}_1Sdm!C@zT0n6HGO6YXl^ab=y|r9myT z1cC^EVjFSokJeP-bC)RO@$N{4fgXVw?+cf)B9@rlrlb~s=r+M<7X0)UPK2doxE*_B zI$j!G_0T3-<-L&J zMW#C}#JP(zf!LV`z_CEZcOe zo=Onl3b1`ALwL(fqq8l@fnFLX>qYXdIV66065DSW9QjP%kVPY9)RkHgERbf%^br#m zRNrj-D(3ksu?q$Dhqa)i%rf}2P_QMeOFP!lVZiq52N;5v4Nn68t#hWIJA>x3XFq>e z7%0J&Xj1Ih$4-hH&8& zhFV^$bZ-(LNzz%csGJO#Q+ag&q!!&!5%ttbxDPum7Z(-9)d!gyAc#S2Rh z{+k6|2h5uOW9ARbY4;40<{KP8y2n%};%%a%xt2xDOTK59q=^{p;>tMFY!@+T(Kn+3 z>cj1wi1$LmqGW7^YNYMo(ecG_%S@wHwuyFO349&7H(I{2yEW)Ndluj@9`&i&CQ2Xj zAP><*Ib#th#|p+2;?g7gZS`iGoAb_m)5H7BfxIN-g19sEvqI%DIb-5F5NOm)0+#B9 z4T!*71+D|SRCu07ZAb!amH4IAK>UtP8sx#Nh z8&~fNT_&vo#mPZrPR}D{kCJz*Q#VWO@}-@86OU%MFcu=hL^93?i_e>Oa&@^P#@3^F z{ZdBs+zw39>A#y&S{Ycfl61K=K7kKHz=kYI!#FElM&+^=LuY(_Qb%ApFfX}E2xOk;oTGw> zRjTqL|M;rMRHTB{wy@@_iOpH~oU{fuaGMqpLxKpFsF3A9LXtsv=VJH07cl)V-3x1t zw4~RVzx8+XB97JDRhcqyK%z;p%YS8(h|E%mm2ux75*K1Y*7{gpp$DB9?B9t_DE$8` z>!Z%@;5#+pZi{$aYTkJtu6p#@EQj{HL^eJNI3wi{+i+;v CzWe{q8sstZ%(JT6gQ5(1O|eZa{2R4m3ahXRc$r z@9S)5U~7d86Dq6>0B{!}4fQPv+m5g`6XNFBYpft*LY7O^B9m)%cp2^qp!F`K`j&ayv^Lb?{e zbB*#4_Unal?oBAl=yIfh0cP`cMkH6Su757Sc;+iV4V$bCqe97j^) z#CMMl{8_u0Yqn~m*P^I$^!TIH7Ar$rv7ySdpA=hdwjgnd&HBN-!-K$uG%NO_k&zFL zu?8v|>}LW{3zK$)@Hyg&&+tTeo>spG0C?)Rs?7Qu3+y`kd%8f(l{v#n=lUsFki9QF z|J0@Nd>D1y63cC~L|)3Xb=vf*QaTLFfO5b_jxC6>_(~_~Ay= zW8+C%G3;L`CwNCfyw4bTbfi>H!at}IXYdKbg)Z2)uD_gx8i=dgEk{&4}UA1o7%(E4{IK)*aVJn-e>J>hleCbqHeo(3<_fgq?J9Knbul6X?9-VldBq3_H)jro zs;*9{GtU^cD@O{(oMXnMJjG&yAP_SCjsVlYGQt-GO}4B!L|s#_To2?hKhfB(HF87) z<8E=E3z#NE+}*Zr{Y7kdmQt@M=y&GKLplVSA$bkOPz%{^d_iH3+6#n%st>z%jNIJ>xw8Nc1s34-%#~+I#bPdHKMm% zL7uqvRzjP8o2U12e!2K|EWBoYBYv=lXc1(Jq;RzT(yE-GoJdSMuVnDV@IekXoFvaC zZ!L-s$tru+Qd^-`1d0=D?ms+;-1qToA6nN-dT&sJ~&~U`tS=6_l z0~E!`4--2O0(yxJ*mcuy2`?^0n1+w#0SU+g?{VVTKeu`_a)MV)naV6V;*) zEyV7jZ++`q*5XR-Dq)A7Wc)$)mUUE_kFvbLz)+`b8mz5<_9dD50OXR40BzOuKP%MH z?U@@2Tb72P6n9H?T8rC3h*MpNOkS9u5V#!8vwI2PK0mOuNIs#;MVMXHPW zhuSNBKM;L0n_M{Qzk<}#>?Sx5r-3H&!4GD7$?rW^PfwCeOt74pFB4pps`}+zpDL$k zXXmuJQvpfa&c=QN=5%Eo-RsUW33FTbMs6W*Up4KcCQ52%rSZFmP+uum%|$*m?Pad? zY>~CL?v1yM0nsBzu9&7eOEoZXh_%wz`)G%R^1e-7bGd}2G&3(81}Kg+Td!A3&on14 zJm9Cw$)1SJp3?19Rxr-^c)O-|>8JgByoT4={Yz{A7|m{^Nh%D# zjjJO`E{;x4*uJP(Dt{wBH#CP(tJ@CCQT>_TW67mYU#oSKL#TsATJZ&X5G`Plt7w9F z+s)eX3mZ`0;dE=b`Qpzk+j{D{dVe(*@ z(=np`;jrdcwsp&!_bQ?^J*>X0pM?|h>Ca1yPG>tZ>j{FH#TUv-lZ}eOqWmWH<7_jT z4N>S0f`gcxQe>W@gUBLjwByrK2|i>NML5JuRkV?FOOG9(s(4LNd?yZBHY0A}8^{SY z-yo!hrI7Pt0H99 z_W~P&;ThqX^LEC^FP-xJW9oXRo?qLn8cx@hX)%0}lR$FZ=1C-QKdSsa{UOHc?atdz zYWnG~;aBY|yvQocC(z3)4)uoXTUaovj^AEs6f;_W?QufQ?`hJtC7Mj8T@Uxhq&Crj z2u6);zHFP{@MOq3reko^t*E&7&4JlsGJWB*Fp-hnbc>8?1i zb)-fiDJjVye&7-$d3YSv)O~cP>v)$TE_-PjY*6B)I`-;jwVTSS#6g~S{M0NF-kmNe Q@$df!c^++8jKGEb3w17k%m4rY literal 0 HcmV?d00001 diff --git a/include/index.html b/include/index.html new file mode 100644 index 00000000..3210b789 --- /dev/null +++ b/include/index.html @@ -0,0 +1,111 @@ + + + + + + + + + + +
+
+ Company Logo +
+
+

+
+
+
+
+
+ + + + diff --git a/include/installInProgressHttpd-Redmine b/include/installInProgressHttpd-Redmine new file mode 100644 index 00000000..1f709ec1 --- /dev/null +++ b/include/installInProgressHttpd-Redmine @@ -0,0 +1,39 @@ +#!/bin/bash + +# Add this at the begining of all scripts. +if [ -f "include/startup.sh" ]; then + . include/startup.sh +elif [ -f "../include/startup.sh" ]; then + . ../include/startup.sh +fi + +WEB_PATH="/var/www/html" +if [ ! -d "$WEB_PATH" ]; then + echo "$WEB_PATH does not exists. Creating directory..." + mkdir -p "$WEB_PATH" +fi + +if [ -f "$WEB_PATH/redmine.conf" ]; then + echo "redmine.conf file exists. Skipping." | log + tagScript success + exit 99 +fi + +echo "Updating header..." +updateStatus="include/updateInstallStatus.sh" +html_file="$WEB_PATH/index.html" + +LOGO_IMG_ROOT="include/Logos" +LOGO_IMG_NAME="Redmine_logo.png" +LOGO_IMG_ROOT_PATH="$LOGO_IMG_ROOT/$LOGO_IMG_NAME" + +# Copy CloudRon logo +cp -r "$LOGO_IMG_ROOT_PATH" "$WEB_PATH/$LOGO_IMG_NAME" +chmod 644 "$WEB_PATH/$LOGO_IMG_NAME" + +"$updateStatus" "$html_file" -ui "$LOGO_IMG_NAME" +"$updateStatus" "$html_file" -uh "Please wait. Installing Redmine 5.1.1" +"$updateStatus" "$html_file" -ap "Installing dependencies (this stage takes time)..." + +tagScript success +exit 0 diff --git a/include/updateInstallStatus.sh b/include/updateInstallStatus.sh new file mode 100644 index 00000000..b87c2a63 --- /dev/null +++ b/include/updateInstallStatus.sh @@ -0,0 +1,114 @@ +#!/bin/bash + +show_help() { + echo "Usage: $0 [html_file] [action] [content]" + echo "Actions:" + echo " -uh, update_heading - Updates the content of the

element in the specified HTML file." + echo " -ap, add_paragraph - Adds new paragraphs to the end of the
. Each new line in 'content' will be a new paragraph." + echo " -rp, replace_paragraphs - Replaces all existing paragraphs in
with new ones. Each new line in 'content' will be a new paragraph." + echo " -cp, clear_paragraphs - Clears all paragraphs from
." + echo " -ui, update_image - Updates the source of the logo image in the specified HTML file." + echo " -ut, update_title - Updates the content of the element in the specified HTML file." + echo " -uf, update_favicon - Updates the href of the <link rel='icon'> tag in the specified HTML file." + echo "" + echo "Arguments:" + echo " html_file - Path to the HTML file to be modified." + echo " action - Action to perform (update_heading, add_paragraph, replace_paragraphs, clear_paragraphs, update_image, update_title, update_favicon)." + echo " content - Content to update in the HTML file, dependent on the action. Not needed for clear_paragraphs." + echo "" + echo "Examples:" + echo " $0 /path/to/file.html -uh \"New Page Title\"" + echo " $0 /path/to/file.html -ap \"This is the first paragraph.\nThis is the second paragraph.\"" + echo " $0 /path/to/file.html -rp \"First new paragraph.\nSecond new paragraph.\"" + echo " $0 /path/to/file.html -cp" + echo " $0 /path/to/file.html -ui \"new_logo.png\"" + echo " $0 /path/to/file.html -ut \"New Title\"" + echo " $0 /path/to/file.html -uf \"new_favicon.ico\"" + echo "" + echo "Options:" + echo " -h, --help - Display this help message and exit." +} + +# Check for necessary arguments +if [ "$1" == "-h" ] || [ "$1" == "--help" ] || [ "$#" -lt 3 ] && [ "$2" != "-cp" ] && [ "$2" != "-ui" ] && [ "$2" != "-uf" ]; then + show_help + exit 1 +fi + +HTML_FILE="$1" +ACTION="$2" +CONTENT="${3-}" + +# Function to update the title +update_title() { + sed -i "s|<title>.*|$CONTENT|" "$HTML_FILE" +} + +# Function to update the heading +update_heading() { + sed -i "s|

.*

|

$CONTENT

|" "$HTML_FILE" +} + +# Function to add a new paragraph for each line of the input +add_paragraph() { + while IFS= read -r line; do + if [ -n "$line" ]; then + sed -i "/
/a \

$line

" "$HTML_FILE" + fi + done <<< "$(echo -e "$CONTENT")" +} + +# Function to replace all paragraphs with new ones +replace_paragraphs() { + sed -i "/
/,/<\/div>/ { /

.*<\/p>/d; }" "$HTML_FILE" + while IFS= read -r line; do + if [ -n "$line" ]; then + sed -i "/

/a \

$line

" "$HTML_FILE" + fi + done <<< "$(echo -e "$CONTENT")" +} + +# Function to clear all paragraphs +clear_paragraphs() { + sed -i "/
/,/<\/div>/ { /

.*<\/p>/d; }" "$HTML_FILE" +} + +# Function to update the logo image source +update_logo_img() { + sed -i "/

/,/<\/div>/ s|||" "$HTML_FILE" +} + +# Decide which action to perform based on the second argument +case "$ACTION" in + -uh | update_heading) + update_heading "$HTML_FILE" "$CONTENT" + ;; + -ap | add_paragraph) + add_paragraph "$HTML_FILE" "$CONTENT" + ;; + -rp | replace_paragraphs) + replace_paragraphs "$HTML_FILE" "$CONTENT" + ;; + -cp | clear_paragraphs) + clear_paragraphs "$HTML_FILE" + ;; + -ui | update_image) + update_logo_img "$HTML_FILE" "$CONTENT" + ;; + -ut | update_title) + update_title "$HTML_FILE" "$CONTENT" + ;; + -uf | update_favicon) + update_favicon "$HTML_FILE" "$CONTENT" + ;; + *) + echo "Invalid action: $ACTION" + echo "Valid actions: -uh (update_heading), -ap (add_paragraph), -rp (replace_paragraphs), -cp (clear_paragraphs), -ui (update_image), -ut (update_title), -uf (update_favicon)" + exit 1 + ;; +esac diff --git a/installer-contrib-cloudron-latest-offirepo.conf b/installer-contrib-cloudron-latest-offirepo.conf index e1edd0fa..5f2a7ccd 100644 --- a/installer-contrib-cloudron-latest-offirepo.conf +++ b/installer-contrib-cloudron-latest-offirepo.conf @@ -1,22 +1,131 @@ -# -# This is the config file where we define what will be executed in the installer script. -# -# installer will read variables and will execute them one by one. -# +#!/bin/bash -. installer-contrib-tweaks-preinstall.conf -execute+=(include/installInProgressSSH) -execute+=(tweaks/ubuntu-ufw-enable) -execute+=(tweaks/ubuntu-ufw-allowhttp) -execute+=(tweaks/ubuntu-updateos) +if [ -f "include/startup.sh" ]; then + . include/startup.sh +elif [ -f "../include/startup.sh" ]; then + . ../include/startup.sh +fi -. installer-contrib-tweaks-optimize.conf -execute+=(apps/cloudron-latest-offirepo) +install_apache() { + echo "Installing apache2..." | log + apt update && apt install -y apache2 -execute+=(tweaks/motd-header-tweak) -execute+=(tweaks/motd-description-append) -execute+=(tweaks/cwm-description-autoconfig) + echo "Installing passenger module for apache2..." | log + apt install -y libapache2-mod-passenger +} -execute+=(include/installInProgressSSH-remove) +idxHTMLPath="/var/www/html" +if [ ! -d "$idxHTMLPath" ]; then + mkdir -p "$idxHTMLPath" +fi + +if [ -f "$idxHTMLPath/index.html" ]; then + rm -f "$idxHTMLPath/index.html" +fi + +confPath="/etc/apache2/sites-available" +if [ ! -d "$confPath" ]; then + mkdir -p "$confPath" + +fi + +# Define variables +update_status="include/updateInstallStatus.sh" +web_path="/var/www/html" +logo_img_root="include/Logos" +logo_img_name="CloudRon_logo.png" +logo_img_root_path="$logo_img_root/$logo_img_name" +html_path="/var/www/html/index.html" +local_html_path="include/index.html" + +install_apache + +if [ ! -d "$web_path" ]; then + mkdir -p "$web_path" +fi + +echo "Writing apache configuration file..." | log +cat <<_EOF_ > /etc/apache2/sites-available/installProgress.conf + + ServerName _ + DocumentRoot $idxHTMLPath + + ErrorLog ${APACHE_LOG_DIR}/error.log + CustomLog ${APACHE_LOG_DIR}/access.log combined + + + + ServerName _ + DocumentRoot $idxHTMLPath + + SSLEngine on + SSLCertificateFile /etc/ssl/certs/apache-selfsigned.crt + SSLCertificateKeyFile /etc/ssl/private/apache-selfsigned.key + + +_EOF_ + +echo "Copying HTML related files..." +cp -r "$local_html_path" "$html_path" +cp -r "$logo_img_root_path" "$web_path/$logo_img_name" +chmod 644 "$web_path/$logo_img_name" + +a2enmod ssl +a2ensite installProgress +a2dissite 000-default +systemctl start apache2 + +"$update_status" "$html_path" -uf "$logo_img_name" +"$update_status" "$html_path" -ut "CloudRon Installation" +"$update_status" "$html_path" -ui "$logo_img_name" +"$update_status" "$html_path" -uh "CloudRon Installation" +"$update_status" "$html_path" -rp "Initializing setup..." + +tag httpd.success +tag apache.success + +chmod +x tweaks/ubuntu-updateos-noupgrade +chmod +x tweaks/apache-enable-ssl +chmod +x apps/cloudron-latest-offirepo + +# Define execute list +declare -a steps=( + ". installer-contrib-tweaks-preinstall.conf" + "tweaks/ubuntu-ufw-enable" + "tweaks/ubuntu-ufw-allowhttp" + "tweaks/apache-enable-ssl" + "tweaks/ubuntu-updateos-noupgrade" + "apps/cloudron-latest-offirepo" + "tweaks/cwm-description-autoconfig" +) + +for run in "${steps[@]}"; do + printf "Executing %s\n" "$run" | log + if ! $run; then + script_exit_code=$? + printf "Exit Code: %d\n" "$script_exit_code" | log + + case "$script_exit_code" in + 0) printf "Done. (0)\n" | log ;; + 1) printf "Error during %s. Exiting.\n" "$run" | log + return 1 + ;; + 98) printf "Exit Code 98. Script already executed, can run only once. Continuing. (98)\n" | log ;; + 99) printf "Exit Code 99. Continuing. (99)\n" | log ;; + 127) printf "Error. %s not found. Exiting. (127)\n" "$run" | log + return 1 + ;; + *) printf "Exit Code not configured. Exiting. (%d)\n" "$script_exit_code" | log + return 1 + ;; + esac + fi + + if [[ "$run" == "apps/cloudron-latest-offirepo" ]]; then + return 0 + fi +done + +tag Script.success \ No newline at end of file diff --git a/installer-contrib-redmine-5.1.1-offisrc-rails-mysqlserver-8.0.conf b/installer-contrib-redmine-5.1.1-offisrc-rails-mysqlserver-8.0.conf index b2d61da8..837135ae 100644 --- a/installer-contrib-redmine-5.1.1-offisrc-rails-mysqlserver-8.0.conf +++ b/installer-contrib-redmine-5.1.1-offisrc-rails-mysqlserver-8.0.conf @@ -1,23 +1,152 @@ -# -# This is the config file where we define what will be executed in the installer script. -# -# installer will read variables and will execute them one by one. -# +#!/bin/bash -. installer-contrib-tweaks-preinstall.conf -execute+=(include/installInProgressSSH) -execute+=(tweaks/ubuntu-ufw-enable) -execute+=(tweaks/ubuntu-ufw-allowmysql) -execute+=(tweaks/ubuntu-ufw-allowhttp) -execute+=(tweaks/ubuntu-updateos) +if [ -f "include/startup.sh" ]; then + . include/startup.sh +elif [ -f "../include/startup.sh" ]; then + . ../include/startup.sh +fi -execute+=(include/installInProgressHttpd-apache) -execute+=(services/apache-latest-offirepo) -execute+=(tweaks/apache-enable-ssl) -. installer-contrib-tweaks-optimize.conf +install_apache() { + echo "Installing apache2..." | log + apt update && apt install -y apache2 -execute+=(services/mysqlserver-8.0-osrepo-withFiglet) -execute+=(services/ruby-latest-offirepo-ruby-dev) -execute+=(apps/redmine-5.1.1-offisrc-apache-rails-mysql-8.0) + echo "Installing passenger module for apache2..." | log + apt install -y libapache2-mod-passenger +} + +idxHTMLPath="/var/www/html" +if [ ! -d "$idxHTMLPath" ]; then + mkdir -p "$idxHTMLPath" +fi + +if [ -f "$idxHTMLPath/index.html" ]; then + rm -f "$idxHTMLPath/index.html" +fi + +confPath="/etc/apache2/sites-available" +if [ ! -d "$confPath" ]; then + mkdir -p "$confPath" + +fi + +# Define variables +update_status="include/updateInstallStatus.sh" +web_path="/var/www/html" +img_root="include/Logos" +logo_img_name="Redmine_logo.png" +icon_img_name="Redmine_icon.png" +img_root_path="$img_root/$logo_img_name" +icon_img_root_path="$img_root/$icon_img_name" +html_path="/var/www/html/index.html" +local_html_path="include/index.html" + +install_apache + +if [ ! -d "$web_path" ]; then + mkdir -p "$web_path" +fi + +echo "Writing apache configuration file..." | log +cat <<_EOF_ > /etc/apache2/sites-available/installProgress.conf + + ServerName _ + DocumentRoot $idxHTMLPath + + ErrorLog ${APACHE_LOG_DIR}/error.log + CustomLog ${APACHE_LOG_DIR}/access.log combined + + + + ServerName _ + DocumentRoot $idxHTMLPath + + SSLEngine on + SSLCertificateFile /etc/ssl/certs/apache-selfsigned.crt + SSLCertificateKeyFile /etc/ssl/private/apache-selfsigned.key + + +_EOF_ + +echo "Copying HTML related files..." +cp -r "$local_html_path" "$html_path" +cp -r "$img_root_path" "$web_path/$logo_img_name" +cp -r "$icon_img_root_path" "$web_path/$icon_img_name" +chmod 644 "$web_path/$logo_img_name" +chmod 644 "$web_path/$icon_img_name" + +a2enmod ssl +a2ensite installProgress +a2dissite 000-default +systemctl start apache2 + +"$update_status" "$html_path" -uf "$icon_img_name" +"$update_status" "$html_path" -ut "Redmine 5.1.1 Installation" +"$update_status" "$html_path" -ui "$logo_img_name" +"$update_status" "$html_path" -uh "Redmine 5.1.1 Installation" + +tag httpd.success +tag apache.success +tagScript success + +chmod +x tweaks/ubuntu-updateos-noupgrade +chmod +x tweaks/apache-enable-ssl +chmod +x services/ruby-latest-offirepo-ruby-dev +chmod +x apps/redmine-5.1.1-offisrc-apache-rails-mysql-8.0 + +# Define execute list +declare -a steps=( + ". installer-contrib-tweaks-preinstall.conf" + "include/installInProgressSSH" + "tweaks/ubuntu-ufw-enable" + "tweaks/ubuntu-ufw-allowmysql" + "tweaks/ubuntu-ufw-allowhttp" + "tweaks/ubuntu-updateos-noupgrade" + "tweaks/apache-enable-ssl" + "services/mysqlserver-8.0-osrepo" + "services/ruby-latest-offirepo-ruby-dev" + "apps/redmine-5.1.1-offisrc-apache-rails-mysql-8.0" + "tweaks/cwm-description-autoconfig" +) + +for run in "${steps[@]}"; do + printf "Executing %s\n" "$run" | log + + # Update HTML status based on the task + case "$run" in + "services/mysqlserver-8.0-osrepo") + "$update_status" "$html_path" -rp "Install dependencies..............[SUCCESS]\nInstall MySQL server 8.0..." + ;; + "services/ruby-latest-offirepo-ruby-dev") + "$update_status" "$html_path" -rp "Install dependencies..............[SUCCESS]\nInstall MySQL server 8.0...................[SUCCESS]\nInstalling Ruby 3.2.3..." + ;; + "apps/redmine-5.1.1-offisrc-apache-rails-mysql-8.0") + "$update_status" "$html_path" -rp "Install dependencies..............[SUCCESS]\nInstall MySQL server 8.0...................[SUCCESS]\nInstall Ruby 3.2.3..............[SUCCESS]\nInstalling Redmine 5.1.1..." + ;; + esac + + if ! $run; then + local script_exit_code=$? + printf "Exit Code: %d\n" "$script_exit_code" | log + + case "$script_exit_code" in + 0) printf "Done. (0)\n" | log ;; + 1) printf "Error during %s. Exiting.\n" "$run" | log + return 1 + ;; + 98) printf "Exit Code 98. Script already executed, can run only once. Continuing. (98)\n" | log ;; + 99) printf "Exit Code 99. Continuing. (99)\n" | log ;; + 127) printf "Error. %s not found. Exiting. (127)\n" "$run" | log + return 1 + ;; + *) printf "Exit Code not configured. Exiting. (%d)\n" "$script_exit_code" | log + return 1 + ;; + esac + fi + + if [[ "$run" == "apps/redmine-5.1.1-offisrc-apache-rails-mysql-8.0" ]]; then + return 0 + fi +done diff --git a/installer-contrib-tweaks-preinstall.conf b/installer-contrib-tweaks-preinstall.conf index 446d9da2..ac0c19ee 100644 --- a/installer-contrib-tweaks-preinstall.conf +++ b/installer-contrib-tweaks-preinstall.conf @@ -3,10 +3,3 @@ execute+=(tweaks/ubuntu-sysctl-swap) execute+=(tweaks/ubuntu-updatemirror) execute+=(include/checkInternetConnectivity) execute+=(tweaks/ubuntu-disable-openssl-randfile) - -chmod +x services/apache-latest-offirepo -chmod +x tweaks/apache-enable-ssl -chmod +x include/installInProgressHttpd-apache -chmod +x services/mysqlserver-8.0-osrepo-withFiglet -chmod +x services/ruby-latest-offirepo-ruby-dev -chmod +x apps/redmine-5.1.1-offisrc-apache-rails-mysql-8.0 \ No newline at end of file diff --git a/services/apache-latest-offirepo b/services/apache-latest-offirepo index 7d1abdf6..55b150eb 100644 --- a/services/apache-latest-offirepo +++ b/services/apache-latest-offirepo @@ -8,50 +8,10 @@ elif [ -f "../include/startup.sh" ]; then fi echo "Installing Apache2..." -installPackage apache2 - -echo "Installing passenger module for apache2..." -installPackage libapache2-mod-passenger - -idxHTMLPath="/etc/apache2/sites-available" -if [ ! -d "$idxHTMLPath" ]; then - mkdir -p $idxHTMLPath - -fi - -echo "Writing apache configuration file..." -cat <<_EOF_ > $idxHTMLPath/figletIDX.conf - - ServerName _ - DocumentRoot $idxHTMLPath - - ErrorLog ${APACHE_LOG_DIR}/error.log - CustomLog ${APACHE_LOG_DIR}/access.log combined - - - - ServerName _ - DocumentRoot $idxHTMLPath - - SSLEngine on - SSLCertificateFile /etc/ssl/certs/apache-selfsigned.crt - SSLCertificateKeyFile /etc/ssl/private/apache-selfsigned.key - - - Allow from all - Options -MultiViews - Require all granted - - -_EOF_ - -a2enmod ssl -a2ensite figletIDX -a2dissite 000-default -systemctl start apache2 +apt update && apt install -y apache2 tag httpd.success tag apache.success tagScript success -exit 0 \ No newline at end of file +exit 0 diff --git a/services/ruby-latest-offirepo-ruby-dev b/services/ruby-latest-offirepo-ruby-dev index 78a2f66d..548f2c29 100644 --- a/services/ruby-latest-offirepo-ruby-dev +++ b/services/ruby-latest-offirepo-ruby-dev @@ -1,27 +1,12 @@ #!/bin/bash +# Add this at the begining of all scripts. if [ -f "include/startup.sh" ]; then . include/startup.sh elif [ -f "../include/startup.sh" ]; then . ../include/startup.sh fi -appPath="/etc/apache2/sites-available" -figletApp=$(which figlet) - -echo "Updating 'Installing Ruby...' notice to $appPath/index.html" | log -echo "Installation Progress
" > "$appPath/index.html"
-$figletApp "Install in Progress" >> "$appPath/index.html"
-echo "Please Wait. Application and services installation is in progress, the process will take a couple of minutes to complete. Thank you for your patience." >> "$appPath/index.html"
-echo "Install dependencies.......................[DONE]" >> "$appPath/index.html"
-echo "Install MySQL server 8.0...................[DONE]" >> "$appPath/index.html"
-echo "Please Wait. Installing Ruby 3.2.3..." >> "$appPath/index.html"
-echo "" >> "$appPath/index.html"
-echo "
" >> "$appPath/index.html" - -echo "Reloading Apache2..." -systemctl reload apache2 - echo "Installing Ruby from apt" | log installPackage ruby | log waitOrStop 0 "Failed to install ruby" @@ -35,4 +20,4 @@ waitOrStop 0 "Failed to install build-essential" tag ruby.success tagScript success -exit 0 \ No newline at end of file +exit 0 diff --git a/tweaks/ubuntu-updateos-noupgrade b/tweaks/ubuntu-updateos-noupgrade new file mode 100644 index 00000000..601d5e04 --- /dev/null +++ b/tweaks/ubuntu-updateos-noupgrade @@ -0,0 +1,23 @@ +#!/bin/bash + +# Add this at the begining of all scripts. +if [ -f "include/startup.sh" ]; then + . include/startup.sh +elif [ -f "../include/startup.sh" ]; then + . ../include/startup.sh +fi + +echo "Updating and upgrading OS to latest kernel and packages" | log +# NOTE: since the kamatera mirror is faulty the update process is faulty from that stage on. +# without these changes, certine packages related to nginx runtime will be unavailable. + +apt update | log + +# Clean up old journalctl logs +echo "Cleaning up old journalctl logs" | log +journalctl --flush --rotate --vacuum-time=1s | log + +tag ubuntu-updateos.success +tagScript success + +exit 0 From b37229be5e6c52ed04dc398fc518a8431223a868 Mon Sep 17 00:00:00 2001 From: gils Date: Wed, 15 May 2024 15:21:31 +0300 Subject: [PATCH 111/124] Gave permissions to include/updateInstallStatus.sh --- ...ntrib-cloudron-latest-offirepo - Copy.conf | 131 ++++++++++++++++++ 1 file changed, 131 insertions(+) create mode 100644 installer-contrib-cloudron-latest-offirepo - Copy.conf diff --git a/installer-contrib-cloudron-latest-offirepo - Copy.conf b/installer-contrib-cloudron-latest-offirepo - Copy.conf new file mode 100644 index 00000000..5f2a7ccd --- /dev/null +++ b/installer-contrib-cloudron-latest-offirepo - Copy.conf @@ -0,0 +1,131 @@ +#!/bin/bash + + +if [ -f "include/startup.sh" ]; then + . include/startup.sh +elif [ -f "../include/startup.sh" ]; then + . ../include/startup.sh +fi + + +install_apache() { + echo "Installing apache2..." | log + apt update && apt install -y apache2 + + echo "Installing passenger module for apache2..." | log + apt install -y libapache2-mod-passenger +} + +idxHTMLPath="/var/www/html" +if [ ! -d "$idxHTMLPath" ]; then + mkdir -p "$idxHTMLPath" +fi + +if [ -f "$idxHTMLPath/index.html" ]; then + rm -f "$idxHTMLPath/index.html" +fi + +confPath="/etc/apache2/sites-available" +if [ ! -d "$confPath" ]; then + mkdir -p "$confPath" + +fi + +# Define variables +update_status="include/updateInstallStatus.sh" +web_path="/var/www/html" +logo_img_root="include/Logos" +logo_img_name="CloudRon_logo.png" +logo_img_root_path="$logo_img_root/$logo_img_name" +html_path="/var/www/html/index.html" +local_html_path="include/index.html" + +install_apache + +if [ ! -d "$web_path" ]; then + mkdir -p "$web_path" +fi + +echo "Writing apache configuration file..." | log +cat <<_EOF_ > /etc/apache2/sites-available/installProgress.conf + + ServerName _ + DocumentRoot $idxHTMLPath + + ErrorLog ${APACHE_LOG_DIR}/error.log + CustomLog ${APACHE_LOG_DIR}/access.log combined + + + + ServerName _ + DocumentRoot $idxHTMLPath + + SSLEngine on + SSLCertificateFile /etc/ssl/certs/apache-selfsigned.crt + SSLCertificateKeyFile /etc/ssl/private/apache-selfsigned.key + + +_EOF_ + +echo "Copying HTML related files..." +cp -r "$local_html_path" "$html_path" +cp -r "$logo_img_root_path" "$web_path/$logo_img_name" +chmod 644 "$web_path/$logo_img_name" + +a2enmod ssl +a2ensite installProgress +a2dissite 000-default +systemctl start apache2 + +"$update_status" "$html_path" -uf "$logo_img_name" +"$update_status" "$html_path" -ut "CloudRon Installation" +"$update_status" "$html_path" -ui "$logo_img_name" +"$update_status" "$html_path" -uh "CloudRon Installation" +"$update_status" "$html_path" -rp "Initializing setup..." + +tag httpd.success +tag apache.success + +chmod +x tweaks/ubuntu-updateos-noupgrade +chmod +x tweaks/apache-enable-ssl +chmod +x apps/cloudron-latest-offirepo + +# Define execute list +declare -a steps=( + ". installer-contrib-tweaks-preinstall.conf" + "tweaks/ubuntu-ufw-enable" + "tweaks/ubuntu-ufw-allowhttp" + "tweaks/apache-enable-ssl" + "tweaks/ubuntu-updateos-noupgrade" + "apps/cloudron-latest-offirepo" + "tweaks/cwm-description-autoconfig" +) + +for run in "${steps[@]}"; do + printf "Executing %s\n" "$run" | log + if ! $run; then + script_exit_code=$? + printf "Exit Code: %d\n" "$script_exit_code" | log + + case "$script_exit_code" in + 0) printf "Done. (0)\n" | log ;; + 1) printf "Error during %s. Exiting.\n" "$run" | log + return 1 + ;; + 98) printf "Exit Code 98. Script already executed, can run only once. Continuing. (98)\n" | log ;; + 99) printf "Exit Code 99. Continuing. (99)\n" | log ;; + 127) printf "Error. %s not found. Exiting. (127)\n" "$run" | log + return 1 + ;; + *) printf "Exit Code not configured. Exiting. (%d)\n" "$script_exit_code" | log + return 1 + ;; + esac + fi + + if [[ "$run" == "apps/cloudron-latest-offirepo" ]]; then + return 0 + fi +done + +tag Script.success \ No newline at end of file From 4c84393447ec1e24d232f614fd9390d7b5aac822 Mon Sep 17 00:00:00 2001 From: Gil Shwartz <58849439+GShwartz@users.noreply.github.com> Date: Wed, 15 May 2024 15:24:27 +0300 Subject: [PATCH 112/124] Rename installer-contrib-cloudron-latest-offirepo.conf to installer-contrib-cloudron-a-latest-offirepo.conf --- ...po.conf => installer-contrib-cloudron-a-latest-offirepo.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename installer-contrib-cloudron-latest-offirepo.conf => installer-contrib-cloudron-a-latest-offirepo.conf (99%) diff --git a/installer-contrib-cloudron-latest-offirepo.conf b/installer-contrib-cloudron-a-latest-offirepo.conf similarity index 99% rename from installer-contrib-cloudron-latest-offirepo.conf rename to installer-contrib-cloudron-a-latest-offirepo.conf index 5f2a7ccd..205c7753 100644 --- a/installer-contrib-cloudron-latest-offirepo.conf +++ b/installer-contrib-cloudron-a-latest-offirepo.conf @@ -128,4 +128,4 @@ for run in "${steps[@]}"; do fi done -tag Script.success \ No newline at end of file +tag Script.success From 0e54468057cad1141cd4a3444c51f0980845db3a Mon Sep 17 00:00:00 2001 From: gils Date: Wed, 15 May 2024 15:27:44 +0300 Subject: [PATCH 113/124] Removed copy file --- ...ntrib-cloudron-latest-offirepo - Copy.conf | 131 ------------------ 1 file changed, 131 deletions(-) delete mode 100644 installer-contrib-cloudron-latest-offirepo - Copy.conf diff --git a/installer-contrib-cloudron-latest-offirepo - Copy.conf b/installer-contrib-cloudron-latest-offirepo - Copy.conf deleted file mode 100644 index 5f2a7ccd..00000000 --- a/installer-contrib-cloudron-latest-offirepo - Copy.conf +++ /dev/null @@ -1,131 +0,0 @@ -#!/bin/bash - - -if [ -f "include/startup.sh" ]; then - . include/startup.sh -elif [ -f "../include/startup.sh" ]; then - . ../include/startup.sh -fi - - -install_apache() { - echo "Installing apache2..." | log - apt update && apt install -y apache2 - - echo "Installing passenger module for apache2..." | log - apt install -y libapache2-mod-passenger -} - -idxHTMLPath="/var/www/html" -if [ ! -d "$idxHTMLPath" ]; then - mkdir -p "$idxHTMLPath" -fi - -if [ -f "$idxHTMLPath/index.html" ]; then - rm -f "$idxHTMLPath/index.html" -fi - -confPath="/etc/apache2/sites-available" -if [ ! -d "$confPath" ]; then - mkdir -p "$confPath" - -fi - -# Define variables -update_status="include/updateInstallStatus.sh" -web_path="/var/www/html" -logo_img_root="include/Logos" -logo_img_name="CloudRon_logo.png" -logo_img_root_path="$logo_img_root/$logo_img_name" -html_path="/var/www/html/index.html" -local_html_path="include/index.html" - -install_apache - -if [ ! -d "$web_path" ]; then - mkdir -p "$web_path" -fi - -echo "Writing apache configuration file..." | log -cat <<_EOF_ > /etc/apache2/sites-available/installProgress.conf - - ServerName _ - DocumentRoot $idxHTMLPath - - ErrorLog ${APACHE_LOG_DIR}/error.log - CustomLog ${APACHE_LOG_DIR}/access.log combined - - - - ServerName _ - DocumentRoot $idxHTMLPath - - SSLEngine on - SSLCertificateFile /etc/ssl/certs/apache-selfsigned.crt - SSLCertificateKeyFile /etc/ssl/private/apache-selfsigned.key - - -_EOF_ - -echo "Copying HTML related files..." -cp -r "$local_html_path" "$html_path" -cp -r "$logo_img_root_path" "$web_path/$logo_img_name" -chmod 644 "$web_path/$logo_img_name" - -a2enmod ssl -a2ensite installProgress -a2dissite 000-default -systemctl start apache2 - -"$update_status" "$html_path" -uf "$logo_img_name" -"$update_status" "$html_path" -ut "CloudRon Installation" -"$update_status" "$html_path" -ui "$logo_img_name" -"$update_status" "$html_path" -uh "CloudRon Installation" -"$update_status" "$html_path" -rp "Initializing setup..." - -tag httpd.success -tag apache.success - -chmod +x tweaks/ubuntu-updateos-noupgrade -chmod +x tweaks/apache-enable-ssl -chmod +x apps/cloudron-latest-offirepo - -# Define execute list -declare -a steps=( - ". installer-contrib-tweaks-preinstall.conf" - "tweaks/ubuntu-ufw-enable" - "tweaks/ubuntu-ufw-allowhttp" - "tweaks/apache-enable-ssl" - "tweaks/ubuntu-updateos-noupgrade" - "apps/cloudron-latest-offirepo" - "tweaks/cwm-description-autoconfig" -) - -for run in "${steps[@]}"; do - printf "Executing %s\n" "$run" | log - if ! $run; then - script_exit_code=$? - printf "Exit Code: %d\n" "$script_exit_code" | log - - case "$script_exit_code" in - 0) printf "Done. (0)\n" | log ;; - 1) printf "Error during %s. Exiting.\n" "$run" | log - return 1 - ;; - 98) printf "Exit Code 98. Script already executed, can run only once. Continuing. (98)\n" | log ;; - 99) printf "Exit Code 99. Continuing. (99)\n" | log ;; - 127) printf "Error. %s not found. Exiting. (127)\n" "$run" | log - return 1 - ;; - *) printf "Exit Code not configured. Exiting. (%d)\n" "$script_exit_code" | log - return 1 - ;; - esac - fi - - if [[ "$run" == "apps/cloudron-latest-offirepo" ]]; then - return 0 - fi -done - -tag Script.success \ No newline at end of file From 3c332ccde54c8d4e873d8b687987a115cdee20c2 Mon Sep 17 00:00:00 2001 From: gils Date: Wed, 15 May 2024 15:32:32 +0300 Subject: [PATCH 114/124] gave permissions to updateInstallStatus --- installer-contrib-cloudron-a-latest-offirepo.conf | 1 + 1 file changed, 1 insertion(+) diff --git a/installer-contrib-cloudron-a-latest-offirepo.conf b/installer-contrib-cloudron-a-latest-offirepo.conf index 205c7753..0535159b 100644 --- a/installer-contrib-cloudron-a-latest-offirepo.conf +++ b/installer-contrib-cloudron-a-latest-offirepo.conf @@ -88,6 +88,7 @@ tag apache.success chmod +x tweaks/ubuntu-updateos-noupgrade chmod +x tweaks/apache-enable-ssl +chmod +x include/updateInstallStatus.sh chmod +x apps/cloudron-latest-offirepo # Define execute list From 6d8cc2abfabc5629bb5b588f76079d5726f77356 Mon Sep 17 00:00:00 2001 From: gils Date: Wed, 15 May 2024 15:34:08 +0300 Subject: [PATCH 115/124] Updated permissions in Redmine 511 --- ...ller-contrib-redmine-5.1.1-offisrc-rails-mysqlserver-8.0.conf | 1 + 1 file changed, 1 insertion(+) diff --git a/installer-contrib-redmine-5.1.1-offisrc-rails-mysqlserver-8.0.conf b/installer-contrib-redmine-5.1.1-offisrc-rails-mysqlserver-8.0.conf index 837135ae..ca76c9eb 100644 --- a/installer-contrib-redmine-5.1.1-offisrc-rails-mysqlserver-8.0.conf +++ b/installer-contrib-redmine-5.1.1-offisrc-rails-mysqlserver-8.0.conf @@ -92,6 +92,7 @@ tagScript success chmod +x tweaks/ubuntu-updateos-noupgrade chmod +x tweaks/apache-enable-ssl +chmod +x include/updateInstallStatus.sh chmod +x services/ruby-latest-offirepo-ruby-dev chmod +x apps/redmine-5.1.1-offisrc-apache-rails-mysql-8.0 From aa1c66012ad12294b40ec3390ab8aa7ba3999527 Mon Sep 17 00:00:00 2001 From: gils Date: Wed, 15 May 2024 15:38:37 +0300 Subject: [PATCH 116/124] permissions --- installer-contrib-cloudron-a-latest-offirepo.conf | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/installer-contrib-cloudron-a-latest-offirepo.conf b/installer-contrib-cloudron-a-latest-offirepo.conf index 0535159b..2987d9f2 100644 --- a/installer-contrib-cloudron-a-latest-offirepo.conf +++ b/installer-contrib-cloudron-a-latest-offirepo.conf @@ -40,6 +40,11 @@ logo_img_root_path="$logo_img_root/$logo_img_name" html_path="/var/www/html/index.html" local_html_path="include/index.html" +chmod +x tweaks/ubuntu-updateos-noupgrade +chmod +x tweaks/apache-enable-ssl +chmod +x include/updateInstallStatus.sh +chmod +x apps/cloudron-latest-offirepo + install_apache if [ ! -d "$web_path" ]; then @@ -86,10 +91,7 @@ systemctl start apache2 tag httpd.success tag apache.success -chmod +x tweaks/ubuntu-updateos-noupgrade -chmod +x tweaks/apache-enable-ssl -chmod +x include/updateInstallStatus.sh -chmod +x apps/cloudron-latest-offirepo + # Define execute list declare -a steps=( From cf43f8f60dc7fb055b3523af44b7d8be6555d1a9 Mon Sep 17 00:00:00 2001 From: gils Date: Wed, 15 May 2024 15:42:41 +0300 Subject: [PATCH 117/124] Changed font color --- include/index.html | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/include/index.html b/include/index.html index 3210b789..9bd3ceb7 100644 --- a/include/index.html +++ b/include/index.html @@ -19,7 +19,7 @@ justify-content: flex-start; } .wrapper { - width: 80%; /* Increased the width for better layout */ + width: 80%; max-width: 1000px; display: flex; flex-direction: column; @@ -29,7 +29,7 @@ .container { background-color: #1E1E1E; padding: 5px; - width: 60%; /* Adjusted to use full width of the wrapper */ + width: 60%; border-radius: 12px; box-shadow: 0 8px 24px rgba(0,0,0,0.28); margin-top: 10px; @@ -40,36 +40,36 @@ text-align: center; } .logo-space { - height: 100px; /* Space for the logo */ + height: 100px; display: flex; align-items: center; justify-content: center; width: 100%; - margin-top: 20px; /* Added margin to lower the logo */ + margin-top: 20px; } .status-container { max-height: 250px; overflow-y: auto; - width: 60%; /* Adjusted to use full width of the container */ - background-color: #000000; /* Terminal background color */ - border: 2px solid #169307; /* Darker green border */ + width: 60%; + background-color: #000000; + border: 2px solid #169307; border-radius: 5px; - padding: 20px 10px 10px 10px; /* Added top padding to prevent text cut off */ - color: #00cc00; /* Darker green text color */ - font-family: 'Courier New', Courier, monospace; /* Monospace font */ - text-align: left; /* Align text to the left */ + padding: 20px 10px 10px 10px; + color: #00cc00; + font-family: 'Courier New', Courier, monospace; + text-align: left; display: flex; flex-direction: column; - align-items: flex-start; /* Align items to the start */ - line-height: 1.5; /* Adjusted line height */ + align-items: flex-start; + line-height: 1.5; } .status { font-size: 16px; font-weight: normal; - color: #878C87; /* Darker green text color */ + color: #ECF0F1; width: 100%; - text-align: left; /* Ensure text is aligned to the left */ - margin: 5px 0; /* Added margin to each status item */ + text-align: left; + margin: 5px 0; } /* Scrollbar styles */ .status-container::-webkit-scrollbar { From 346c1b61de2466a57731879755cf2fde1e94d572 Mon Sep 17 00:00:00 2001 From: gils Date: Wed, 15 May 2024 16:10:33 +0300 Subject: [PATCH 118/124] Changed file permissions in redmine511 --- ...-redmine-5.1.1-offisrc-rails-mysqlserver-8.0.conf | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/installer-contrib-redmine-5.1.1-offisrc-rails-mysqlserver-8.0.conf b/installer-contrib-redmine-5.1.1-offisrc-rails-mysqlserver-8.0.conf index ca76c9eb..c6616813 100644 --- a/installer-contrib-redmine-5.1.1-offisrc-rails-mysqlserver-8.0.conf +++ b/installer-contrib-redmine-5.1.1-offisrc-rails-mysqlserver-8.0.conf @@ -42,6 +42,12 @@ icon_img_root_path="$img_root/$icon_img_name" html_path="/var/www/html/index.html" local_html_path="include/index.html" +chmod +x tweaks/ubuntu-updateos-noupgrade +chmod +x tweaks/apache-enable-ssl +chmod +x include/updateInstallStatus.sh +chmod +x services/ruby-latest-offirepo-ruby-dev +chmod +x apps/redmine-5.1.1-offisrc-apache-rails-mysql-8.0 + install_apache if [ ! -d "$web_path" ]; then @@ -90,12 +96,6 @@ tag httpd.success tag apache.success tagScript success -chmod +x tweaks/ubuntu-updateos-noupgrade -chmod +x tweaks/apache-enable-ssl -chmod +x include/updateInstallStatus.sh -chmod +x services/ruby-latest-offirepo-ruby-dev -chmod +x apps/redmine-5.1.1-offisrc-apache-rails-mysql-8.0 - # Define execute list declare -a steps=( ". installer-contrib-tweaks-preinstall.conf" From 5c7b5d4a4bf980ec6b9df0dd44569e10f86ee8e4 Mon Sep 17 00:00:00 2001 From: gils Date: Wed, 15 May 2024 16:32:45 +0300 Subject: [PATCH 119/124] Changed location of permissions --- installer-contrib-cloudron-a-latest-offirepo.conf | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/installer-contrib-cloudron-a-latest-offirepo.conf b/installer-contrib-cloudron-a-latest-offirepo.conf index 2987d9f2..855dd54b 100644 --- a/installer-contrib-cloudron-a-latest-offirepo.conf +++ b/installer-contrib-cloudron-a-latest-offirepo.conf @@ -41,8 +41,8 @@ html_path="/var/www/html/index.html" local_html_path="include/index.html" chmod +x tweaks/ubuntu-updateos-noupgrade -chmod +x tweaks/apache-enable-ssl chmod +x include/updateInstallStatus.sh +chmod +x tweaks/apache-enable-ssl chmod +x apps/cloudron-latest-offirepo install_apache @@ -91,8 +91,6 @@ systemctl start apache2 tag httpd.success tag apache.success - - # Define execute list declare -a steps=( ". installer-contrib-tweaks-preinstall.conf" From aeb974e6e3ef7a6c8ab4d4f9ddf5eb3aa8343080 Mon Sep 17 00:00:00 2001 From: Gil Shwartz <58849439+GShwartz@users.noreply.github.com> Date: Wed, 15 May 2024 16:44:28 +0300 Subject: [PATCH 120/124] Rename installer-contrib-cloudron-a-latest-offirepo.conf to installer-contrib-cloudron-latest-offirepo.conf --- ...firepo.conf => installer-contrib-cloudron-latest-offirepo.conf | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename installer-contrib-cloudron-a-latest-offirepo.conf => installer-contrib-cloudron-latest-offirepo.conf (100%) diff --git a/installer-contrib-cloudron-a-latest-offirepo.conf b/installer-contrib-cloudron-latest-offirepo.conf similarity index 100% rename from installer-contrib-cloudron-a-latest-offirepo.conf rename to installer-contrib-cloudron-latest-offirepo.conf From 4769fec7b564783510bda85f88eb2cb028c1f339 Mon Sep 17 00:00:00 2001 From: gils Date: Wed, 15 May 2024 16:45:29 +0300 Subject: [PATCH 121/124] Renamed contrib file --- ...firepo.conf => installer-contrib-cloudron-latest-offirepo.conf | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename installer-contrib-cloudron-a-latest-offirepo.conf => installer-contrib-cloudron-latest-offirepo.conf (100%) diff --git a/installer-contrib-cloudron-a-latest-offirepo.conf b/installer-contrib-cloudron-latest-offirepo.conf similarity index 100% rename from installer-contrib-cloudron-a-latest-offirepo.conf rename to installer-contrib-cloudron-latest-offirepo.conf From 458ca2d9ab9def54dd90190be5bc2d5c0f87f856 Mon Sep 17 00:00:00 2001 From: gils Date: Wed, 15 May 2024 17:28:10 +0300 Subject: [PATCH 122/124] Filtered out the updatemirror from the process --- ...contrib-redmine-4.2-offisrc-rails-mysqlserver-8.0.conf | 8 +++++++- installer-contrib-tweaks-preinstall.conf | 2 +- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/installer-contrib-redmine-4.2-offisrc-rails-mysqlserver-8.0.conf b/installer-contrib-redmine-4.2-offisrc-rails-mysqlserver-8.0.conf index 9298687b..f0e73278 100644 --- a/installer-contrib-redmine-4.2-offisrc-rails-mysqlserver-8.0.conf +++ b/installer-contrib-redmine-4.2-offisrc-rails-mysqlserver-8.0.conf @@ -4,7 +4,13 @@ # installer will read variables and will execute them one by one. # -. installer-contrib-tweaks-preinstall.conf +#. installer-contrib-tweaks-preinstall.conf + +# Preinstall minus the updatemirror +execute+=(tweaks/cwm-settimezone) +execute+=(tweaks/ubuntu-sysctl-swap) +execute+=(include/checkInternetConnectivity) +execute+=(tweaks/ubuntu-disable-openssl-randfile) execute+=(include/installInProgressSSH) execute+=(tweaks/ubuntu-ufw-enable) diff --git a/installer-contrib-tweaks-preinstall.conf b/installer-contrib-tweaks-preinstall.conf index ac0c19ee..4358f05e 100644 --- a/installer-contrib-tweaks-preinstall.conf +++ b/installer-contrib-tweaks-preinstall.conf @@ -1,5 +1,5 @@ execute+=(tweaks/cwm-settimezone) execute+=(tweaks/ubuntu-sysctl-swap) -execute+=(tweaks/ubuntu-updatemirror) +#execute+=(tweaks/ubuntu-updatemirror) execute+=(include/checkInternetConnectivity) execute+=(tweaks/ubuntu-disable-openssl-randfile) From 48369706be4346149ea8ff05dad609649928ea57 Mon Sep 17 00:00:00 2001 From: gils Date: Thu, 16 May 2024 09:05:35 +0300 Subject: [PATCH 123/124] Finilized CloudRon Installation --- apps/cloudron-latest-offirepo | 9 ++++----- installer-contrib-cloudron-latest-offirepo.conf | 12 ++++++++---- 2 files changed, 12 insertions(+), 9 deletions(-) diff --git a/apps/cloudron-latest-offirepo b/apps/cloudron-latest-offirepo index ff16c615..11bc5598 100755 --- a/apps/cloudron-latest-offirepo +++ b/apps/cloudron-latest-offirepo @@ -40,16 +40,15 @@ updateAndFinalize() { echo "Setup DNS files have been updated." | log - . tweaks/cwm-description-autoconfig + # Touchups + bash tweaks/motd-description-append + bash tweaks/cwm-description-autoconfig echo "Adding descriptions" | log descriptionAppend "CloudRon Web UI: https://${CWM_DOMAIN}" descriptionAppend "SSL will be configured after the first step." - . tweaks/motd-description-append - . tweaks/cwm-description-autoconfig - . include/installInProgressSSH-remove - + # Cleanup echo "Cleaning up..." | log sleep 5 systemctl stop apache2 diff --git a/installer-contrib-cloudron-latest-offirepo.conf b/installer-contrib-cloudron-latest-offirepo.conf index 855dd54b..20806ded 100644 --- a/installer-contrib-cloudron-latest-offirepo.conf +++ b/installer-contrib-cloudron-latest-offirepo.conf @@ -40,9 +40,10 @@ logo_img_root_path="$logo_img_root/$logo_img_name" html_path="/var/www/html/index.html" local_html_path="include/index.html" +# Give permissions to local scripts chmod +x tweaks/ubuntu-updateos-noupgrade -chmod +x include/updateInstallStatus.sh chmod +x tweaks/apache-enable-ssl +chmod +x include/updateInstallStatus.sh chmod +x apps/cloudron-latest-offirepo install_apache @@ -93,13 +94,16 @@ tag apache.success # Define execute list declare -a steps=( - ". installer-contrib-tweaks-preinstall.conf" + "tweaks/cwm-settimezone" + "tweaks/ubuntu-sysctl-swap" + "include/checkInternetConnectivity" + "tweaks/ubuntu-disable-openssl-randfile" "tweaks/ubuntu-ufw-enable" "tweaks/ubuntu-ufw-allowhttp" "tweaks/apache-enable-ssl" "tweaks/ubuntu-updateos-noupgrade" "apps/cloudron-latest-offirepo" - "tweaks/cwm-description-autoconfig" + ) for run in "${steps[@]}"; do @@ -129,4 +133,4 @@ for run in "${steps[@]}"; do fi done -tag Script.success +tag Script.success \ No newline at end of file From f16b12b0262490b77302c8273451396ab8a41b89 Mon Sep 17 00:00:00 2001 From: GShwartz Date: Mon, 20 May 2024 19:58:32 +0300 Subject: [PATCH 124/124] Finalizing --- include/index.html | 64 ++++++++++++++++++++++++-- include/updateInstallStatus.sh | 83 ++++++++++++++++++++++++++++++++-- 2 files changed, 139 insertions(+), 8 deletions(-) diff --git a/include/index.html b/include/index.html index 9bd3ceb7..ac9e680c 100644 --- a/include/index.html +++ b/include/index.html @@ -71,19 +71,69 @@ text-align: left; margin: 5px 0; } + .credentials-container { + max-height: 100px; + width: 60%; + background-color: #000000; + border: 2px solid #008CBA; + border-radius: 5px; + padding: 20px 10px 10px 10px; + color: #00cc00; + font-family: 'Courier New', Courier, monospace; + text-align: center; + display: flex; + flex-direction: column; + align-items: center; + line-height: 1.5; + margin-top: 20px; + } + .credential { + font-size: 16px; + font-weight: normal; + color: #ECF0F1; + width: 100%; + text-align: center; + margin: 5px 0; + } + .redirect-container { + width: 60%; + background-color: #000000; + border: 2px solid #F5A940; + border-radius: 5px; + padding: 10px; + color: #F5A940; + font-family: 'Courier New', Courier, monospace; + text-align: center; + display: flex; + align-items: center; + justify-content: center; + line-height: 1.5; + margin-top: 20px; + } + .redirect { + font-size: 16px; + font-weight: normal; + color: #F5A940; + width: 100%; + text-align: center; + margin: 5px 0; + } + .hidden { + display: none; + } /* Scrollbar styles */ - .status-container::-webkit-scrollbar { + .status-container::-webkit-scrollbar, .credentials-container::-webkit-scrollbar { width: 8px; } - .status-container::-webkit-scrollbar-track { + .status-container::-webkit-scrollbar-track, .credentials-container::-webkit-scrollbar-track { background: #2A2A2A; } - .status-container::-webkit-scrollbar-thumb { + .status-container::-webkit-scrollbar-thumb, .credentials-container::-webkit-scrollbar-thumb { background-color: #444; border-radius: 10px; border: 2px solid #2A2A2A; } - .status-container { + .status-container, .credentials-container { scrollbar-width: thin; scrollbar-color: #444 #2A2A2A; } @@ -100,6 +150,12 @@

+ +