|  | @@ -55,22 +55,22 @@ function show_help {
 | 
	
		
			
			| 55 | 55 |      echo $'Creates a new app script which can then be filled in'
 | 
	
		
			
			| 56 | 56 |      echo ''
 | 
	
		
			
			| 57 | 57 |      echo ''
 | 
	
		
			
			| 58 |  | -    echo $'  -h --help                            Show help'
 | 
	
		
			
			| 59 |  | -    echo $'  -a --app [name]                      Name of the application'
 | 
	
		
			
			| 60 |  | -    echo $'  -n --name [name]                     Your name'
 | 
	
		
			
			| 61 |  | -    echo $'  -e --email [address]                 Your email address'
 | 
	
		
			
			| 62 |  | -    echo $'  -r --repo [url]                      Git repo url for the app'
 | 
	
		
			
			| 63 |  | -    echo $'  -c --commit [hash]                   Git commit'
 | 
	
		
			
			| 64 |  | -    echo $'     --port [number]                   Port number for the app'
 | 
	
		
			
			| 65 |  | -    echo $'     --portinternal [number]           Internal port between a daemon and the web server'
 | 
	
		
			
			| 66 |  | -    echo $'     --node [yes|no]                   Is this a nodejs app?'
 | 
	
		
			
			| 67 |  | -    echo $'     --nodeapp [package]               Specify a nodejs package to install'
 | 
	
		
			
			| 68 |  | -    echo $'  -o --onion [yes|no]                  Is this app only available on an onion address?'
 | 
	
		
			
			| 69 |  | -    echo $'  -p --php [yes|no]                    Is this a PHP app?'
 | 
	
		
			
			| 70 |  | -    echo $'  -s --daemon [yes|no]                 Add a daemon'
 | 
	
		
			
			| 71 |  | -    echo $'  -d --database [mariadb|postgresql]   Type of database'
 | 
	
		
			
			| 72 |  | -    echo $'  -w --web [yes|no]                    Whether there is a web user interface (default is yes)'
 | 
	
		
			
			| 73 |  | -    echo $'     --dir [directory]                 Where to install to'
 | 
	
		
			
			|  | 58 | +    echo $'  -h --help                                   Show help'
 | 
	
		
			
			|  | 59 | +    echo $'  -a --app [name]                             Name of the application'
 | 
	
		
			
			|  | 60 | +    echo $'  -n --name [name]                            Your name'
 | 
	
		
			
			|  | 61 | +    echo $'  -e --email [address]                        Your email address'
 | 
	
		
			
			|  | 62 | +    echo $'  -r --repo [url]                             Git repo url for the app'
 | 
	
		
			
			|  | 63 | +    echo $'  -c --commit [hash]                          Git commit'
 | 
	
		
			
			|  | 64 | +    echo $'     --port [number]                          Port number for the app'
 | 
	
		
			
			|  | 65 | +    echo $'     --portinternal [number]                  Internal port between a daemon and the web server'
 | 
	
		
			
			|  | 66 | +    echo $'     --node [yes|no]                          Is this a nodejs app?'
 | 
	
		
			
			|  | 67 | +    echo $'     --nodeapp [package]                      Specify a nodejs package to install'
 | 
	
		
			
			|  | 68 | +    echo $'  -o --onion [yes|no]                         Is this app only available on an onion address?'
 | 
	
		
			
			|  | 69 | +    echo $'  -p --php [yes|no]                           Is this a PHP app?'
 | 
	
		
			
			|  | 70 | +    echo $'  -s --daemon [yes|no]                        Add a daemon'
 | 
	
		
			
			|  | 71 | +    echo $'  -d --database [mariadb|postgresql|mongodb]  Type of database'
 | 
	
		
			
			|  | 72 | +    echo $'  -w --web [yes|no]                           Whether there is a web user interface (default is yes)'
 | 
	
		
			
			|  | 73 | +    echo $'     --dir [directory]                        Where to install to'
 | 
	
		
			
			| 74 | 74 |      echo ''
 | 
	
		
			
			| 75 | 75 |      exit 0
 | 
	
		
			
			| 76 | 76 |  }
 | 
	
	
		
			
			|  | @@ -322,7 +322,7 @@ echo ''
 | 
	
		
			
			| 322 | 322 |  echo "    \"\${PROJECT_NAME}-pass\" -u \"\$curr_username\" -a ${app_name} -p \"\$new_user_password\""
 | 
	
		
			
			| 323 | 323 |  echo '}'
 | 
	
		
			
			| 324 | 324 |  
 | 
	
		
			
			| 325 |  | -if [[ "$database_type" == "mariadb" || "$database_type" == "mysql" || "$database_type" == "postgres"* ]]; then
 | 
	
		
			
			|  | 325 | +if [[ "$database_type" == "mariadb" || "$database_type" == "mysql" || "$database_type" == "postgres"* || "$database_type" == "mongo"* ]]; then
 | 
	
		
			
			| 326 | 326 |      echo ''
 | 
	
		
			
			| 327 | 327 |      echo "function ${app_name}_create_database {"
 | 
	
		
			
			| 328 | 328 |      echo "    if [ -f \$IMAGE_PASSWORD_FILE ]; then"
 | 
	
	
		
			
			|  | @@ -336,9 +336,13 @@ if [[ "$database_type" == "mariadb" || "$database_type" == "mysql" || "$database
 | 
	
		
			
			| 336 | 336 |      echo '        return'
 | 
	
		
			
			| 337 | 337 |      echo '    fi'
 | 
	
		
			
			| 338 | 338 |      echo ''
 | 
	
		
			
			| 339 |  | -    if [[ "$database_type" != "postgres"* ]]; then
 | 
	
		
			
			|  | 339 | +    if [[ "$database_type" = "mysql" || "$database_type" = "mariadb" ]]; then
 | 
	
		
			
			| 340 | 340 |          echo "    create_database ${app_name} \"\$${app_name_upper}_ADMIN_PASSWORD\" \$MY_USERNAME"
 | 
	
		
			
			| 341 |  | -    else
 | 
	
		
			
			|  | 341 | +    fi
 | 
	
		
			
			|  | 342 | +    if [[ "$database_type" = "mongo"* ]]; then
 | 
	
		
			
			|  | 343 | +        echo "    create_database_mongodb ${app_name} \"\$${app_name_upper}_ADMIN_PASSWORD\" \$MY_USERNAME"
 | 
	
		
			
			|  | 344 | +    fi
 | 
	
		
			
			|  | 345 | +    if [[ "$database_type" == "postgres"* ]]; then
 | 
	
		
			
			| 342 | 346 |          echo '    systemctl restart postgresql'
 | 
	
		
			
			| 343 | 347 |          echo "    run_system_query_postgresql \"CREATE USER peertube WITH PASSWORD '\$${app_name_upper}_ADMIN_PASSWORD';\""
 | 
	
		
			
			| 344 | 348 |          echo "    run_system_query_postgresql \"CREATE DATABASE ${app_name} OWNER ${app_name};\""
 | 
	
	
		
			
			|  | @@ -394,6 +398,9 @@ else
 | 
	
		
			
			| 394 | 398 |      echo "    set_repo_commit \"${app_dir}\" \"${app_name} commit\" \"\$${app_name_upper}_COMMIT\" \"\$${app_name_upper}_REPO\""
 | 
	
		
			
			| 395 | 399 |      echo "    chown -R ${app_name}:${app_name} \"${app_dir}\""
 | 
	
		
			
			| 396 | 400 |  fi
 | 
	
		
			
			|  | 401 | +if [ $app_daemon ]; then
 | 
	
		
			
			|  | 402 | +    echo "    systemctl restart ${app_name}"
 | 
	
		
			
			|  | 403 | +fi
 | 
	
		
			
			| 397 | 404 |  echo '}'
 | 
	
		
			
			| 398 | 405 |  echo ''
 | 
	
		
			
			| 399 | 406 |  echo "function backup_local_${app_name} {"
 | 
	
	
		
			
			|  | @@ -430,6 +437,11 @@ if [[ "$database_type" == "postgres"* ]]; then
 | 
	
		
			
			| 430 | 437 |      echo "    backup_database_to_usb ${app_name}"
 | 
	
		
			
			| 431 | 438 |      echo ''
 | 
	
		
			
			| 432 | 439 |  fi
 | 
	
		
			
			|  | 440 | +if [[ "$database_type" == "mongo"* ]]; then
 | 
	
		
			
			|  | 441 | +    echo '    USE_MONGODB=1'
 | 
	
		
			
			|  | 442 | +    echo "    backup_database_to_usb ${app_name}"
 | 
	
		
			
			|  | 443 | +    echo ''
 | 
	
		
			
			|  | 444 | +fi
 | 
	
		
			
			| 433 | 445 |  if [ $app_webui ]; then
 | 
	
		
			
			| 434 | 446 |      echo '    restart_site'
 | 
	
		
			
			| 435 | 447 |  fi
 | 
	
	
		
			
			|  | @@ -481,6 +493,16 @@ if [[ "$database_type" == "postgres"* ]]; then
 | 
	
		
			
			| 481 | 493 |      echo '    fi'
 | 
	
		
			
			| 482 | 494 |      echo ''
 | 
	
		
			
			| 483 | 495 |  fi
 | 
	
		
			
			|  | 496 | +if [[ "$database_type" == "mongo"* ]]; then
 | 
	
		
			
			|  | 497 | +    echo "    ${app_name}_create_database"
 | 
	
		
			
			|  | 498 | +    echo ''
 | 
	
		
			
			|  | 499 | +    echo '    USE_MONGODB=1'
 | 
	
		
			
			|  | 500 | +    echo "    restore_database ${app_name}"
 | 
	
		
			
			|  | 501 | +    echo "    if [ -d \$temp_restore_dir ]; then"
 | 
	
		
			
			|  | 502 | +    echo "        rm -rf \$temp_restore_dir"
 | 
	
		
			
			|  | 503 | +    echo '    fi'
 | 
	
		
			
			|  | 504 | +    echo ''
 | 
	
		
			
			|  | 505 | +fi
 | 
	
		
			
			| 484 | 506 |  echo "    restore_directory_from_usb \$temp_restore_dir ${app_name}"
 | 
	
		
			
			| 485 | 507 |  echo "    if [ -d \$temp_restore_dir ]; then"
 | 
	
		
			
			| 486 | 508 |  echo "        if [ -d \"\$temp_restore_dir\$${app_name}_dir\" ]; then"
 | 
	
	
		
			
			|  | @@ -539,6 +561,11 @@ if [[ "$database_type" == "postgres"* ]]; then
 | 
	
		
			
			| 539 | 561 |      echo "    backup_database_to_friend ${app_name}"
 | 
	
		
			
			| 540 | 562 |      echo ''
 | 
	
		
			
			| 541 | 563 |  fi
 | 
	
		
			
			|  | 564 | +if [[ "$database_type" == "mongo"* ]]; then
 | 
	
		
			
			|  | 565 | +    echo '    USE_MONGODB=1'
 | 
	
		
			
			|  | 566 | +    echo "    backup_database_to_friend ${app_name}"
 | 
	
		
			
			|  | 567 | +    echo ''
 | 
	
		
			
			|  | 568 | +fi
 | 
	
		
			
			| 542 | 569 |  if [ $app_daemon ]; then
 | 
	
		
			
			| 543 | 570 |      echo ''
 | 
	
		
			
			| 544 | 571 |      echo "    systemctl start ${app_name}"
 | 
	
	
		
			
			|  | @@ -592,6 +619,16 @@ if [[ "$database_type" == "postgres"* ]]; then
 | 
	
		
			
			| 592 | 619 |      echo '    fi'
 | 
	
		
			
			| 593 | 620 |      echo ''
 | 
	
		
			
			| 594 | 621 |  fi
 | 
	
		
			
			|  | 622 | +if [[ "$database_type" == "mongo"* ]]; then
 | 
	
		
			
			|  | 623 | +    echo "    ${app_name}_create_database"
 | 
	
		
			
			|  | 624 | +    echo ''
 | 
	
		
			
			|  | 625 | +    echo '    USE_MONGODB=1'
 | 
	
		
			
			|  | 626 | +    echo "    restore_database_from_friend ${app_name}"
 | 
	
		
			
			|  | 627 | +    echo "    if [ -d \"\$temp_restore_dir\" ]; then"
 | 
	
		
			
			|  | 628 | +    echo "        rm -rf \$temp_restore_dir"
 | 
	
		
			
			|  | 629 | +    echo '    fi'
 | 
	
		
			
			|  | 630 | +    echo ''
 | 
	
		
			
			|  | 631 | +fi
 | 
	
		
			
			| 595 | 632 |  echo "    restore_directory_from_friend \$temp_restore_dir ${app_name}"
 | 
	
		
			
			| 596 | 633 |  echo "    if [ -d \$temp_restore_dir ]; then"
 | 
	
		
			
			| 597 | 634 |  echo "        if [ -d \"\$temp_restore_dir\$${app_name}_dir\" ]; then"
 | 
	
	
		
			
			|  | @@ -655,6 +692,9 @@ fi
 | 
	
		
			
			| 655 | 692 |  if [[ "$database_type" == "postgres"* ]]; then
 | 
	
		
			
			| 656 | 693 |      echo "    drop_database_postgresql ${app_name}"
 | 
	
		
			
			| 657 | 694 |  fi
 | 
	
		
			
			|  | 695 | +if [[ "$database_type" == "mongo"* ]]; then
 | 
	
		
			
			|  | 696 | +    echo "    drop_database_mongodb ${app_name}"
 | 
	
		
			
			|  | 697 | +fi
 | 
	
		
			
			| 658 | 698 |  echo "    remove_onion_service ${app_name} \"\${${app_name_upper}_ONION_PORT}\""
 | 
	
		
			
			| 659 | 699 |  echo "    if grep -q \"${app_name}\" /etc/crontab; then"
 | 
	
		
			
			| 660 | 700 |  echo "        sed -i \"/${app_name}/d\" /etc/crontab"
 | 
	
	
		
			
			|  | @@ -683,6 +723,10 @@ if [[ "$database_type" == "postgres"* ]]; then
 | 
	
		
			
			| 683 | 723 |      echo '    install_postgresql'
 | 
	
		
			
			| 684 | 724 |      echo ''
 | 
	
		
			
			| 685 | 725 |  fi
 | 
	
		
			
			|  | 726 | +if [[ "$database_type" == "mongo"* ]]; then
 | 
	
		
			
			|  | 727 | +    echo '    install_mongodb'
 | 
	
		
			
			|  | 728 | +    echo ''
 | 
	
		
			
			|  | 729 | +fi
 | 
	
		
			
			| 686 | 730 |  if [[ "$app_node" == 'yes' ]]; then
 | 
	
		
			
			| 687 | 731 |      echo "    install_nodejs ${app_name}"
 | 
	
		
			
			| 688 | 732 |  fi
 | 
	
	
		
			
			|  | @@ -748,7 +792,7 @@ if [ $app_webui ]; then
 | 
	
		
			
			| 748 | 792 |      echo "    chown -R www-data:www-data \"/var/www/\$${app_name_upper}_DOMAIN_NAME/htdocs\""
 | 
	
		
			
			| 749 | 793 |  fi
 | 
	
		
			
			| 750 | 794 |  
 | 
	
		
			
			| 751 |  | -if [[ "$database_type" == "mariadb" || "$database_type" == "mysql" || "$database_type" == "postgres"*  ]]; then
 | 
	
		
			
			|  | 795 | +if [[ "$database_type" == "mariadb" || "$database_type" == "mysql" || "$database_type" == "postgres"* || "$database_type" == "mongo"*  ]]; then
 | 
	
		
			
			| 752 | 796 |      echo ''
 | 
	
		
			
			| 753 | 797 |      echo "    ${app_name}_create_database"
 | 
	
		
			
			| 754 | 798 |  fi
 | 
	
	
		
			
			|  | @@ -860,7 +904,7 @@ if [ $app_webui ]; then
 | 
	
		
			
			| 860 | 904 |              echo "    { echo \"    try_files \\\$uri \\\$uri/ index.php?\\\$args;\";"
 | 
	
		
			
			| 861 | 905 |          fi
 | 
	
		
			
			| 862 | 906 |      else
 | 
	
		
			
			| 863 |  | -        echo "      echo \"    proxy_pass http://localhost:\$${app_name_upper}_PORT_INTERNAL;\";"
 | 
	
		
			
			|  | 907 | +        echo "      { echo \"    proxy_pass http://localhost:\$${app_name_upper}_PORT_INTERNAL;\";"
 | 
	
		
			
			| 864 | 908 |      fi
 | 
	
		
			
			| 865 | 909 |      echo "      echo '  }';"
 | 
	
		
			
			| 866 | 910 |      echo "      echo '}'; } >> \"\$${app_name}_nginx_site\""
 |