Selaa lähdekoodia

Template for apps without a web ui

Bob Mottram 7 vuotta sitten
vanhempi
commit
f5825cc2d6
1 muutettua tiedostoa jossa 128 lisäystä ja 109 poistoa
  1. 128
    109
      src/freedombone-template

+ 128
- 109
src/freedombone-template Näytä tiedosto

1
 #!/bin/bash
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
 # Command to create app templates
9
 # Command to create app templates
12
 #
10
 #
43
 app_port_internal=
41
 app_port_internal=
44
 app_daemon=
42
 app_daemon=
45
 app_dir=
43
 app_dir=
44
+app_webui=1
46
 your_name=''
45
 your_name=''
47
 your_email=''
46
 your_email=''
48
 SHOW_ON_ABOUT=1
47
 SHOW_ON_ABOUT=1
68
     echo $'  -p --php [yes|no]                    Is this a PHP app?'
67
     echo $'  -p --php [yes|no]                    Is this a PHP app?'
69
     echo $'  -s --daemon [yes|no]                 Add a daemon'
68
     echo $'  -s --daemon [yes|no]                 Add a daemon'
70
     echo $'  -d --database [mariadb|postgresql]   Type of database'
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
     echo $'     --dir [directory]                 Where to install to'
71
     echo $'     --dir [directory]                 Where to install to'
72
     echo ''
72
     echo ''
73
     exit 0
73
     exit 0
128
                 app_onion_only=1
128
                 app_onion_only=1
129
             fi
129
             fi
130
             ;;
130
             ;;
131
+        -w|--web)
132
+            shift
133
+            if [[ "$1" == $'n'* || "$1" == $'N'* ]]; then
134
+                app_webui=
135
+            fi
136
+            ;;
131
         --port)
137
         --port)
132
             shift
138
             shift
133
             app_port="$1"
139
             app_port="$1"
187
     exit 8
193
     exit 8
188
 fi
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
 echo '#!/bin/bash'
203
 echo '#!/bin/bash'
191
 echo '#'
204
 echo '#'
192
-echo '# .---.                  .              .'
193
-echo '# |                      |              |'
194
-echo '# |--- .--. .-.  .-.  .-.|  .-. .--.--. |.-.  .-. .--.  .-.'
195
-echo "# |    |   (.-' (.-' (   | (   )|  |  | |   )(   )|  | (.-'"
196
-echo "# '    '     --'  --'  -' -  -' '  '   -' -'   -' '   -  --'"
205
+echo '#  _____               _           _'
206
+echo '# |   __|___ ___ ___ _| |___ _____| |_ ___ ___ ___'
207
+echo '# |   __|  _| -_| -_| . | . |     | . | . |   | -_|'
208
+echo '# |__|  |_| |___|___|___|___|_|_|_|___|___|_|_|___|'
197
 echo '#'
209
 echo '#'
198
-echo '#                    Freedom in the Cloud'
210
+echo '#                              Freedom in the Cloud'
199
 echo '#'
211
 echo '#'
200
 echo '# License'
212
 echo '# License'
201
 echo '# ======='
213
 echo '# ======='
598
 echo "        echo \$'No domain name was given'"
610
 echo "        echo \$'No domain name was given'"
599
 echo '        exit 3568356'
611
 echo '        exit 3568356'
600
 echo '    fi'
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
 echo "      if [ -d /repos/${app_name} ]; then"
621
 echo "      if [ -d /repos/${app_name} ]; then"
607
 echo "          mkdir \"/var/www/\$${app_name_upper}_DOMAIN_NAME/htdocs\""
622
 echo "          mkdir \"/var/www/\$${app_name_upper}_DOMAIN_NAME/htdocs\""
649
 echo "    add_ddns_domain \"\$${app_name_upper}_DOMAIN_NAME\""
664
 echo "    add_ddns_domain \"\$${app_name_upper}_DOMAIN_NAME\""
650
 echo ''
665
 echo ''
651
 echo "    ${app_name_upper}_ONION_HOSTNAME=\$(add_onion_service ${app_name} 80 \${${app_name_upper}_ONION_PORT})"
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
     else
729
     else
660
-        echo "        nginx_http_redirect \"\$${app_name_upper}_DOMAIN_NAME\" \"index index.html\""
730
+        echo "    echo -n '' > \"\$${app_name}_nginx_site\""
661
     fi
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
     if [[ "$app_php" == 'yes' ]]; then
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
     else
756
     else
693
         echo "        echo '  index index.html;';"
757
         echo "        echo '  index index.html;';"
694
     fi
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
     if [ ! $app_daemon ]; then
762
     if [ ! $app_daemon ]; then
699
         if [[ "$app_php" != 'yes' ]]; then
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
         else
765
         else
702
-            echo "        { echo \"    try_files \\\$uri \\\$uri/ /index.php?\\\$args;\";"
766
+            echo "    { echo \"    try_files \\\$uri \\\$uri/ index.php?\\\$args;\";"
703
         fi
767
         fi
704
     else
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
     fi
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
     echo "      echo '  }';"
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
     fi
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
 fi
777
 fi
778
+
760
 if [ $app_daemon ]; then
779
 if [ $app_daemon ]; then
761
     echo ''
780
     echo ''
762
     echo "    useradd -d \"TODO_PATH_TO_INSTALL\" -s /bin/false ${app_name}"
781
     echo "    useradd -d \"TODO_PATH_TO_INSTALL\" -s /bin/false ${app_name}"