@@ -12,12 +12,13 @@ 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" ]
1919 then
2020 lpms=$i
21+ sudo apk add --no-cache --upgrade grep
2122 break
2223 elif [ " $i " == " dnf" ] && ([[ $( grep -Pow ' ID=\K[^;]*' /etc/os-release | tr -d ' "' ) == " fedora" ]] || (( [[ $(grep - Pow 'ID= \K[^;]* ' / etc/ os- release | tr - d '"') != "centos" ]] && [[ $(grep - Pow 'ID_LIKE= \K[^;]* ' / etc/ os- release | tr - d '"') == * "fedora"* ]]) || ([[ $(grep - Pow 'ID_LIKE= \K[^;]* ' / etc/ os- release | tr - d '"') == * "rhel"* ]] && [ $(sudo uname - m) == "s390 x" ])) )
2324 then
3233 lpms=$i
3334 break
3435 elif [[ $( grep -Pow ' ID_LIKE=\K[^;]*' /etc/os-release) == * " suse" * ]]
36+ then
37+ lpms=$i
38+ break
39+ elif [ " $i " == " pacman" ]
3540 then
3641 lpms=$i
3742 break
7782 then
7883 sudo zypper remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine runc
7984 fi
85+ elif [ " $lpms " == " pacman" ]
86+ then
87+ sudo pacman -Rssn podman-docker podman-compose
8088else
8189 echo " "
8290 echo " could not be detected package management system"
@@ -165,6 +173,10 @@ then
165173
166174 # Installed=`sudo apt-cache policy docker-ce | sed -n '2p' | cut -c 14-`
167175 # 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
168180else
169181 echo " "
170182 echo " could not be detected package management system"
@@ -221,13 +233,13 @@ echo "======================================================================="
221233echo " "
222234echo " "
223235echo " ======================================================================="
224- echo " | Installing Docker Compose v2.23.3 ..."
236+ echo " | Installing Docker Compose v2.32.4 ..."
225237echo " ======================================================================="
226238echo " "
227239sleep 2
228240
229241sudo mkdir -p /usr/local/lib/docker/cli-plugins
230- sudo curl -SL " https://github.com/docker/compose/releases/download/v2.23.3 /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
231243sudo chmod +x /usr/local/lib/docker/cli-plugins/docker-compose
232244
233245echo " "
@@ -251,31 +263,102 @@ echo ""
251263echo " Done ✓"
252264echo " ======================================================================="
253265
266+ clear
254267# #########
255268# Setup project variables
256269# #########
257270echo " "
258- echo " "
259271echo " ======================================================================="
260272echo " | Please enter project related variables..."
261273echo " ======================================================================="
262274echo " "
263275sleep 2
264276
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+
265296# set your domain name
266- domain_name=" "
267- 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
268307[ -z $domain_name ] && domain_name=" NULL"
269308host -N 0 $domain_name 2>&1 > /dev/null
270309while [ $? -ne 0 ]
271310do
272311 echo " Try again"
273- 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
274322 [ -z $domain_name ] && domain_name=" NULL"
275323 host -N 0 $domain_name 2>&1 > /dev/null
276324done
277325echo " Ok."
278326
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+
279362# set parameters in env.example file
280363email=" "
281364regex=" ^[a-zA-Z0-9\._-]+\@[a-zA-Z0-9._-]+\.[a-zA-Z]+\$ "
351434echo " Ok."
352435
353436which_db=" "
354- db_authentication_plugin=" mysql_native_password"
355- db_authentication_password=" USING PASSWORD('" $pma_password " ')"
437+ db_authentication_password=$pma_password
356438db_package_manager=" apt-get update \&\& apt-get install -y gettext-base"
357439db_admin_commandline=" mariadb-admin"
358440PS3=" Select the database: "
361443 which_db=$db
362444 if [ $REPLY -eq 2 ]
363445 then
364- db_authentication_plugin=" caching_sha2_password"
365- db_authentication_password=" BY '" $pma_password " '"
366446 db_package_manager=" microdnf install -y gettext"
367447 db_admin_commandline=" mysqladmin"
368448 fi
@@ -390,24 +470,23 @@ echo "Ok."
390470
391471read -p " Apply changes (y/n)? " choice
392472case " $choice " in
393- y|Y ) echo " Yes! Proceeding now..." ;;
473+ y|Y ) clear ; echo " " ; echo " Yes! Proceeding now..." ;;
394474 n|N ) echo " No! Aborting now..." ; exit 0;;
395475 * ) echo " Invalid input! Aborting now..." ; exit 0;;
396476esac
397477
398- cp ./phpmyadmin/apache2/sites-available/default-ssl.sample.conf ./phpmyadmin/apache2/sites-available/default-ssl.conf
399- 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
400480
401- cp env.example .env
481+ \ c p env.example .env
402482
403- sed -i ' s/db_authentication_plugin/' $db_authentication_plugin ' /' ./database/phpmyadmin/sql/create_tables.sql.template
404483sed -i " s/db_authentication_password/${db_authentication_password} /" ./database/phpmyadmin/sql/create_tables.sql.template
405- sed -i ' s/db_authentication_plugin/' $db_authentication_plugin ' /' .env
406484sed -i " s|db_package_manager|${db_package_manager} |" .env
407485sed -i ' s/db_admin_commandline/' $db_admin_commandline ' /' .env
408486sed -i ' s/example.com/' $domain_name ' /' .env
409487sed -i ' s/example.com/' $domain_name ' /g' ./phpmyadmin/apache2/sites-available/default-ssl.conf
410488sed -i ' s/email@domain.com/' $email ' /' .env
489+ sed -i " s/ssl_snippet/$ssl_snippet /" .env
411490sed -i ' s/which_db/' $which_db ' /g' .env
412491sed -i ' s/db_username/' $db_username ' /g' .env
413492sed -i ' s/db_password/' $db_password ' /g' .env
0 commit comments