Template for apps without a web ui

This commit is contained in:
Bob Mottram 2018-04-08 12:00:45 +01:00
parent fb0aa4fba2
commit f5825cc2d6
1 changed files with 129 additions and 110 deletions

View File

@ -1,12 +1,10 @@
#!/bin/bash #!/bin/bash
# _____ _ _
# | __|___ ___ ___ _| |___ _____| |_ ___ ___ ___
# | __| _| -_| -_| . | . | | . | . | | -_|
# |__| |_| |___|___|___|___|_|_|_|___|___|_|_|___|
# #
# .---. . . # Freedom in the Cloud
# | | |
# |--- .--. .-. .-. .-.| .-. .--.--. |.-. .-. .--. .-.
# | | (.-' (.-' ( | ( )| | | | )( )| | (.-'
# ' ' --' --' -' - -' ' ' -' -' -' ' - --'
#
# Freedom in the Cloud
# #
# Command to create app templates # Command to create app templates
# #
@ -43,6 +41,7 @@ app_port=
app_port_internal= app_port_internal=
app_daemon= app_daemon=
app_dir= app_dir=
app_webui=1
your_name='' your_name=''
your_email='' your_email=''
SHOW_ON_ABOUT=1 SHOW_ON_ABOUT=1
@ -68,6 +67,7 @@ function show_help {
echo $' -p --php [yes|no] Is this a PHP app?' echo $' -p --php [yes|no] Is this a PHP app?'
echo $' -s --daemon [yes|no] Add a daemon' echo $' -s --daemon [yes|no] Add a daemon'
echo $' -d --database [mariadb|postgresql] Type of database' echo $' -d --database [mariadb|postgresql] Type of database'
echo $' -w --web [yes|no] Whether there is a web user interface (default is yes)'
echo $' --dir [directory] Where to install to' echo $' --dir [directory] Where to install to'
echo '' echo ''
exit 0 exit 0
@ -128,6 +128,12 @@ do
app_onion_only=1 app_onion_only=1
fi fi
;; ;;
-w|--web)
shift
if [[ "$1" == $'n'* || "$1" == $'N'* ]]; then
app_webui=
fi
;;
--port) --port)
shift shift
app_port="$1" app_port="$1"
@ -187,15 +193,21 @@ if [[ "$your_email" != *'@'* ]]; then
exit 8 exit 8
fi fi
if [ ! $app_webui ]; then
if [ ! "$app_dir" ]; then
app_dir=/etc/${app_name}
fi
app_php=
fi
echo '#!/bin/bash' echo '#!/bin/bash'
echo '#' echo '#'
echo '# .---. . .' echo '# _____ _ _'
echo '# | | |' echo '# | __|___ ___ ___ _| |___ _____| |_ ___ ___ ___'
echo '# |--- .--. .-. .-. .-.| .-. .--.--. |.-. .-. .--. .-.' echo '# | __| _| -_| -_| . | . | | . | . | | -_|'
echo "# | | (.-' (.-' ( | ( )| | | | )( )| | (.-'" echo '# |__| |_| |___|___|___|___|_|_|_|___|___|_|_|___|'
echo "# ' ' --' --' -' - -' ' ' -' -' -' ' - --'"
echo '#' echo '#'
echo '# Freedom in the Cloud' echo '# Freedom in the Cloud'
echo '#' echo '#'
echo '# License' echo '# License'
echo '# =======' echo '# ======='
@ -598,10 +610,13 @@ echo " if [ ! \"\$${app_name_upper}_DOMAIN_NAME\" ]; then"
echo " echo \$'No domain name was given'" echo " echo \$'No domain name was given'"
echo ' exit 3568356' echo ' exit 3568356'
echo ' fi' echo ' fi'
echo ''
echo " if [ -d \"/var/www/\$${app_name_upper}_DOMAIN_NAME/htdocs\" ]; then" if [ $app_webui ]; then
echo " rm -rf \"/var/www/\$${app_name_upper}_DOMAIN_NAME/htdocs\"" echo ''
echo ' fi' echo " if [ -d \"/var/www/\$${app_name_upper}_DOMAIN_NAME/htdocs\" ]; then"
echo " rm -rf \"/var/www/\$${app_name_upper}_DOMAIN_NAME/htdocs\""
echo ' fi'
fi
echo " if [ -d /repos/${app_name} ]; then" echo " if [ -d /repos/${app_name} ]; then"
echo " mkdir \"/var/www/\$${app_name_upper}_DOMAIN_NAME/htdocs\"" echo " mkdir \"/var/www/\$${app_name_upper}_DOMAIN_NAME/htdocs\""
@ -649,114 +664,118 @@ echo ''
echo " add_ddns_domain \"\$${app_name_upper}_DOMAIN_NAME\"" echo " add_ddns_domain \"\$${app_name_upper}_DOMAIN_NAME\""
echo '' echo ''
echo " ${app_name_upper}_ONION_HOSTNAME=\$(add_onion_service ${app_name} 80 \${${app_name_upper}_ONION_PORT})" echo " ${app_name_upper}_ONION_HOSTNAME=\$(add_onion_service ${app_name} 80 \${${app_name_upper}_ONION_PORT})"
echo ''
echo " ${app_name}_nginx_site=/etc/nginx/sites-available/\$${app_name_upper}_DOMAIN_NAME"
if [ ! $app_onion_only ]; then if [ $app_webui ]; then
echo " if [[ \"\$ONION_ONLY\" == \"no\" ]]; then"
if [[ "$app_php" == 'yes' ]]; then
echo " nginx_http_redirect \"\$${app_name_upper}_DOMAIN_NAME\" \"index index.php\""
else
echo " nginx_http_redirect \"\$${app_name_upper}_DOMAIN_NAME\" \"index index.html\""
fi
echo " { echo 'server {';"
echo " echo ' listen 443 ssl;';"
echo " echo ' #listen [::]:443 ssl;';"
echo " echo \" server_name \$${app_name_upper}_DOMAIN_NAME;\";"
echo " echo ''; } >> \"\$${app_name}_nginx_site\""
echo " nginx_compress \"\$${app_name_upper}_DOMAIN_NAME\""
echo " echo '' >> \"\$${app_name}_nginx_site\""
echo " echo ' # Security' >> \"\$${app_name}_nginx_site\""
echo " nginx_ssl \"\$${app_name_upper}_DOMAIN_NAME\""
echo '' echo ''
echo " nginx_security_options \"\$${app_name_upper}_DOMAIN_NAME\"" echo " ${app_name}_nginx_site=/etc/nginx/sites-available/\$${app_name_upper}_DOMAIN_NAME"
echo ''
echo " { echo ' add_header Strict-Transport-Security max-age=15768000;';" if [ ! $app_onion_only ]; then
echo " echo '';" echo " if [[ \"\$ONION_ONLY\" == \"no\" ]]; then"
echo " echo ' # Logs';" if [[ "$app_php" == 'yes' ]]; then
echo " echo ' access_log /dev/null;';" echo " nginx_http_redirect \"\$${app_name_upper}_DOMAIN_NAME\" \"index index.php\""
echo " echo ' error_log /dev/null;';" else
echo " echo '';" echo " nginx_http_redirect \"\$${app_name_upper}_DOMAIN_NAME\" \"index index.html\""
echo " echo ' # Root';" fi
echo " echo \" root /var/www/\$${app_name_upper}_DOMAIN_NAME/htdocs;\";" echo " { echo 'server {';"
echo " echo '';" echo " echo ' listen 443 ssl;';"
if [[ "$app_php" == 'yes' ]]; then echo " echo ' #listen [::]:443 ssl;';"
echo " echo ' index index.php;';" echo " echo \" server_name \$${app_name_upper}_DOMAIN_NAME;\";"
echo " echo ' location ~ \\.php {';" echo " echo ''; } >> \"\$${app_name}_nginx_site\""
echo " echo ' include snippets/fastcgi-php.conf;';" echo " nginx_compress \"\$${app_name_upper}_DOMAIN_NAME\""
echo " echo ' fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;';" echo " echo '' >> \"\$${app_name}_nginx_site\""
echo " echo ' fastcgi_read_timeout 30;';" echo " echo ' # Security' >> \"\$${app_name}_nginx_site\""
echo " echo ' fastcgi_param HTTPS on;';" echo " nginx_ssl \"\$${app_name_upper}_DOMAIN_NAME\""
echo " echo ' }';" echo ''
echo " nginx_security_options \"\$${app_name_upper}_DOMAIN_NAME\""
echo ''
echo " { echo ' add_header Strict-Transport-Security max-age=15768000;';"
echo " echo '';" echo " echo '';"
echo " echo ' # Logs';"
echo " echo ' access_log /dev/null;';"
echo " echo ' error_log /dev/null;';"
echo " echo '';"
echo " echo ' # Root';"
echo " echo \" root /var/www/\$${app_name_upper}_DOMAIN_NAME/htdocs;\";"
echo " echo '';"
if [[ "$app_php" == 'yes' ]]; then
echo " echo ' index index.php;';"
echo " echo ' location ~ \\.php {';"
echo " echo ' include snippets/fastcgi-php.conf;';"
echo " echo ' fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;';"
echo " echo ' fastcgi_read_timeout 30;';"
echo " echo ' fastcgi_param HTTPS on;';"
echo " echo ' }';"
echo " echo '';"
else
echo " echo ' index index.html;';"
fi
echo " echo ' # Location';"
echo " echo ' location / {'; } >> \"\$${app_name}_nginx_site\""
echo " nginx_limits \"\$${app_name_upper}_DOMAIN_NAME\" '15m'"
if [ ! $app_daemon ]; then
if [[ "$app_php" != 'yes' ]]; then
echo " { echo \" try_files \\\$uri \\\$uri/ /index.html;\";"
else
echo " { echo \" try_files \\\$uri \\\$uri/ /index.php?\\\$args;\";"
fi
else
echo " { echo \" proxy_pass http://localhost:\$${app_name_upper}_PORT_INTERNAL;\";"
fi
echo " echo ' }';"
echo " echo '}'; } >> \"\$${app_name}_nginx_site\""
echo ' else'
echo " echo -n '' > \"\$${app_name}_nginx_site\""
echo ' fi'
else
echo " echo -n '' > \"\$${app_name}_nginx_site\""
fi
echo " { echo 'server {';"
echo " echo \" listen 127.0.0.1:\$${app_name_upper}_ONION_PORT default_server;\";"
echo " echo \" server_name \$${app_name_upper}_ONION_HOSTNAME;\";"
echo " echo ''; } >> \"\$${app_name}_nginx_site\""
echo " nginx_compress \"\$${app_name_upper}_DOMAIN_NAME\""
echo " echo '' >> \"\$${app_name}_nginx_site\""
echo " nginx_security_options \"\$${app_name_upper}_DOMAIN_NAME\""
echo " { echo '';"
echo " echo ' # Logs';"
echo " echo ' access_log /dev/null;';"
echo " echo ' error_log /dev/null;';"
echo " echo '';"
echo " echo ' # Root';"
echo " echo \" root /var/www/\$${app_name_upper}_DOMAIN_NAME/htdocs;\";"
echo " echo '';"
if [[ "$app_php" == 'yes' ]]; then
echo " echo ' index index.php;';"
echo " echo ' location ~ \\.php {';"
echo " echo ' include snippets/fastcgi-php.conf;';"
echo " echo ' fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;';"
echo " echo ' fastcgi_read_timeout 30;';"
echo " echo ' fastcgi_param HTTPS off;';"
echo " echo ' }';"
echo " echo '';"
else else
echo " echo ' index index.html;';" echo " echo ' index index.html;';"
fi fi
echo " echo ' # Location';" echo " echo ' # Location';"
echo " echo ' location / {'; } >> \"\$${app_name}_nginx_site\"" echo " echo ' location / {'; } >> \"\$${app_name}_nginx_site\""
echo " nginx_limits \"\$${app_name_upper}_DOMAIN_NAME\" '15m'" echo " nginx_limits \"\$${app_name_upper}_DOMAIN_NAME\" '15m'"
if [ ! $app_daemon ]; then if [ ! $app_daemon ]; then
if [[ "$app_php" != 'yes' ]]; then if [[ "$app_php" != 'yes' ]]; then
echo " { echo \" try_files \\\$uri \\\$uri/ /index.html;\";" echo " { echo \" try_files \\\$uri \\\$uri/ index.html;\";"
else else
echo " { echo \" try_files \\\$uri \\\$uri/ /index.php?\\\$args;\";" echo " { echo \" try_files \\\$uri \\\$uri/ index.php?\\\$args;\";"
fi fi
else else
echo " { echo \" proxy_pass http://localhost:\$${app_name_upper}_PORT_INTERNAL;\";" echo " echo \" proxy_pass http://localhost:\$${app_name_upper}_PORT_INTERNAL;\";"
fi fi
echo " echo ' }';"
echo " echo '}'; } >> \"\$${app_name}_nginx_site\""
echo ' else'
echo " echo -n '' > \"\$${app_name}_nginx_site\""
echo ' fi'
else
echo " echo -n '' > \"\$${app_name}_nginx_site\""
fi
echo " { echo 'server {';"
echo " echo \" listen 127.0.0.1:\$${app_name_upper}_ONION_PORT default_server;\";"
echo " echo \" server_name \$${app_name_upper}_ONION_HOSTNAME;\";"
echo " echo ''; } >> \"\$${app_name}_nginx_site\""
echo " nginx_compress \"\$${app_name_upper}_DOMAIN_NAME\""
echo " echo '' >> \"\$${app_name}_nginx_site\""
echo " nginx_security_options \"\$${app_name_upper}_DOMAIN_NAME\""
echo " { echo '';"
echo " echo ' # Logs';"
echo " echo ' access_log /dev/null;';"
echo " echo ' error_log /dev/null;';"
echo " echo '';"
echo " echo ' # Root';"
echo " echo \" root /var/www/\$${app_name_upper}_DOMAIN_NAME/htdocs;\";"
echo " echo '';"
if [[ "$app_php" == 'yes' ]]; then
echo " echo ' index index.php;';"
echo " echo ' location ~ \\.php {';"
echo " echo ' include snippets/fastcgi-php.conf;';"
echo " echo ' fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;';"
echo " echo ' fastcgi_read_timeout 30;';"
echo " echo ' fastcgi_param HTTPS off;';"
echo " echo ' }';" echo " echo ' }';"
echo " echo '';" echo " echo '}'; } >> \"\$${app_name}_nginx_site\""
else if [[ "$app_php" == 'yes' ]]; then
echo " echo ' index index.html;';" echo ''
fi echo ' configure_php'
echo " echo ' # Location';"
echo " echo ' location / {'; } >> \"\$${app_name}_nginx_site\""
echo " nginx_limits \"\$${app_name_upper}_DOMAIN_NAME\" '15m'"
if [ ! $app_daemon ]; then
if [[ "$app_php" != 'yes' ]]; then
echo " { echo \" try_files \\\$uri \\\$uri/ index.html;\";"
else
echo " { echo \" try_files \\\$uri \\\$uri/ index.php?\\\$args;\";"
fi fi
else
echo " echo \" proxy_pass http://localhost:\$${app_name_upper}_PORT_INTERNAL;\";"
fi
echo " echo ' }';"
echo " echo '}'; } >> \"\$${app_name}_nginx_site\""
if [[ "$app_php" == 'yes' ]]; then
echo ''
echo ' configure_php'
fi fi
if [ $app_daemon ]; then if [ $app_daemon ]; then
echo '' echo ''
echo " useradd -d \"TODO_PATH_TO_INSTALL\" -s /bin/false ${app_name}" echo " useradd -d \"TODO_PATH_TO_INSTALL\" -s /bin/false ${app_name}"