@@ -12,7 +12,7 @@ sleep 2
1212
1313# the "lpms" is an abbreviation of Linux Package Management System
1414lpms=" "
15- for i in apk dnf yum apt zypper
15+ for i in apk dnf yum apt zypper pacman
1616do
1717 if [ -x " $( command -v $i ) " ]; then
1818 if [ " $i " == " apk" ]
3333 lpms=$i
3434 break
3535 elif [[ $( grep -Pow ' ID_LIKE=\K[^;]*' /etc/os-release) == * " suse" * ]]
36+ then
37+ lpms=$i
38+ break
39+ elif [ " $i " == " pacman" ]
3640 then
3741 lpms=$i
3842 break
@@ -47,15 +51,6 @@ if [ -z $lpms ]; then
4751 exit 0
4852fi
4953
50- # #########
51- # set varnish version
52- # #########
53- varnish_version=" stable"
54- if ([[ $( grep -Pow ' VERSION_ID=\K[^;]*' /etc/os-release | tr -d ' "' ) == 9* ]] && [ $( grep -Pow ' ID=\K[^;]*' /etc/os-release | tr -d ' "' ) == " centos" ]) || [ $( grep -Pow ' ID=\K[^;]*' /etc/os-release | tr -d ' "' ) == " fedora" ]
55- then
56- varnish_version=" latest"
57- fi
58-
5954# #########
6055# Uninstall old versions
6156# #########
8782 then
8883 sudo zypper remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine runc
8984 fi
85+ elif [ " $lpms " == " pacman" ]
86+ then
87+ sudo pacman -Rssn podman-docker podman-compose
9088else
9189 echo " "
9290 echo " could not be detected package management system"
@@ -175,6 +173,10 @@ then
175173
176174 # Installed=`sudo apt-cache policy docker-ce | sed -n '2p' | cut -c 14-`
177175 # Candidate=`sudo apt-cache policy docker-ce | sed -n '3p' | cut -c 14-`
176+ elif [ " $lpms " == " pacman" ]
177+ then
178+ sudo pacman -Syu --noconfirm
179+ sudo pacman -Ss docker docker-buildx
178180else
179181 echo " "
180182 echo " could not be detected package management system"
@@ -231,13 +233,13 @@ echo "======================================================================="
231233echo " "
232234echo " "
233235echo " ======================================================================="
234- echo " | Installing Docker Compose v2.27.2 ..."
236+ echo " | Installing Docker Compose v2.32.4 ..."
235237echo " ======================================================================="
236238echo " "
237239sleep 2
238240
239241sudo mkdir -p /usr/local/lib/docker/cli-plugins
240- sudo curl -SL " https://github.com/docker/compose/releases/download/v2.27.2 /docker-compose-$( uname -s) -$( uname -m) " -o /usr/local/lib/docker/cli-plugins/docker-compose
242+ sudo curl -SL " https://github.com/docker/compose/releases/download/v2.32.4 /docker-compose-$( uname -s) -$( uname -m) " -o /usr/local/lib/docker/cli-plugins/docker-compose
241243sudo chmod +x /usr/local/lib/docker/cli-plugins/docker-compose
242244
243245echo " "
@@ -266,27 +268,97 @@ clear
266268# Setup project variables
267269# #########
268270echo " "
269- echo " "
270271echo " ======================================================================="
271272echo " | Please enter project related variables..."
272273echo " ======================================================================="
273274echo " "
274275sleep 2
275276
277+ # set the host
278+ which_h=" "
279+ items=(" localhost" " remotehost" )
280+ PS3=" which computer command line are you on? Select the host: "
281+ select h in " ${items[@]} "
282+ do
283+ case $REPLY in
284+ 1)
285+ which_h=$h
286+ break ;;
287+ 2)
288+ which_h=$h
289+ break ;;
290+ * )
291+ echo " Invalid choice $REPLY " ;;
292+ esac
293+ done
294+ echo " Ok."
295+
276296# set your domain name
277- domain_name=" "
278- read -p ' Enter Domain Name(e.g. : example.com): ' domain_name
297+ if [ " $which_h " == " localhost" ]
298+ then
299+ read -p ' Enter Domain Name(default : localhost or e.g. : example.com): ' domain_name
300+ : ${domain_name:= localhost}
301+ [ " $domain_name " != " localhost" ] && sudo -- sh -c -e " grep -qxF '127.0.0.1 $domain_name ' /etc/hosts || echo '127.0.0.1 $domain_name ' >> /etc/hosts"
302+ else
303+ domain_name=" "
304+ read -p ' Enter Domain Name(e.g. : example.com): ' domain_name
305+ # [ "$domain_name" != "localhost" ] && sudo -- sh -c -e "sed -i '/$domain_name/d' /etc/hosts"
306+ fi
279307[ -z $domain_name ] && domain_name=" NULL"
280308host -N 0 $domain_name 2>&1 > /dev/null
281309while [ $? -ne 0 ]
282310do
283311 echo " Try again"
284- read -p ' Enter Domain Name(e.g. : example.com): ' domain_name
312+ sudo -- sh -c -e " sed -i '/$domain_name /d' /etc/hosts"
313+ if [ " $which_h " == " localhost" ]
314+ then
315+ read -p ' Enter Domain Name(default : localhost or e.g. : example.com): ' domain_name
316+ : ${domain_name:= localhost}
317+ [ " $domain_name " != " localhost" ] && sudo -- sh -c -e " grep -qxF '127.0.0.1 $domain_name ' /etc/hosts || echo '127.0.0.1 $domain_name ' >> /etc/hosts"
318+ else
319+ read -p ' Enter Domain Name(e.g. : example.com): ' domain_name
320+ # [ "$domain_name" != "localhost" ] && sudo -- sh -c -e "sed -i '/$domain_name/d' /etc/hosts"
321+ fi
285322 [ -z $domain_name ] && domain_name=" NULL"
286323 host -N 0 $domain_name 2>&1 > /dev/null
287324done
288325echo " Ok."
289326
327+ ssl_snippet=" "
328+ if [ " $which_h " == " localhost" ]
329+ then
330+ ssl_snippet=" echo 'Generated Self-signed SSL Certificate for localhost'"
331+ if [ " $lpms " == " apk" ]
332+ then
333+ sudo apk add --no-cache nss-tools go git
334+ elif [ " $lpms " == " dnf" ]
335+ then
336+ sudo dnf install nss-tools go git
337+ elif [ " $lpms " == " yum" ]
338+ then
339+ sudo yum install nss-tools go git
340+ elif [ " $lpms " == " zypper" ]
341+ then
342+ sudo zypper install mozilla-nss-tools go git
343+ elif [ " $lpms " == " apt" ]
344+ then
345+ sudo apt install libnss3-tools go git
346+ elif [ " $lpms " == " pacman" ]
347+ then
348+ sudo pacman -S nss go git
349+ else
350+ echo " "
351+ echo " could not be detected package management system"
352+ echo " "
353+ exit 0
354+ fi
355+ sudo rm -Rf mkcert && git clone https://github.com/FiloSottile/mkcert && cd mkcert && go build -ldflags " -X main.Version=$( git describe --tags) "
356+ sudo mkcert -uninstall && mkcert -install && mkcert -key-file privkey.pem -cert-file chain.pem $domain_name * .$domain_name && sudo cat privkey.pem chain.pem > fullchain.pem && sudo mkdir -p ../certbot/live/$domain_name && sudo mv * .pem ../certbot/live/$domain_name && cd ..
357+ echo " Ok."
358+ else
359+ ssl_snippet=" certbot certonly --webroot --webroot-path \/tmp\/acme-challenge --rsa-key-size 4096 --non-interactive --agree-tos --no-eff-email --force-renewal --email \$ \{LETSENCRYPT_EMAIL\} -d \$ \{DOMAIN_NAME\} -d www.\$ \{DOMAIN_NAME\}"
360+ fi
361+
290362# set parameters in env.example file
291363email=" "
292364regex=" ^[a-zA-Z0-9\._-]+\@[a-zA-Z0-9._-]+\.[a-zA-Z]+\$ "
@@ -398,22 +470,23 @@ echo "Ok."
398470
399471read -p " Apply changes (y/n)? " choice
400472case " $choice " in
401- y|Y ) echo " Yes! Proceeding now..." ;;
473+ y|Y ) clear ; echo " " ; echo " Yes! Proceeding now..." ;;
402474 n|N ) echo " No! Aborting now..." ; exit 0;;
403475 * ) echo " Invalid input! Aborting now..." ; exit 0;;
404476esac
405477
406- cp ./phpmyadmin/apache2/sites-available/default-ssl.sample.conf ./phpmyadmin/apache2/sites-available/default-ssl.conf
407- cp ./database/phpmyadmin/sql/create_tables.sql.template.example ./database/phpmyadmin/sql/create_tables.sql.template
478+ \ c p ./phpmyadmin/apache2/sites-available/default-ssl.sample.conf ./phpmyadmin/apache2/sites-available/default-ssl.conf
479+ \ c p ./database/phpmyadmin/sql/create_tables.sql.template.example ./database/phpmyadmin/sql/create_tables.sql.template
408480
409- cp env.example .env
481+ \ c p env.example .env
410482
411483sed -i " s/db_authentication_password/${db_authentication_password} /" ./database/phpmyadmin/sql/create_tables.sql.template
412484sed -i " s|db_package_manager|${db_package_manager} |" .env
413485sed -i ' s/db_admin_commandline/' $db_admin_commandline ' /' .env
414486sed -i ' s/example.com/' $domain_name ' /' .env
415487sed -i ' s/example.com/' $domain_name ' /g' ./phpmyadmin/apache2/sites-available/default-ssl.conf
416488sed -i ' s/email@domain.com/' $email ' /' .env
489+ sed -i " s/ssl_snippet/$ssl_snippet /" .env
417490sed -i ' s/which_db/' $which_db ' /g' .env
418491sed -i ' s/db_username/' $db_username ' /g' .env
419492sed -i ' s/db_password/' $db_password ' /g' .env
0 commit comments