@@ -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
8791 then
8892 sudo zypper remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine runc
8993 fi
94+ elif [ " $lpms " == " pacman" ]
95+ then
96+ sudo pacman -Rssn podman-docker podman-compose
9097else
9198 echo " "
9299 echo " could not be detected package management system"
@@ -175,6 +182,10 @@ then
175182
176183 # Installed=`sudo apt-cache policy docker-ce | sed -n '2p' | cut -c 14-`
177184 # Candidate=`sudo apt-cache policy docker-ce | sed -n '3p' | cut -c 14-`
185+ elif [ " $lpms " == " pacman" ]
186+ then
187+ sudo pacman -Syu --noconfirm
188+ sudo pacman -Ss docker docker-buildx
178189else
179190 echo " "
180191 echo " could not be detected package management system"
@@ -231,13 +242,13 @@ echo "======================================================================="
231242echo " "
232243echo " "
233244echo " ======================================================================="
234- echo " | Installing Docker Compose v2.27.2 ..."
245+ echo " | Installing Docker Compose v2.32.4 ..."
235246echo " ======================================================================="
236247echo " "
237248sleep 2
238249
239250sudo 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
251+ 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
241252sudo chmod +x /usr/local/lib/docker/cli-plugins/docker-compose
242253
243254echo " "
@@ -266,27 +277,97 @@ clear
266277# Setup project variables
267278# #########
268279echo " "
269- echo " "
270280echo " ======================================================================="
271281echo " | Please enter project related variables..."
272282echo " ======================================================================="
273283echo " "
274284sleep 2
275285
286+ # set the host
287+ which_h=" "
288+ items=(" localhost" " remotehost" )
289+ PS3=" which computer command line are you on? Select the host: "
290+ select h in " ${items[@]} "
291+ do
292+ case $REPLY in
293+ 1)
294+ which_h=$h
295+ break ;;
296+ 2)
297+ which_h=$h
298+ break ;;
299+ * )
300+ echo " Invalid choice $REPLY " ;;
301+ esac
302+ done
303+ echo " Ok."
304+
276305# set your domain name
277- domain_name=" "
278- read -p ' Enter Domain Name(e.g. : example.com): ' domain_name
306+ if [ " $which_h " == " localhost" ]
307+ then
308+ read -p ' Enter Domain Name(default : localhost or e.g. : example.com): ' domain_name
309+ : ${domain_name:= localhost}
310+ [ " $domain_name " != " localhost" ] && sudo -- sh -c -e " grep -Eq '$domain_name ' /etc/hosts || echo '127.0.0.1 $domain_name ' >> /etc/hosts"
311+ else
312+ domain_name=" "
313+ read -p ' Enter Domain Name(e.g. : example.com): ' domain_name
314+ # [ "$domain_name" != "localhost" ] && sudo -- sh -c -e "sed -i '/$domain_name/d' /etc/hosts"
315+ fi
279316[ -z $domain_name ] && domain_name=" NULL"
280317host -N 0 $domain_name 2>&1 > /dev/null
281318while [ $? -ne 0 ]
282319do
283320 echo " Try again"
284- read -p ' Enter Domain Name(e.g. : example.com): ' domain_name
321+ sudo -- sh -c -e " sed -i '/$domain_name /d' /etc/hosts"
322+ if [ " $which_h " == " localhost" ]
323+ then
324+ read -p ' Enter Domain Name(default : localhost or e.g. : example.com): ' domain_name
325+ : ${domain_name:= localhost}
326+ [ " $domain_name " != " localhost" ] && sudo -- sh -c -e " grep -Eq '$domain_name ' /etc/hosts || echo '127.0.0.1 $domain_name ' >> /etc/hosts"
327+ else
328+ read -p ' Enter Domain Name(e.g. : example.com): ' domain_name
329+ # [ "$domain_name" != "localhost" ] && sudo -- sh -c -e "sed -i '/$domain_name/d' /etc/hosts"
330+ fi
285331 [ -z $domain_name ] && domain_name=" NULL"
286332 host -N 0 $domain_name 2>&1 > /dev/null
287333done
288334echo " Ok."
289335
336+ ssl_snippet=" "
337+ if [ " $which_h " == " localhost" ]
338+ then
339+ ssl_snippet=" echo 'Generated Self-signed SSL Certificate for localhost'"
340+ if [ " $lpms " == " apk" ]
341+ then
342+ sudo apk add --no-cache nss-tools go git
343+ elif [ " $lpms " == " dnf" ]
344+ then
345+ sudo dnf install nss-tools go git
346+ elif [ " $lpms " == " yum" ]
347+ then
348+ sudo yum install nss-tools go git
349+ elif [ " $lpms " == " zypper" ]
350+ then
351+ sudo zypper install mozilla-nss-tools go git
352+ elif [ " $lpms " == " apt" ]
353+ then
354+ sudo apt install libnss3-tools go git
355+ elif [ " $lpms " == " pacman" ]
356+ then
357+ sudo pacman -S nss go git
358+ else
359+ echo " "
360+ echo " could not be detected package management system"
361+ echo " "
362+ exit 0
363+ fi
364+ sudo rm -Rf mkcert && git clone https://github.com/FiloSottile/mkcert && cd mkcert && go build -ldflags " -X main.Version=$( git describe --tags) "
365+ 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 ..
366+ echo " Ok."
367+ else
368+ 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\}"
369+ fi
370+
290371# set parameters in env.example file
291372email=" "
292373regex=" ^[a-zA-Z0-9\._-]+\@[a-zA-Z0-9._-]+\.[a-zA-Z]+\$ "
@@ -398,22 +479,23 @@ echo "Ok."
398479
399480read -p " Apply changes (y/n)? " choice
400481case " $choice " in
401- y|Y ) echo " Yes! Proceeding now..." ;;
482+ y|Y ) clear ; echo " " ; echo " Yes! Proceeding now..." ;;
402483 n|N ) echo " No! Aborting now..." ; exit 0;;
403484 * ) echo " Invalid input! Aborting now..." ; exit 0;;
404485esac
405486
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
487+ \ c p ./phpmyadmin/apache2/sites-available/default-ssl.sample.conf ./phpmyadmin/apache2/sites-available/default-ssl.conf
488+ \ c p ./database/phpmyadmin/sql/create_tables.sql.template.example ./database/phpmyadmin/sql/create_tables.sql.template
408489
409- cp env.example .env
490+ \ c p env.example .env
410491
411492sed -i " s/db_authentication_password/${db_authentication_password} /" ./database/phpmyadmin/sql/create_tables.sql.template
412493sed -i " s|db_package_manager|${db_package_manager} |" .env
413494sed -i ' s/db_admin_commandline/' $db_admin_commandline ' /' .env
414495sed -i ' s/example.com/' $domain_name ' /' .env
415496sed -i ' s/example.com/' $domain_name ' /g' ./phpmyadmin/apache2/sites-available/default-ssl.conf
416497sed -i ' s/email@domain.com/' $email ' /' .env
498+ sed -i " s/ssl_snippet/$ssl_snippet /" .env
417499sed -i ' s/which_db/' $which_db ' /g' .env
418500sed -i ' s/db_username/' $db_username ' /g' .env
419501sed -i ' s/db_password/' $db_password ' /g' .env
0 commit comments