Просмотр исходного кода

Support for apps only on onion addresses

Bob Mottram 7 лет назад
Родитель
Сommit
190d60d448
1 измененных файлов: 75 добавлений и 55 удалений
  1. 75
    55
      src/freedombone-template

+ 75
- 55
src/freedombone-template Просмотреть файл

@@ -38,6 +38,7 @@ app_repo="TODO"
38 38
 app_repo_commit='TODO'
39 39
 app_php=
40 40
 app_node=
41
+app_onion_only=
41 42
 app_port=''
42 43
 your_name=''
43 44
 your_email=''
@@ -59,6 +60,7 @@ function show_help {
59 60
     echo $'  -c --commit [hash]                   Git commit'
60 61
     echo $'     --port [number]                   Port number for the app'
61 62
     echo $'     --node [yes|no]                   Is this a nodejs app?'
63
+    echo $'  -o --onion [yes|no]                  Is this app only available on an onion address?'
62 64
     echo $'  -p --php [yes|no]                    Is this a PHP app?'
63 65
     echo $'  -d --database [mariadb|postgresql]   Type of database'
64 66
     echo ''
@@ -108,6 +110,12 @@ do
108 110
             shift
109 111
             app_node="$1"
110 112
             ;;
113
+        -o|--onion)
114
+            shift
115
+            if [[ "$1" == 'yes' ]]; then
116
+                app_onion_only=1
117
+            fi
118
+            ;;
111 119
         --port)
112 120
             shift
113 121
             app_port="$1"
@@ -191,6 +199,9 @@ echo "VARIANTS='full full-vim'"
191 199
 echo ''
192 200
 echo 'IN_DEFAULT_INSTALL=0'
193 201
 echo "SHOW_ON_ABOUT=${SHOW_ON_ABOUT}"
202
+if [ $app_onion_only ]; then
203
+    echo 'SHOW_ICANN_ADDRESS_ON_ABOUT=0'
204
+fi
194 205
 echo ''
195 206
 echo "${app_name_upper}_DOMAIN_NAME="
196 207
 echo "${app_name_upper}_CODE="
@@ -227,16 +238,20 @@ echo "    echo '0'"
227 238
 echo '}'
228 239
 echo ''
229 240
 echo "function install_interactive_${app_name} {"
230
-echo '    if [ ! $ONION_ONLY ]; then'
231
-echo "        ONION_ONLY='no'"
232
-echo '    fi'
233
-echo ''
234
-echo '    if [[ $ONION_ONLY != "no" ]]; then'
235
-echo "        ${app_name_upper}_DOMAIN_NAME='${app_name}.local'"
236
-echo "        write_config_param \"${app_name_upper}_DOMAIN_NAME\" \"\$${app_name_upper}_DOMAIN_NAME\""
237
-echo '    else'
238
-echo "        interactive_site_details \"${app_name}\" \"${app_name_upper}_DOMAIN_NAME\" \"${app_name}_CODE\""
239
-echo '    fi'
241
+if [ ! $app_onion_only ]; then
242
+    echo '    if [ ! $ONION_ONLY ]; then'
243
+    echo "        ONION_ONLY='no'"
244
+    echo '    fi'
245
+    echo ''
246
+    echo '    if [[ $ONION_ONLY != "no" ]]; then'
247
+    echo "        ${app_name_upper}_DOMAIN_NAME='${app_name}.local'"
248
+    echo "        write_config_param \"${app_name_upper}_DOMAIN_NAME\" \"\$${app_name_upper}_DOMAIN_NAME\""
249
+    echo '    else'
250
+    echo "        interactive_site_details \"${app_name}\" \"${app_name_upper}_DOMAIN_NAME\" \"${app_name}_CODE\""
251
+    echo '    fi'
252
+else
253
+    echo "    echo -n ''"
254
+fi
240 255
 echo '    APP_INSTALLED=1'
241 256
 echo '}'
242 257
 echo ''
@@ -541,7 +556,7 @@ echo ''
541 556
 echo "    chmod g+w /var/www/\$${app_name_upper}_DOMAIN_NAME/htdocs"
542 557
 echo "    chown -R www-data:www-data /var/www/\$${app_name_upper}_DOMAIN_NAME/htdocs"
543 558
 
544
-if [[ "$database_type" == "mariadb" || "$database_type" == "mysql" ]]; then
559
+if [[ "$database_type" == "mariadb" || "$database_type" == "mysql" || "$database_type" == "postgres"*  ]]; then
545 560
     echo ''
546 561
     echo "    ${app_name}_create_database"
547 562
 fi
@@ -551,53 +566,58 @@ echo ''
551 566
 echo "    ${app_name_upper}_ONION_HOSTNAME=\$(add_onion_service ${app_name} 80 \${${app_name_upper}_ONION_PORT})"
552 567
 echo ''
553 568
 echo "    ${app_name}_nginx_site=/etc/nginx/sites-available/\$${app_name_upper}_DOMAIN_NAME"
554
-echo '    if [[ $ONION_ONLY == "no" ]]; then'
555
-if [[ "$app_php" == 'yes' ]]; then
556
-    echo "        nginx_http_redirect \$${app_name_upper}_DOMAIN_NAME \"index index.php\""
557
-else
558
-    echo "        nginx_http_redirect \$${app_name_upper}_DOMAIN_NAME \"index index.html\""
559
-fi
560
-echo "        echo 'server {' >> \$${app_name}_nginx_site"
561
-echo "        echo '  listen 443 ssl;' >> \$${app_name}_nginx_site"
562
-echo "        echo '  listen [::]:443 ssl;' >> \$${app_name}_nginx_site"
563
-echo "        echo \"  server_name \$${app_name_upper}_DOMAIN_NAME;\" >> \$${app_name}_nginx_site"
564
-echo "        echo '' >> \$${app_name}_nginx_site"
565
-echo "        nginx_compress \$${app_name_upper}_DOMAIN_NAME"
566
-echo "        echo '' >> \$${app_name}_nginx_site"
567
-echo "        echo '  # Security' >> \$${app_name}_nginx_site"
568
-echo "        nginx_ssl \$${app_name_upper}_DOMAIN_NAME"
569
-echo ''
570
-echo "        nginx_disable_sniffing \$${app_name_upper}_DOMAIN_NAME"
571
-echo ''
572
-echo "        echo '  add_header Strict-Transport-Security max-age=15768000;' >> \$${app_name}_nginx_site"
573
-echo "        echo '' >> \$${app_name}_nginx_site"
574
-echo "        echo '  # Logs' >> \$${app_name}_nginx_site"
575
-echo "        echo '  access_log /dev/null;' >> \$${app_name}_nginx_site"
576
-echo "        echo '  error_log /dev/null;' >> \$${app_name}_nginx_site"
577
-echo "        echo '' >> \$${app_name}_nginx_site"
578
-echo "        echo '  # Root' >> \$${app_name}_nginx_site"
579
-echo "        echo \"  root /var/www/\$${app_name_upper}_DOMAIN_NAME/htdocs;\" >> \$${app_name}_nginx_site"
580
-echo "        echo '' >> \$${app_name}_nginx_site"
581
-if [[ "$app_php" == 'yes' ]]; then
582
-    echo "        echo '  index index.php;' >> \$${app_name}_nginx_site"
583
-    echo "        echo '  location ~ \.php {' >> \$${app_name}_nginx_site"
584
-    echo "        echo '    include snippets/fastcgi-php.conf;' >> \$${app_name}_nginx_site"
585
-    echo "        echo '    fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;' >> \$${app_name}_nginx_site"
586
-    echo "        echo '    fastcgi_read_timeout 30;' >> \$${app_name}_nginx_site"
587
-    echo "        echo '  }' >> \$${app_name}_nginx_site"
569
+
570
+if [ $app_onion_only ]; then
571
+    echo '    if [[ $ONION_ONLY == "no" ]]; then'
572
+    if [[ "$app_php" == 'yes' ]]; then
573
+        echo "        nginx_http_redirect \$${app_name_upper}_DOMAIN_NAME \"index index.php\""
574
+    else
575
+        echo "        nginx_http_redirect \$${app_name_upper}_DOMAIN_NAME \"index index.html\""
576
+    fi
577
+    echo "        echo 'server {' >> \$${app_name}_nginx_site"
578
+    echo "        echo '  listen 443 ssl;' >> \$${app_name}_nginx_site"
579
+    echo "        echo '  listen [::]:443 ssl;' >> \$${app_name}_nginx_site"
580
+    echo "        echo \"  server_name \$${app_name_upper}_DOMAIN_NAME;\" >> \$${app_name}_nginx_site"
581
+    echo "        echo '' >> \$${app_name}_nginx_site"
582
+    echo "        nginx_compress \$${app_name_upper}_DOMAIN_NAME"
583
+    echo "        echo '' >> \$${app_name}_nginx_site"
584
+    echo "        echo '  # Security' >> \$${app_name}_nginx_site"
585
+    echo "        nginx_ssl \$${app_name_upper}_DOMAIN_NAME"
586
+    echo ''
587
+    echo "        nginx_disable_sniffing \$${app_name_upper}_DOMAIN_NAME"
588
+    echo ''
589
+    echo "        echo '  add_header Strict-Transport-Security max-age=15768000;' >> \$${app_name}_nginx_site"
590
+    echo "        echo '' >> \$${app_name}_nginx_site"
591
+    echo "        echo '  # Logs' >> \$${app_name}_nginx_site"
592
+    echo "        echo '  access_log /dev/null;' >> \$${app_name}_nginx_site"
593
+    echo "        echo '  error_log /dev/null;' >> \$${app_name}_nginx_site"
588 594
     echo "        echo '' >> \$${app_name}_nginx_site"
595
+    echo "        echo '  # Root' >> \$${app_name}_nginx_site"
596
+    echo "        echo \"  root /var/www/\$${app_name_upper}_DOMAIN_NAME/htdocs;\" >> \$${app_name}_nginx_site"
597
+    echo "        echo '' >> \$${app_name}_nginx_site"
598
+    if [[ "$app_php" == 'yes' ]]; then
599
+        echo "        echo '  index index.php;' >> \$${app_name}_nginx_site"
600
+        echo "        echo '  location ~ \.php {' >> \$${app_name}_nginx_site"
601
+        echo "        echo '    include snippets/fastcgi-php.conf;' >> \$${app_name}_nginx_site"
602
+        echo "        echo '    fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;' >> \$${app_name}_nginx_site"
603
+        echo "        echo '    fastcgi_read_timeout 30;' >> \$${app_name}_nginx_site"
604
+        echo "        echo '  }' >> \$${app_name}_nginx_site"
605
+        echo "        echo '' >> \$${app_name}_nginx_site"
606
+    else
607
+        echo "        echo '  index index.html;' >> \$${app_name}_nginx_site"
608
+    fi
609
+    echo "        echo '  # Location' >> \$${app_name}_nginx_site"
610
+    echo "        echo '  location / {' >> \$${app_name}_nginx_site"
611
+    echo "        nginx_limits \$${app_name_upper}_DOMAIN_NAME '15m'"
612
+    echo "        echo '    try_files \$uri \$uri/ @${app_name};' >> \$${app_name}_nginx_site"
613
+    echo "        echo '  }' >> \$${app_name}_nginx_site"
614
+    echo "        echo '}' >> \$${app_name}_nginx_site"
615
+    echo '    else'
616
+    echo "        echo -n '' > \$${app_name}_nginx_site"
617
+    echo '    fi'
589 618
 else
590
-    echo "        echo '  index index.html;' >> \$${app_name}_nginx_site"
619
+    echo "    echo -n '' > \$${app_name}_nginx_site"
591 620
 fi
592
-echo "        echo '  # Location' >> \$${app_name}_nginx_site"
593
-echo "        echo '  location / {' >> \$${app_name}_nginx_site"
594
-echo "        nginx_limits \$${app_name_upper}_DOMAIN_NAME '15m'"
595
-echo "        echo '    try_files \$uri \$uri/ @${app_name};' >> \$${app_name}_nginx_site"
596
-echo "        echo '  }' >> \$${app_name}_nginx_site"
597
-echo "        echo '}' >> \$${app_name}_nginx_site"
598
-echo '    else'
599
-echo "        echo -n '' > \$${app_name}_nginx_site"
600
-echo '    fi'
601 621
 echo "    echo 'server {' >> \$${app_name}_nginx_site"
602 622
 echo "    echo \"    listen 127.0.0.1:\$${app_name_upper}_ONION_PORT default_server;\" >> \$${app_name}_nginx_site"
603 623
 echo "    echo \"    server_name \$${app_name_upper}_ONION_HOSTNAME;\" >> \$${app_name}_nginx_site"