|
@@ -1,12 +1,10 @@
|
1
|
1
|
#!/bin/bash
|
|
2
|
+# _____ _ _
|
|
3
|
+# | __|___ ___ ___ _| |___ _____| |_ ___ ___ ___
|
|
4
|
+# | __| _| -_| -_| . | . | | . | . | | -_|
|
|
5
|
+# |__| |_| |___|___|___|___|_|_|_|___|___|_|_|___|
|
2
|
6
|
#
|
3
|
|
-# .---. . .
|
4
|
|
-# | | |
|
5
|
|
-# |--- .--. .-. .-. .-.| .-. .--.--. |.-. .-. .--. .-.
|
6
|
|
-# | | (.-' (.-' ( | ( )| | | | )( )| | (.-'
|
7
|
|
-# ' ' --' --' -' - -' ' ' -' -' -' ' - --'
|
8
|
|
-#
|
9
|
|
-# Freedom in the Cloud
|
|
7
|
+# Freedom in the Cloud
|
10
|
8
|
#
|
11
|
9
|
# Command to create app templates
|
12
|
10
|
#
|
|
@@ -43,6 +41,7 @@ app_port=
|
43
|
41
|
app_port_internal=
|
44
|
42
|
app_daemon=
|
45
|
43
|
app_dir=
|
|
44
|
+app_webui=1
|
46
|
45
|
your_name=''
|
47
|
46
|
your_email=''
|
48
|
47
|
SHOW_ON_ABOUT=1
|
|
@@ -68,6 +67,7 @@ function show_help {
|
68
|
67
|
echo $' -p --php [yes|no] Is this a PHP app?'
|
69
|
68
|
echo $' -s --daemon [yes|no] Add a daemon'
|
70
|
69
|
echo $' -d --database [mariadb|postgresql] Type of database'
|
|
70
|
+ echo $' -w --web [yes|no] Whether there is a web user interface (default is yes)'
|
71
|
71
|
echo $' --dir [directory] Where to install to'
|
72
|
72
|
echo ''
|
73
|
73
|
exit 0
|
|
@@ -128,6 +128,12 @@ do
|
128
|
128
|
app_onion_only=1
|
129
|
129
|
fi
|
130
|
130
|
;;
|
|
131
|
+ -w|--web)
|
|
132
|
+ shift
|
|
133
|
+ if [[ "$1" == $'n'* || "$1" == $'N'* ]]; then
|
|
134
|
+ app_webui=
|
|
135
|
+ fi
|
|
136
|
+ ;;
|
131
|
137
|
--port)
|
132
|
138
|
shift
|
133
|
139
|
app_port="$1"
|
|
@@ -187,15 +193,21 @@ if [[ "$your_email" != *'@'* ]]; then
|
187
|
193
|
exit 8
|
188
|
194
|
fi
|
189
|
195
|
|
|
196
|
+if [ ! $app_webui ]; then
|
|
197
|
+ if [ ! "$app_dir" ]; then
|
|
198
|
+ app_dir=/etc/${app_name}
|
|
199
|
+ fi
|
|
200
|
+ app_php=
|
|
201
|
+fi
|
|
202
|
+
|
190
|
203
|
echo '#!/bin/bash'
|
191
|
204
|
echo '#'
|
192
|
|
-echo '# .---. . .'
|
193
|
|
-echo '# | | |'
|
194
|
|
-echo '# |--- .--. .-. .-. .-.| .-. .--.--. |.-. .-. .--. .-.'
|
195
|
|
-echo "# | | (.-' (.-' ( | ( )| | | | )( )| | (.-'"
|
196
|
|
-echo "# ' ' --' --' -' - -' ' ' -' -' -' ' - --'"
|
|
205
|
+echo '# _____ _ _'
|
|
206
|
+echo '# | __|___ ___ ___ _| |___ _____| |_ ___ ___ ___'
|
|
207
|
+echo '# | __| _| -_| -_| . | . | | . | . | | -_|'
|
|
208
|
+echo '# |__| |_| |___|___|___|___|_|_|_|___|___|_|_|___|'
|
197
|
209
|
echo '#'
|
198
|
|
-echo '# Freedom in the Cloud'
|
|
210
|
+echo '# Freedom in the Cloud'
|
199
|
211
|
echo '#'
|
200
|
212
|
echo '# License'
|
201
|
213
|
echo '# ======='
|
|
@@ -598,10 +610,13 @@ echo " if [ ! \"\$${app_name_upper}_DOMAIN_NAME\" ]; then"
|
598
|
610
|
echo " echo \$'No domain name was given'"
|
599
|
611
|
echo ' exit 3568356'
|
600
|
612
|
echo ' fi'
|
601
|
|
-echo ''
|
602
|
|
-echo " if [ -d \"/var/www/\$${app_name_upper}_DOMAIN_NAME/htdocs\" ]; then"
|
603
|
|
-echo " rm -rf \"/var/www/\$${app_name_upper}_DOMAIN_NAME/htdocs\""
|
604
|
|
-echo ' fi'
|
|
613
|
+
|
|
614
|
+if [ $app_webui ]; then
|
|
615
|
+ echo ''
|
|
616
|
+ echo " if [ -d \"/var/www/\$${app_name_upper}_DOMAIN_NAME/htdocs\" ]; then"
|
|
617
|
+ echo " rm -rf \"/var/www/\$${app_name_upper}_DOMAIN_NAME/htdocs\""
|
|
618
|
+ echo ' fi'
|
|
619
|
+fi
|
605
|
620
|
|
606
|
621
|
echo " if [ -d /repos/${app_name} ]; then"
|
607
|
622
|
echo " mkdir \"/var/www/\$${app_name_upper}_DOMAIN_NAME/htdocs\""
|
|
@@ -649,114 +664,118 @@ echo ''
|
649
|
664
|
echo " add_ddns_domain \"\$${app_name_upper}_DOMAIN_NAME\""
|
650
|
665
|
echo ''
|
651
|
666
|
echo " ${app_name_upper}_ONION_HOSTNAME=\$(add_onion_service ${app_name} 80 \${${app_name_upper}_ONION_PORT})"
|
652
|
|
-echo ''
|
653
|
|
-echo " ${app_name}_nginx_site=/etc/nginx/sites-available/\$${app_name_upper}_DOMAIN_NAME"
|
654
|
667
|
|
655
|
|
-if [ ! $app_onion_only ]; then
|
656
|
|
- echo " if [[ \"\$ONION_ONLY\" == \"no\" ]]; then"
|
657
|
|
- if [[ "$app_php" == 'yes' ]]; then
|
658
|
|
- echo " nginx_http_redirect \"\$${app_name_upper}_DOMAIN_NAME\" \"index index.php\""
|
|
668
|
+if [ $app_webui ]; then
|
|
669
|
+ echo ''
|
|
670
|
+ echo " ${app_name}_nginx_site=/etc/nginx/sites-available/\$${app_name_upper}_DOMAIN_NAME"
|
|
671
|
+
|
|
672
|
+ if [ ! $app_onion_only ]; then
|
|
673
|
+ echo " if [[ \"\$ONION_ONLY\" == \"no\" ]]; then"
|
|
674
|
+ if [[ "$app_php" == 'yes' ]]; then
|
|
675
|
+ echo " nginx_http_redirect \"\$${app_name_upper}_DOMAIN_NAME\" \"index index.php\""
|
|
676
|
+ else
|
|
677
|
+ echo " nginx_http_redirect \"\$${app_name_upper}_DOMAIN_NAME\" \"index index.html\""
|
|
678
|
+ fi
|
|
679
|
+ echo " { echo 'server {';"
|
|
680
|
+ echo " echo ' listen 443 ssl;';"
|
|
681
|
+ echo " echo ' #listen [::]:443 ssl;';"
|
|
682
|
+ echo " echo \" server_name \$${app_name_upper}_DOMAIN_NAME;\";"
|
|
683
|
+ echo " echo ''; } >> \"\$${app_name}_nginx_site\""
|
|
684
|
+ echo " nginx_compress \"\$${app_name_upper}_DOMAIN_NAME\""
|
|
685
|
+ echo " echo '' >> \"\$${app_name}_nginx_site\""
|
|
686
|
+ echo " echo ' # Security' >> \"\$${app_name}_nginx_site\""
|
|
687
|
+ echo " nginx_ssl \"\$${app_name_upper}_DOMAIN_NAME\""
|
|
688
|
+ echo ''
|
|
689
|
+ echo " nginx_security_options \"\$${app_name_upper}_DOMAIN_NAME\""
|
|
690
|
+ echo ''
|
|
691
|
+ echo " { echo ' add_header Strict-Transport-Security max-age=15768000;';"
|
|
692
|
+ echo " echo '';"
|
|
693
|
+ echo " echo ' # Logs';"
|
|
694
|
+ echo " echo ' access_log /dev/null;';"
|
|
695
|
+ echo " echo ' error_log /dev/null;';"
|
|
696
|
+ echo " echo '';"
|
|
697
|
+ echo " echo ' # Root';"
|
|
698
|
+ echo " echo \" root /var/www/\$${app_name_upper}_DOMAIN_NAME/htdocs;\";"
|
|
699
|
+ echo " echo '';"
|
|
700
|
+ if [[ "$app_php" == 'yes' ]]; then
|
|
701
|
+ echo " echo ' index index.php;';"
|
|
702
|
+ echo " echo ' location ~ \\.php {';"
|
|
703
|
+ echo " echo ' include snippets/fastcgi-php.conf;';"
|
|
704
|
+ echo " echo ' fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;';"
|
|
705
|
+ echo " echo ' fastcgi_read_timeout 30;';"
|
|
706
|
+ echo " echo ' fastcgi_param HTTPS on;';"
|
|
707
|
+ echo " echo ' }';"
|
|
708
|
+ echo " echo '';"
|
|
709
|
+ else
|
|
710
|
+ echo " echo ' index index.html;';"
|
|
711
|
+ fi
|
|
712
|
+ echo " echo ' # Location';"
|
|
713
|
+ echo " echo ' location / {'; } >> \"\$${app_name}_nginx_site\""
|
|
714
|
+ echo " nginx_limits \"\$${app_name_upper}_DOMAIN_NAME\" '15m'"
|
|
715
|
+ if [ ! $app_daemon ]; then
|
|
716
|
+ if [[ "$app_php" != 'yes' ]]; then
|
|
717
|
+ echo " { echo \" try_files \\\$uri \\\$uri/ /index.html;\";"
|
|
718
|
+ else
|
|
719
|
+ echo " { echo \" try_files \\\$uri \\\$uri/ /index.php?\\\$args;\";"
|
|
720
|
+ fi
|
|
721
|
+ else
|
|
722
|
+ echo " { echo \" proxy_pass http://localhost:\$${app_name_upper}_PORT_INTERNAL;\";"
|
|
723
|
+ fi
|
|
724
|
+ echo " echo ' }';"
|
|
725
|
+ echo " echo '}'; } >> \"\$${app_name}_nginx_site\""
|
|
726
|
+ echo ' else'
|
|
727
|
+ echo " echo -n '' > \"\$${app_name}_nginx_site\""
|
|
728
|
+ echo ' fi'
|
659
|
729
|
else
|
660
|
|
- echo " nginx_http_redirect \"\$${app_name_upper}_DOMAIN_NAME\" \"index index.html\""
|
|
730
|
+ echo " echo -n '' > \"\$${app_name}_nginx_site\""
|
661
|
731
|
fi
|
662
|
|
- echo " { echo 'server {';"
|
663
|
|
- echo " echo ' listen 443 ssl;';"
|
664
|
|
- echo " echo ' #listen [::]:443 ssl;';"
|
665
|
|
- echo " echo \" server_name \$${app_name_upper}_DOMAIN_NAME;\";"
|
666
|
|
- echo " echo ''; } >> \"\$${app_name}_nginx_site\""
|
667
|
|
- echo " nginx_compress \"\$${app_name_upper}_DOMAIN_NAME\""
|
668
|
|
- echo " echo '' >> \"\$${app_name}_nginx_site\""
|
669
|
|
- echo " echo ' # Security' >> \"\$${app_name}_nginx_site\""
|
670
|
|
- echo " nginx_ssl \"\$${app_name_upper}_DOMAIN_NAME\""
|
671
|
|
- echo ''
|
672
|
|
- echo " nginx_security_options \"\$${app_name_upper}_DOMAIN_NAME\""
|
673
|
|
- echo ''
|
674
|
|
- echo " { echo ' add_header Strict-Transport-Security max-age=15768000;';"
|
675
|
|
- echo " echo '';"
|
676
|
|
- echo " echo ' # Logs';"
|
677
|
|
- echo " echo ' access_log /dev/null;';"
|
678
|
|
- echo " echo ' error_log /dev/null;';"
|
679
|
|
- echo " echo '';"
|
680
|
|
- echo " echo ' # Root';"
|
681
|
|
- echo " echo \" root /var/www/\$${app_name_upper}_DOMAIN_NAME/htdocs;\";"
|
682
|
|
- echo " echo '';"
|
|
732
|
+ echo " { echo 'server {';"
|
|
733
|
+ echo " echo \" listen 127.0.0.1:\$${app_name_upper}_ONION_PORT default_server;\";"
|
|
734
|
+ echo " echo \" server_name \$${app_name_upper}_ONION_HOSTNAME;\";"
|
|
735
|
+ echo " echo ''; } >> \"\$${app_name}_nginx_site\""
|
|
736
|
+ echo " nginx_compress \"\$${app_name_upper}_DOMAIN_NAME\""
|
|
737
|
+ echo " echo '' >> \"\$${app_name}_nginx_site\""
|
|
738
|
+ echo " nginx_security_options \"\$${app_name_upper}_DOMAIN_NAME\""
|
|
739
|
+ echo " { echo '';"
|
|
740
|
+ echo " echo ' # Logs';"
|
|
741
|
+ echo " echo ' access_log /dev/null;';"
|
|
742
|
+ echo " echo ' error_log /dev/null;';"
|
|
743
|
+ echo " echo '';"
|
|
744
|
+ echo " echo ' # Root';"
|
|
745
|
+ echo " echo \" root /var/www/\$${app_name_upper}_DOMAIN_NAME/htdocs;\";"
|
|
746
|
+ echo " echo '';"
|
683
|
747
|
if [[ "$app_php" == 'yes' ]]; then
|
684
|
|
- echo " echo ' index index.php;';"
|
685
|
|
- echo " echo ' location ~ \\.php {';"
|
686
|
|
- echo " echo ' include snippets/fastcgi-php.conf;';"
|
687
|
|
- echo " echo ' fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;';"
|
688
|
|
- echo " echo ' fastcgi_read_timeout 30;';"
|
689
|
|
- echo " echo ' fastcgi_param HTTPS on;';"
|
690
|
|
- echo " echo ' }';"
|
691
|
|
- echo " echo '';"
|
|
748
|
+ echo " echo ' index index.php;';"
|
|
749
|
+ echo " echo ' location ~ \\.php {';"
|
|
750
|
+ echo " echo ' include snippets/fastcgi-php.conf;';"
|
|
751
|
+ echo " echo ' fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;';"
|
|
752
|
+ echo " echo ' fastcgi_read_timeout 30;';"
|
|
753
|
+ echo " echo ' fastcgi_param HTTPS off;';"
|
|
754
|
+ echo " echo ' }';"
|
|
755
|
+ echo " echo '';"
|
692
|
756
|
else
|
693
|
757
|
echo " echo ' index index.html;';"
|
694
|
758
|
fi
|
695
|
|
- echo " echo ' # Location';"
|
696
|
|
- echo " echo ' location / {'; } >> \"\$${app_name}_nginx_site\""
|
697
|
|
- echo " nginx_limits \"\$${app_name_upper}_DOMAIN_NAME\" '15m'"
|
|
759
|
+ echo " echo ' # Location';"
|
|
760
|
+ echo " echo ' location / {'; } >> \"\$${app_name}_nginx_site\""
|
|
761
|
+ echo " nginx_limits \"\$${app_name_upper}_DOMAIN_NAME\" '15m'"
|
698
|
762
|
if [ ! $app_daemon ]; then
|
699
|
763
|
if [[ "$app_php" != 'yes' ]]; then
|
700
|
|
- echo " { echo \" try_files \\\$uri \\\$uri/ /index.html;\";"
|
|
764
|
+ echo " { echo \" try_files \\\$uri \\\$uri/ index.html;\";"
|
701
|
765
|
else
|
702
|
|
- echo " { echo \" try_files \\\$uri \\\$uri/ /index.php?\\\$args;\";"
|
|
766
|
+ echo " { echo \" try_files \\\$uri \\\$uri/ index.php?\\\$args;\";"
|
703
|
767
|
fi
|
704
|
768
|
else
|
705
|
|
- echo " { echo \" proxy_pass http://localhost:\$${app_name_upper}_PORT_INTERNAL;\";"
|
|
769
|
+ echo " echo \" proxy_pass http://localhost:\$${app_name_upper}_PORT_INTERNAL;\";"
|
706
|
770
|
fi
|
707
|
|
- echo " echo ' }';"
|
708
|
|
- echo " echo '}'; } >> \"\$${app_name}_nginx_site\""
|
709
|
|
- echo ' else'
|
710
|
|
- echo " echo -n '' > \"\$${app_name}_nginx_site\""
|
711
|
|
- echo ' fi'
|
712
|
|
-else
|
713
|
|
- echo " echo -n '' > \"\$${app_name}_nginx_site\""
|
714
|
|
-fi
|
715
|
|
-echo " { echo 'server {';"
|
716
|
|
-echo " echo \" listen 127.0.0.1:\$${app_name_upper}_ONION_PORT default_server;\";"
|
717
|
|
-echo " echo \" server_name \$${app_name_upper}_ONION_HOSTNAME;\";"
|
718
|
|
-echo " echo ''; } >> \"\$${app_name}_nginx_site\""
|
719
|
|
-echo " nginx_compress \"\$${app_name_upper}_DOMAIN_NAME\""
|
720
|
|
-echo " echo '' >> \"\$${app_name}_nginx_site\""
|
721
|
|
-echo " nginx_security_options \"\$${app_name_upper}_DOMAIN_NAME\""
|
722
|
|
-echo " { echo '';"
|
723
|
|
-echo " echo ' # Logs';"
|
724
|
|
-echo " echo ' access_log /dev/null;';"
|
725
|
|
-echo " echo ' error_log /dev/null;';"
|
726
|
|
-echo " echo '';"
|
727
|
|
-echo " echo ' # Root';"
|
728
|
|
-echo " echo \" root /var/www/\$${app_name_upper}_DOMAIN_NAME/htdocs;\";"
|
729
|
|
-echo " echo '';"
|
730
|
|
-if [[ "$app_php" == 'yes' ]]; then
|
731
|
|
- echo " echo ' index index.php;';"
|
732
|
|
- echo " echo ' location ~ \\.php {';"
|
733
|
|
- echo " echo ' include snippets/fastcgi-php.conf;';"
|
734
|
|
- echo " echo ' fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;';"
|
735
|
|
- echo " echo ' fastcgi_read_timeout 30;';"
|
736
|
|
- echo " echo ' fastcgi_param HTTPS off;';"
|
737
|
771
|
echo " echo ' }';"
|
738
|
|
- echo " echo '';"
|
739
|
|
-else
|
740
|
|
- echo " echo ' index index.html;';"
|
741
|
|
-fi
|
742
|
|
-echo " echo ' # Location';"
|
743
|
|
-echo " echo ' location / {'; } >> \"\$${app_name}_nginx_site\""
|
744
|
|
-echo " nginx_limits \"\$${app_name_upper}_DOMAIN_NAME\" '15m'"
|
745
|
|
-if [ ! $app_daemon ]; then
|
746
|
|
- if [[ "$app_php" != 'yes' ]]; then
|
747
|
|
- echo " { echo \" try_files \\\$uri \\\$uri/ index.html;\";"
|
748
|
|
- else
|
749
|
|
- echo " { echo \" try_files \\\$uri \\\$uri/ index.php?\\\$args;\";"
|
|
772
|
+ echo " echo '}'; } >> \"\$${app_name}_nginx_site\""
|
|
773
|
+ if [[ "$app_php" == 'yes' ]]; then
|
|
774
|
+ echo ''
|
|
775
|
+ echo ' configure_php'
|
750
|
776
|
fi
|
751
|
|
-else
|
752
|
|
- echo " echo \" proxy_pass http://localhost:\$${app_name_upper}_PORT_INTERNAL;\";"
|
753
|
|
-fi
|
754
|
|
-echo " echo ' }';"
|
755
|
|
-echo " echo '}'; } >> \"\$${app_name}_nginx_site\""
|
756
|
|
-if [[ "$app_php" == 'yes' ]]; then
|
757
|
|
- echo ''
|
758
|
|
- echo ' configure_php'
|
759
|
777
|
fi
|
|
778
|
+
|
760
|
779
|
if [ $app_daemon ]; then
|
761
|
780
|
echo ''
|
762
|
781
|
echo " useradd -d \"TODO_PATH_TO_INSTALL\" -s /bin/false ${app_name}"
|