@@ -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" 
3232			lpms=$i 
3333			break 
3434		elif  [[ $( grep -Pow ' ID_LIKE=\K[^;]*' ) ==  * " suse" *  ]]
35+ 		then 
36+ 			lpms=$i 
37+ 			break 
38+ 		elif  [ " $i " ==  " pacman" 
3539		then 
3640			lpms=$i 
3741			break 
7781	then 
7882		sudo zypper remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine runc
7983	fi 
84+ elif  [ " $lpms " ==  " pacman" 
85+ then 
86+ 	sudo pacman -Rssn podman-docker podman-compose
8087else 
8188	echo  " " 
8289	echo  " could not be detected package management system" 
@@ -165,6 +172,10 @@ then
165172
166173	# Installed=`sudo apt-cache policy docker-ce | sed -n '2p' | cut -c 14-`
167174	# Candidate=`sudo apt-cache policy docker-ce | sed -n '3p' | cut -c 14-`
175+ elif  [ " $lpms " ==  " pacman" 
176+ then 
177+ 	sudo pacman -Syu --noconfirm
178+ 	sudo pacman -Ss docker docker-buildx
168179else 
169180	echo  " " 
170181	echo  " could not be detected package management system" 
@@ -221,13 +232,13 @@ echo "======================================================================="
221232echo  " " 
222233echo  " " 
223234echo  " =======================================================================" 
224- echo  " | Installing Docker Compose v2.27.2 ..." 
235+ echo  " | Installing Docker Compose v2.32.4 ..." 
225236echo  " =======================================================================" 
226237echo  " " 
227238sleep 2
228239
229240sudo mkdir -p /usr/local/lib/docker/cli-plugins
230- sudo curl -SL " https://github.com/docker/compose/releases/download/v2.27.2 /docker-compose-$( uname -s) $( uname -m) " 
241+ sudo curl -SL " https://github.com/docker/compose/releases/download/v2.32.4 /docker-compose-$( uname -s) $( uname -m) " 
231242sudo chmod +x /usr/local/lib/docker/cli-plugins/docker-compose
232243
233244echo  " " 
@@ -256,27 +267,97 @@ clear
256267#  Setup project variables
257268# #########
258269echo  " " 
259- echo  " " 
260270echo  " =======================================================================" 
261271echo  " | Please enter project related variables..." 
262272echo  " =======================================================================" 
263273echo  " " 
264274sleep 2
265275
276+ #  set the host
277+ which_h=" " 
278+ items=(" localhost" " remotehost" 
279+ PS3=" which computer command line are you on? Select the host: " 
280+ select  h  in  " ${items[@]} " 
281+ do 
282+ 	case  $REPLY  in 
283+ 		1)
284+ 			which_h=$h 
285+ 			break ;;
286+ 		2)
287+ 			which_h=$h 
288+ 			break ;;
289+ 		* )
290+ 			echo  " Invalid choice $REPLY " 
291+ 	esac 
292+ done 
293+ echo  " Ok." 
294+ 
266295#  set your domain name
267- domain_name=" " 
268- read  -p ' Enter Domain Name(e.g. : example.com): ' 
296+ if  [ " $which_h " ==  " localhost" 
297+ then 
298+ 	read  -p ' Enter Domain Name(default : localhost or e.g. : example.com): ' 
299+ 	:  ${domain_name:= localhost} 
300+ 	[ " $domain_name " !=  " localhost" &&  sudo -- sh -c -e " grep -Eq '$domain_name ' /etc/hosts || echo '127.0.0.1  $domain_name ' >> /etc/hosts" 
301+ else 
302+ 	domain_name=" " 
303+ 	read  -p ' Enter Domain Name(e.g. : example.com): ' 
304+ 	# [ "$domain_name" != "localhost" ] && sudo -- sh -c -e "sed -i '/$domain_name/d' /etc/hosts"
305+ fi 
269306[ -z  $domain_name  ] &&  domain_name=" NULL" 
270307host -N 0 $domain_name  2>&1  >  /dev/null
271308while  [ $?  -ne  0 ]
272309do 
273310	echo  " Try again" 
274- 	read  -p ' Enter Domain Name(e.g. : example.com): ' 
311+ 	sudo -- sh -c -e " sed -i '/$domain_name /d' /etc/hosts" 
312+ 	if  [ " $which_h " ==  " localhost" 
313+ 	then 
314+ 		read  -p ' Enter Domain Name(default : localhost or e.g. : example.com): ' 
315+ 		:  ${domain_name:= localhost} 
316+ 		[ " $domain_name " !=  " localhost" &&  sudo -- sh -c -e " grep -Eq '$domain_name ' /etc/hosts || echo '127.0.0.1  $domain_name ' >> /etc/hosts" 
317+ 	else 
318+ 		read  -p ' Enter Domain Name(e.g. : example.com): ' 
319+ 		# [ "$domain_name" != "localhost" ] && sudo -- sh -c -e "sed -i '/$domain_name/d' /etc/hosts"
320+ 	fi 
275321	[ -z  $domain_name  ] &&  domain_name=" NULL" 
276322	host -N 0 $domain_name  2>&1  >  /dev/null
277323done 
278324echo  " Ok." 
279325
326+ ssl_snippet=" " 
327+ if  [ " $which_h " ==  " localhost" 
328+ then 
329+ 	ssl_snippet=" echo 'Generated Self-signed SSL Certificate for localhost'" 
330+ 	if  [ " $lpms " ==  " apk" 
331+ 	then 
332+ 		sudo apk add --no-cache nss-tools go git
333+ 	elif  [ " $lpms " ==  " dnf" 
334+ 	then 
335+ 		sudo dnf install nss-tools go git
336+ 	elif  [ " $lpms " ==  " yum" 
337+ 	then 
338+ 		sudo yum install nss-tools go git
339+ 	elif  [ " $lpms " ==  " zypper" 
340+ 	then 
341+ 		sudo zypper install mozilla-nss-tools go git
342+ 	elif  [ " $lpms " ==  " apt" 
343+ 	then 
344+ 		sudo apt install libnss3-tools go git
345+ 	elif  [ " $lpms " ==  " pacman" 
346+ 	then 
347+ 		sudo pacman -S nss go git
348+ 	else 
349+ 		echo  " " 
350+ 		echo  " could not be detected package management system" 
351+ 		echo  " " 
352+ 		exit  0
353+ 	fi 
354+ 	sudo rm -Rf mkcert &&  git clone https://github.com/FiloSottile/mkcert &&  cd  mkcert &&  go build -ldflags " -X main.Version=$( git describe --tags) " 
355+ 	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  ..
356+ 	echo  " Ok." 
357+ else 
358+ 	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\}" 
359+ fi 
360+ 
280361#  set parameters in env.example file
281362email=" " 
282363regex=" ^[a-zA-Z0-9\._-]+\@[a-zA-Z0-9._-]+\.[a-zA-Z]+\$ " 
@@ -388,22 +469,23 @@ echo "Ok."
388469
389470read  -p " Apply changes (y/n)? " 
390471case  " $choice " in 
391-   y|Y ) echo  " Yes! Proceeding now..." 
472+   y|Y ) clear ;   echo   " " ;   echo  " Yes! Proceeding now..." 
392473  n|N ) echo  " No! Aborting now..." ;  exit  0;;
393474  *  ) echo  " Invalid input! Aborting now..." ;  exit  0;;
394475esac 
395476
396- cp ./phpmyadmin/apache2/sites-available/default-ssl.sample.conf ./phpmyadmin/apache2/sites-available/default-ssl.conf
397- cp ./database/phpmyadmin/sql/create_tables.sql.template.example ./database/phpmyadmin/sql/create_tables.sql.template
477+ \ c
478+ \ c
398479
399- cp env.example .env
480+ \ c
400481
401482sed -i " s/db_authentication_password/${db_authentication_password} /" 
402483sed -i " s|db_package_manager|${db_package_manager} |" 
403484sed -i ' s/db_admin_commandline/' $db_admin_commandline ' /' 
404485sed -i ' s/example.com/' $domain_name ' /' 
405486sed -i ' s/example.com/' $domain_name ' /g' 
406487sed -i ' s/email@domain.com/' $email ' /' 
488+ sed -i " s/ssl_snippet/$ssl_snippet /" 
407489sed -i ' s/which_db/' $which_db ' /g' 
408490sed -i ' s/db_username/' $db_username ' /g' 
409491sed -i ' s/db_password/' $db_password ' /g' 
0 commit comments