@@ -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
7882 then
7983 sudo zypper remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine runc
8084 fi
85+ elif [ " $lpms " == " pacman" ]
86+ then
87+ sudo pacman -Rssn podman-docker podman-compose
8188else
8289 echo " "
8390 echo " could not be detected package management system"
@@ -166,6 +173,10 @@ then
166173
167174 # Installed=`sudo apt-cache policy docker-ce | sed -n '2p' | cut -c 14-`
168175 # 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
169180else
170181 echo " "
171182 echo " could not be detected package management system"
@@ -222,13 +233,13 @@ echo "======================================================================="
222233echo " "
223234echo " "
224235echo " ======================================================================="
225- echo " | Installing Docker Compose v2.27.2 ..."
236+ echo " | Installing Docker Compose v2.32.4 ..."
226237echo " ======================================================================="
227238echo " "
228239sleep 2
229240
230241sudo mkdir -p /usr/local/lib/docker/cli-plugins
231- 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
232243sudo chmod +x /usr/local/lib/docker/cli-plugins/docker-compose
233244
234245echo " "
@@ -257,27 +268,97 @@ clear
257268# Setup project variables
258269# #########
259270echo " "
260- echo " "
261271echo " ======================================================================="
262272echo " | Please enter project related variables..."
263273echo " ======================================================================="
264274echo " "
265275sleep 2
266276
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+
267296# set your domain name
268- domain_name=" "
269- 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 -Eq '$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
270307[ -z $domain_name ] && domain_name=" NULL"
271308host -N 0 $domain_name 2>&1 > /dev/null
272309while [ $? -ne 0 ]
273310do
274311 echo " Try again"
275- 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 -Eq '$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
276322 [ -z $domain_name ] && domain_name=" NULL"
277323 host -N 0 $domain_name 2>&1 > /dev/null
278324done
279325echo " Ok."
280326
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+
281362# set parameters in env.example file
282363email=" "
283364regex=" ^[a-zA-Z0-9\._-]+\@[a-zA-Z0-9._-]+\.[a-zA-Z]+\$ "
@@ -401,22 +482,23 @@ echo "Ok."
401482
402483read -p " Apply changes (y/n)? " choice
403484case " $choice " in
404- y|Y ) echo " Yes! Proceeding now..." ;;
485+ y|Y ) clear ; echo " " ; echo " Yes! Proceeding now..." ;;
405486 n|N ) echo " No! Aborting now..." ; exit 0;;
406487 * ) echo " Invalid input! Aborting now..." ; exit 0;;
407488esac
408489
409- cp ./phpmyadmin/apache2/sites-available/default-ssl.sample.conf ./phpmyadmin/apache2/sites-available/default-ssl.conf
410- cp ./database/phpmyadmin/sql/create_tables.sql.template.example ./database/phpmyadmin/sql/create_tables.sql.template
490+ \ c p ./phpmyadmin/apache2/sites-available/default-ssl.sample.conf ./phpmyadmin/apache2/sites-available/default-ssl.conf
491+ \ c p ./database/phpmyadmin/sql/create_tables.sql.template.example ./database/phpmyadmin/sql/create_tables.sql.template
411492
412- cp env.example .env
493+ \ c p env.example .env
413494
414495sed -i " s/db_authentication_password/${db_authentication_password} /" ./database/phpmyadmin/sql/create_tables.sql.template
415496sed -i " s|db_package_manager|${db_package_manager} |" .env
416497sed -i ' s/db_admin_commandline/' $db_admin_commandline ' /' .env
417498sed -i ' s/example.com/' $domain_name ' /' .env
418499sed -i ' s/example.com/' $domain_name ' /g' ./phpmyadmin/apache2/sites-available/default-ssl.conf
419500sed -i ' s/email@domain.com/' $email ' /' .env
501+ sed -i " s/ssl_snippet/$ssl_snippet /" .env
420502sed -i ' s/which_db/' $which_db ' /g' .env
421503sed -i ' s/db_username/' $db_username ' /g' .env
422504sed -i ' s/db_password/' $db_password ' /g' .env
0 commit comments