@@ -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[^;]*' /etc/os-release) == * " 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) " -o /usr/local/lib/docker/cli-plugins/docker-compose
241+ 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
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): ' domain_name
296+ if [ " $which_h " == " localhost" ]
297+ then
298+ read -p ' Enter Domain Name(default : localhost or e.g. : example.com): ' domain_name
299+ : ${domain_name:= localhost}
300+ [ " $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"
301+ else
302+ domain_name=" "
303+ read -p ' Enter Domain Name(e.g. : example.com): ' domain_name
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): ' domain_name
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): ' domain_name
315+ : ${domain_name:= localhost}
316+ [ " $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"
317+ else
318+ read -p ' Enter Domain Name(e.g. : example.com): ' domain_name
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)? " choice
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 p ./phpmyadmin/apache2/sites-available/default-ssl.sample.conf ./phpmyadmin/apache2/sites-available/default-ssl.conf
478+ \ c p ./database/phpmyadmin/sql/create_tables.sql.template.example ./database/phpmyadmin/sql/create_tables.sql.template
398479
399- cp env.example .env
480+ \ c p env.example .env
400481
401482sed -i " s/db_authentication_password/${db_authentication_password} /" ./database/phpmyadmin/sql/create_tables.sql.template
402483sed -i " s|db_package_manager|${db_package_manager} |" .env
403484sed -i ' s/db_admin_commandline/' $db_admin_commandline ' /' .env
404485sed -i ' s/example.com/' $domain_name ' /' .env
405486sed -i ' s/example.com/' $domain_name ' /g' ./phpmyadmin/apache2/sites-available/default-ssl.conf
406487sed -i ' s/email@domain.com/' $email ' /' .env
488+ sed -i " s/ssl_snippet/$ssl_snippet /" .env
407489sed -i ' s/which_db/' $which_db ' /g' .env
408490sed -i ' s/db_username/' $db_username ' /g' .env
409491sed -i ' s/db_password/' $db_password ' /g' .env
0 commit comments