@@ -12,7 +12,7 @@ sleep 2
12
12
13
13
# the "lpms" is an abbreviation of Linux Package Management System
14
14
lpms=" "
15
- for i in apk dnf yum apt zypper
15
+ for i in apk dnf yum apt zypper pacman
16
16
do
17
17
if [ -x " $( command -v $i ) " ]; then
18
18
if [ " $i " == " apk" ]
33
33
lpms=$i
34
34
break
35
35
elif [[ $( grep -Pow ' ID_LIKE=\K[^;]*' /etc/os-release) == * " suse" * ]]
36
+ then
37
+ lpms=$i
38
+ break
39
+ elif [ " $i " == " pacman" ]
36
40
then
37
41
lpms=$i
38
42
break
78
82
then
79
83
sudo zypper remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine runc
80
84
fi
85
+ elif [ " $lpms " == " pacman" ]
86
+ then
87
+ sudo pacman -Rssn podman-docker podman-compose
81
88
else
82
89
echo " "
83
90
echo " could not be detected package management system"
@@ -166,6 +173,10 @@ then
166
173
167
174
# Installed=`sudo apt-cache policy docker-ce | sed -n '2p' | cut -c 14-`
168
175
# 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
169
180
else
170
181
echo " "
171
182
echo " could not be detected package management system"
@@ -222,13 +233,13 @@ echo "======================================================================="
222
233
echo " "
223
234
echo " "
224
235
echo " ======================================================================="
225
- echo " | Installing Docker Compose v2.27.2 ..."
236
+ echo " | Installing Docker Compose v2.32.4 ..."
226
237
echo " ======================================================================="
227
238
echo " "
228
239
sleep 2
229
240
230
241
sudo 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
232
243
sudo chmod +x /usr/local/lib/docker/cli-plugins/docker-compose
233
244
234
245
echo " "
@@ -257,27 +268,97 @@ clear
257
268
# Setup project variables
258
269
# #########
259
270
echo " "
260
- echo " "
261
271
echo " ======================================================================="
262
272
echo " | Please enter project related variables..."
263
273
echo " ======================================================================="
264
274
echo " "
265
275
sleep 2
266
276
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
+
267
296
# 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
270
307
[ -z $domain_name ] && domain_name=" NULL"
271
308
host -N 0 $domain_name 2>&1 > /dev/null
272
309
while [ $? -ne 0 ]
273
310
do
274
311
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
276
322
[ -z $domain_name ] && domain_name=" NULL"
277
323
host -N 0 $domain_name 2>&1 > /dev/null
278
324
done
279
325
echo " Ok."
280
326
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
+
281
362
# set parameters in env.example file
282
363
email=" "
283
364
regex=" ^[a-zA-Z0-9\._-]+\@[a-zA-Z0-9._-]+\.[a-zA-Z]+\$ "
@@ -401,22 +482,23 @@ echo "Ok."
401
482
402
483
read -p " Apply changes (y/n)? " choice
403
484
case " $choice " in
404
- y|Y ) echo " Yes! Proceeding now..." ;;
485
+ y|Y ) clear ; echo " " ; echo " Yes! Proceeding now..." ;;
405
486
n|N ) echo " No! Aborting now..." ; exit 0;;
406
487
* ) echo " Invalid input! Aborting now..." ; exit 0;;
407
488
esac
408
489
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
411
492
412
- cp env.example .env
493
+ \ c p env.example .env
413
494
414
495
sed -i " s/db_authentication_password/${db_authentication_password} /" ./database/phpmyadmin/sql/create_tables.sql.template
415
496
sed -i " s|db_package_manager|${db_package_manager} |" .env
416
497
sed -i ' s/db_admin_commandline/' $db_admin_commandline ' /' .env
417
498
sed -i ' s/example.com/' $domain_name ' /' .env
418
499
sed -i ' s/example.com/' $domain_name ' /g' ./phpmyadmin/apache2/sites-available/default-ssl.conf
419
500
sed -i ' s/email@domain.com/' $email ' /' .env
501
+ sed -i " s/ssl_snippet/$ssl_snippet /" .env
420
502
sed -i ' s/which_db/' $which_db ' /g' .env
421
503
sed -i ' s/db_username/' $db_username ' /g' .env
422
504
sed -i ' s/db_password/' $db_password ' /g' .env
0 commit comments