| 
				
			 | 
			
			
				@@ -36,23 +36,20 @@ VARIANTS="full full-vim writer" 
			 | 
		
	
		
			
			| 
				36
			 | 
			
				36
			 | 
			
			
				 IN_DEFAULT_INSTALL=0 
			 | 
		
	
		
			
			| 
				37
			 | 
			
				37
			 | 
			
			
				 SHOW_ON_ABOUT=1 
			 | 
		
	
		
			
			| 
				38
			 | 
			
				38
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				39
			 | 
			
				
			 | 
			
			
				-TURTL_DOMAIN_NAME= 
			 | 
		
	
		
			
			| 
				40
			 | 
			
				
			 | 
			
			
				-TURTL_CODE= 
			 | 
		
	
		
			
			| 
				41
			 | 
			
				
			 | 
			
			
				-TURTL_ONION_PORT=8107 
			 | 
		
	
		
			
			| 
				42
			 | 
			
				
			 | 
			
			
				-TURTL_API_ONION_PORT=8108 
			 | 
		
	
		
			
			| 
				
			 | 
			
				39
			 | 
			
			
				+TURTL_API_DOMAIN_NAME= 
			 | 
		
	
		
			
			| 
				
			 | 
			
				40
			 | 
			
			
				+TURTL_API_CODE= 
			 | 
		
	
		
			
			| 
				
			 | 
			
				41
			 | 
			
			
				+TURTL_API_ONION_PORT=8107 
			 | 
		
	
		
			
			| 
				43
			 | 
			
				42
			 | 
			
			
				 TURTL_PORT=8181 
			 | 
		
	
		
			
			| 
				44
			 | 
			
				43
			 | 
			
			
				 TURTL_API_REPO="https://github.com/turtl/api.git" 
			 | 
		
	
		
			
			| 
				45
			 | 
			
				44
			 | 
			
			
				 TURTL_API_COMMIT='53e00a5583f52de8f86ef380fe11c176b5738dcf' 
			 | 
		
	
		
			
			| 
				46
			 | 
			
				
			 | 
			
			
				-TURTL_REPO="https://github.com/turtl/js.git" 
			 | 
		
	
		
			
			| 
				47
			 | 
			
				
			 | 
			
			
				-TURTL_COMMIT='61923ffb47d95d172f80d14c76aa032a4d5f5d6d' 
			 | 
		
	
		
			
			| 
				48
			 | 
			
				45
			 | 
			
			
				 TURTL_ADMIN_PASSWORD= 
			 | 
		
	
		
			
			| 
				49
			 | 
			
				46
			 | 
			
			
				 TURTL_STORAGE_LIMIT_MB=100 
			 | 
		
	
		
			
			| 
				50
			 | 
			
				47
			 | 
			
			
				 TURTL_BASE_DIR=/etc/turtl 
			 | 
		
	
		
			
			| 
				51
			 | 
			
				48
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				52
			 | 
			
				49
			 | 
			
			
				 turtl_variables=(ONION_ONLY 
			 | 
		
	
		
			
			| 
				53
			 | 
			
				50
			 | 
			
			
				                  DEFAULT_DOMAIN_NAME 
			 | 
		
	
		
			
			| 
				54
			 | 
			
				
			 | 
			
			
				-                 TURTL_DOMAIN_NAME 
			 | 
		
	
		
			
			| 
				55
			 | 
			
				
			 | 
			
			
				-                 TURTL_CODE 
			 | 
		
	
		
			
			| 
				
			 | 
			
				51
			 | 
			
			
				+                 TURTL_API_DOMAIN_NAME 
			 | 
		
	
		
			
			| 
				
			 | 
			
				52
			 | 
			
			
				+                 TURTL_API_CODE 
			 | 
		
	
		
			
			| 
				56
			 | 
			
				53
			 | 
			
			
				                  TURTL_STORAGE_LIMIT_MB 
			 | 
		
	
		
			
			| 
				57
			 | 
			
				54
			 | 
			
			
				                  DDNS_PROVIDER 
			 | 
		
	
		
			
			| 
				58
			 | 
			
				55
			 | 
			
			
				                  MY_EMAIL_ADDRESS 
			 | 
		
	
	
		
			
			| 
				
			 | 
			
			
				@@ -79,13 +76,11 @@ function install_interactive_turtl { 
			 | 
		
	
		
			
			| 
				79
			 | 
			
				76
			 | 
			
			
				     fi 
			 | 
		
	
		
			
			| 
				80
			 | 
			
				77
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				81
			 | 
			
				78
			 | 
			
			
				     if [[ $ONION_ONLY != "no" ]]; then 
			 | 
		
	
		
			
			| 
				82
			 | 
			
				
			 | 
			
			
				-        TURTL_DOMAIN_NAME='notes.local' 
			 | 
		
	
		
			
			| 
				83
			 | 
			
				
			 | 
			
			
				-        write_config_param "TURTL_DOMAIN_NAME" "$TURTL_DOMAIN_NAME" 
			 | 
		
	
		
			
			| 
				
			 | 
			
				79
			 | 
			
			
				+        TURTL_API_DOMAIN_NAME='notes.local' 
			 | 
		
	
		
			
			| 
				
			 | 
			
				80
			 | 
			
			
				+        write_config_param "TURTL_API_DOMAIN_NAME" "$TURTL_API_DOMAIN_NAME" 
			 | 
		
	
		
			
			| 
				84
			 | 
			
				81
			 | 
			
			
				     else 
			 | 
		
	
		
			
			| 
				85
			 | 
			
				82
			 | 
			
			
				         function_check interactive_site_details 
			 | 
		
	
		
			
			| 
				86
			 | 
			
				
			 | 
			
			
				-        interactive_site_details "turtl" "TURTL_DOMAIN_NAME" "TURTL_CODE" 
			 | 
		
	
		
			
			| 
				87
			 | 
			
				
			 | 
			
			
				-        write_config_param "API_TURTL_DOMAIN_NAME" "api.${TURTL_DOMAIN_NAME}" 
			 | 
		
	
		
			
			| 
				88
			 | 
			
				
			 | 
			
			
				-        write_config_param "API_TURTL_CODE" "${TURTL_CODE}" 
			 | 
		
	
		
			
			| 
				
			 | 
			
				83
			 | 
			
			
				+        interactive_site_details "turtl" "TURTL_API_DOMAIN_NAME" "TURTL_API_CODE" 
			 | 
		
	
		
			
			| 
				89
			 | 
			
				84
			 | 
			
			
				     fi 
			 | 
		
	
		
			
			| 
				90
			 | 
			
				85
			 | 
			
			
				     APP_INSTALLED=1 
			 | 
		
	
		
			
			| 
				91
			 | 
			
				86
			 | 
			
			
				 } 
			 | 
		
	
	
		
			
			| 
				
			 | 
			
			
				@@ -113,39 +108,28 @@ function configure_interactive_turtl { 
			 | 
		
	
		
			
			| 
				113
			 | 
			
				108
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				114
			 | 
			
				109
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				115
			 | 
			
				110
			 | 
			
			
				 function reconfigure_turtl { 
			 | 
		
	
		
			
			| 
				116
			 | 
			
				
			 | 
			
			
				-    if [ -d /var/www/${TURTL_DOMAIN_NAME}/htdocs/data ]; then 
			 | 
		
	
		
			
			| 
				117
			 | 
			
				
			 | 
			
			
				-        rm -rf /var/www/${TURTL_DOMAIN_NAME}/htdocs/data/* 
			 | 
		
	
		
			
			| 
				
			 | 
			
				111
			 | 
			
			
				+    if [ -d $TURTL_BASE_DIR/data ]; then 
			 | 
		
	
		
			
			| 
				
			 | 
			
				112
			 | 
			
			
				+        rm -rf $TURTL_BASE_DIR/data/* 
			 | 
		
	
		
			
			| 
				118
			 | 
			
				113
			 | 
			
			
				     fi 
			 | 
		
	
		
			
			| 
				119
			 | 
			
				114
			 | 
			
			
				 } 
			 | 
		
	
		
			
			| 
				120
			 | 
			
				115
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				121
			 | 
			
				116
			 | 
			
			
				 function upgrade_turtl { 
			 | 
		
	
		
			
			| 
				122
			 | 
			
				
			 | 
			
			
				-    read_config_param "TURTL_DOMAIN_NAME" 
			 | 
		
	
		
			
			| 
				
			 | 
			
				117
			 | 
			
			
				+    read_config_param "TURTL_API_DOMAIN_NAME" 
			 | 
		
	
		
			
			| 
				123
			 | 
			
				118
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				124
			 | 
			
				119
			 | 
			
			
				     function_check set_repo_commit 
			 | 
		
	
		
			
			| 
				125
			 | 
			
				
			 | 
			
			
				-    set_repo_commit /var/www/$TURTL_DOMAIN_NAME/htdocs "turtl commit" "$TURTL_COMMIT" $TURTL_REPO 
			 | 
		
	
		
			
			| 
				126
			 | 
			
				120
			 | 
			
			
				     set_repo_commit $TURTL_BASE_DIR/api "turtl api commit" "$TURTL_API_COMMIT" $TURTL_API_REPO 
			 | 
		
	
		
			
			| 
				127
			 | 
			
				
			 | 
			
			
				-    nginx_dissite $TURTL_DOMAIN_NAME 
			 | 
		
	
		
			
			| 
				128
			 | 
			
				
			 | 
			
			
				-    cd /var/www/$TURTL_DOMAIN_NAME/htdocs 
			 | 
		
	
		
			
			| 
				129
			 | 
			
				
			 | 
			
			
				-    rm -rf node_modules npm-shrinkwrap.json 
			 | 
		
	
		
			
			| 
				130
			 | 
			
				
			 | 
			
			
				-    npm install uglify@0.1.5 --no-optional 
			 | 
		
	
		
			
			| 
				131
			 | 
			
				
			 | 
			
			
				-    npm install minimatch@3.0.2 --no-optional 
			 | 
		
	
		
			
			| 
				132
			 | 
			
				
			 | 
			
			
				-    npm install --no-optional 
			 | 
		
	
		
			
			| 
				133
			 | 
			
				
			 | 
			
			
				-    sed -i 's|{config,controllers,handlers,locales,library,models,turtl}|.|g' Makefile 
			 | 
		
	
		
			
			| 
				134
			 | 
			
				
			 | 
			
			
				-    sed -i 's|tests/{data,tests}|tests|g' Makefile 
			 | 
		
	
		
			
			| 
				135
			 | 
			
				
			 | 
			
			
				-    make clean 
			 | 
		
	
		
			
			| 
				136
			 | 
			
				
			 | 
			
			
				-    make 
			 | 
		
	
		
			
			| 
				
			 | 
			
				121
			 | 
			
			
				+    nginx_dissite $TURTL_API_DOMAIN_NAME 
			 | 
		
	
		
			
			| 
				137
			 | 
			
				122
			 | 
			
			
				     chown -R turtl:turtl $TURTL_BASE_DIR 
			 | 
		
	
		
			
			| 
				138
			 | 
			
				
			 | 
			
			
				-    chown -R turtl:turtl /var/www/$TURTL_DOMAIN_NAME/htdocs 
			 | 
		
	
		
			
			| 
				139
			 | 
			
				
			 | 
			
			
				-    nginx_ensite $TURTL_DOMAIN_NAME 
			 | 
		
	
		
			
			| 
				
			 | 
			
				123
			 | 
			
			
				+    nginx_ensite $TURTL_API_DOMAIN_NAME 
			 | 
		
	
		
			
			| 
				140
			 | 
			
				124
			 | 
			
			
				 } 
			 | 
		
	
		
			
			| 
				141
			 | 
			
				125
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				142
			 | 
			
				126
			 | 
			
			
				 function backup_local_turtl { 
			 | 
		
	
		
			
			| 
				143
			 | 
			
				
			 | 
			
			
				-    read_config_param "TURTL_DOMAIN_NAME" 
			 | 
		
	
		
			
			| 
				144
			 | 
			
				
			 | 
			
			
				-    source_directory=/var/www/${TURTL_DOMAIN_NAME}/htdocs 
			 | 
		
	
		
			
			| 
				
			 | 
			
				127
			 | 
			
			
				+    read_config_param "TURTL_API_DOMAIN_NAME" 
			 | 
		
	
		
			
			| 
				
			 | 
			
				128
			 | 
			
			
				+    source_directory=$TURTL_BASE_DIR 
			 | 
		
	
		
			
			| 
				145
			 | 
			
				129
			 | 
			
			
				     if [ -d $source_directory ]; then 
			 | 
		
	
		
			
			| 
				146
			 | 
			
				130
			 | 
			
			
				         dest_directory=turtl 
			 | 
		
	
		
			
			| 
				147
			 | 
			
				131
			 | 
			
			
				         function_check suspend_site 
			 | 
		
	
		
			
			| 
				148
			 | 
			
				
			 | 
			
			
				-        suspend_site ${TURTL_DOMAIN_NAME} 
			 | 
		
	
		
			
			| 
				
			 | 
			
				132
			 | 
			
			
				+        suspend_site ${TURTL_API_DOMAIN_NAME} 
			 | 
		
	
		
			
			| 
				149
			 | 
			
				133
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				150
			 | 
			
				134
			 | 
			
			
				         function_check backup_directory_to_usb 
			 | 
		
	
		
			
			| 
				151
			 | 
			
				135
			 | 
			
			
				         backup_directory_to_usb $source_directory $dest_directory 
			 | 
		
	
	
		
			
			| 
				
			 | 
			
			
				@@ -157,7 +141,7 @@ function backup_local_turtl { 
			 | 
		
	
		
			
			| 
				157
			 | 
			
				141
			 | 
			
			
				     if [ -d $source_directory ]; then 
			 | 
		
	
		
			
			| 
				158
			 | 
			
				142
			 | 
			
			
				         dest_directory=rethinkdb 
			 | 
		
	
		
			
			| 
				159
			 | 
			
				143
			 | 
			
			
				         function_check suspend_site 
			 | 
		
	
		
			
			| 
				160
			 | 
			
				
			 | 
			
			
				-        suspend_site ${TURTL_DOMAIN_NAME} 
			 | 
		
	
		
			
			| 
				
			 | 
			
				144
			 | 
			
			
				+        suspend_site ${TURTL_API_DOMAIN_NAME} 
			 | 
		
	
		
			
			| 
				161
			 | 
			
				145
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				162
			 | 
			
				146
			 | 
			
			
				         function_check backup_directory_to_usb 
			 | 
		
	
		
			
			| 
				163
			 | 
			
				147
			 | 
			
			
				         backup_directory_to_usb $source_directory $dest_directory 
			 | 
		
	
	
		
			
			| 
				
			 | 
			
			
				@@ -168,28 +152,28 @@ function backup_local_turtl { 
			 | 
		
	
		
			
			| 
				168
			 | 
			
				152
			 | 
			
			
				 } 
			 | 
		
	
		
			
			| 
				169
			 | 
			
				153
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				170
			 | 
			
				154
			 | 
			
			
				 function restore_local_turtl { 
			 | 
		
	
		
			
			| 
				171
			 | 
			
				
			 | 
			
			
				-    read_config_param "TURTL_DOMAIN_NAME" 
			 | 
		
	
		
			
			| 
				172
			 | 
			
				
			 | 
			
			
				-    if [ $TURTL_DOMAIN_NAME ]; then 
			 | 
		
	
		
			
			| 
				
			 | 
			
				155
			 | 
			
			
				+    read_config_param "TURTL_API_DOMAIN_NAME" 
			 | 
		
	
		
			
			| 
				
			 | 
			
				156
			 | 
			
			
				+    if [ $TURTL_API_DOMAIN_NAME ]; then 
			 | 
		
	
		
			
			| 
				173
			 | 
			
				157
			 | 
			
			
				         temp_restore_dir=/root/tempturtl 
			 | 
		
	
		
			
			| 
				174
			 | 
			
				158
			 | 
			
			
				         restore_directory_from_usb $temp_restore_dir turtl 
			 | 
		
	
		
			
			| 
				175
			 | 
			
				
			 | 
			
			
				-        if [ -d /var/www/${TURTL_DOMAIN_NAME}/htdocs ]; then 
			 | 
		
	
		
			
			| 
				176
			 | 
			
				
			 | 
			
			
				-            if [ -d /var/www/${TURTL_DOMAIN_NAME}/previous ]; then 
			 | 
		
	
		
			
			| 
				177
			 | 
			
				
			 | 
			
			
				-                rm -rf /var/www/${TURTL_DOMAIN_NAME}/previous 
			 | 
		
	
		
			
			| 
				
			 | 
			
				159
			 | 
			
			
				+        if [ -d $TURTL_BASE_DIR ]; then 
			 | 
		
	
		
			
			| 
				
			 | 
			
				160
			 | 
			
			
				+            if [ -d /etc/turtl_previous ]; then 
			 | 
		
	
		
			
			| 
				
			 | 
			
				161
			 | 
			
			
				+                rm -rf /etc/turtl_previous 
			 | 
		
	
		
			
			| 
				178
			 | 
			
				162
			 | 
			
			
				             fi 
			 | 
		
	
		
			
			| 
				179
			 | 
			
				
			 | 
			
			
				-            mv /var/www/${TURTL_DOMAIN_NAME}/htdocs /var/www/${TURTL_DOMAIN_NAME}/previous 
			 | 
		
	
		
			
			| 
				
			 | 
			
				163
			 | 
			
			
				+            mv $TURTL_BASE_DIR /etc/turtl_previous 
			 | 
		
	
		
			
			| 
				180
			 | 
			
				164
			 | 
			
			
				         fi 
			 | 
		
	
		
			
			| 
				181
			 | 
			
				
			 | 
			
			
				-        temp_source_dir=$(find ${temp_restore_dir} -name htdocs) 
			 | 
		
	
		
			
			| 
				182
			 | 
			
				
			 | 
			
			
				-        cp -r ${temp_source_dir} /var/www/${TURTL_DOMAIN_NAME}/ 
			 | 
		
	
		
			
			| 
				
			 | 
			
				165
			 | 
			
			
				+        temp_source_dir=$(find ${temp_restore_dir} -name turtl) 
			 | 
		
	
		
			
			| 
				
			 | 
			
				166
			 | 
			
			
				+        cp -r ${temp_source_dir} /etc/ 
			 | 
		
	
		
			
			| 
				183
			 | 
			
				167
			 | 
			
			
				         if [ ! "$?" = "0" ]; then 
			 | 
		
	
		
			
			| 
				184
			 | 
			
				
			 | 
			
			
				-            if [ -d /var/www/${TURTL_DOMAIN_NAME}/previous ]; then 
			 | 
		
	
		
			
			| 
				185
			 | 
			
				
			 | 
			
			
				-                mv /var/www/${TURTL_DOMAIN_NAME}/previous /var/www/${TURTL_DOMAIN_NAME}/htdocs 
			 | 
		
	
		
			
			| 
				
			 | 
			
				168
			 | 
			
			
				+            if [ -d /etc/turtl_previous ]; then 
			 | 
		
	
		
			
			| 
				
			 | 
			
				169
			 | 
			
			
				+                mv /etc/turtl_previous $TURTL_BASE_DIR 
			 | 
		
	
		
			
			| 
				186
			 | 
			
				170
			 | 
			
			
				             fi 
			 | 
		
	
		
			
			| 
				187
			 | 
			
				171
			 | 
			
			
				             set_user_permissions 
			 | 
		
	
		
			
			| 
				188
			 | 
			
				172
			 | 
			
			
				             backup_unmount_drive 
			 | 
		
	
		
			
			| 
				189
			 | 
			
				173
			 | 
			
			
				             exit 36723 
			 | 
		
	
		
			
			| 
				190
			 | 
			
				174
			 | 
			
			
				         fi 
			 | 
		
	
		
			
			| 
				191
			 | 
			
				175
			 | 
			
			
				         rm -rf ${temp_restore_dir} 
			 | 
		
	
		
			
			| 
				192
			 | 
			
				
			 | 
			
			
				-        chown -R turtl:turtl /var/www/${TURTL_DOMAIN_NAME}/htdocs 
			 | 
		
	
		
			
			| 
				
			 | 
			
				176
			 | 
			
			
				+        chown -R turtl:turtl $TURTL_BASE_DIR 
			 | 
		
	
		
			
			| 
				193
			 | 
			
				177
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				194
			 | 
			
				178
			 | 
			
			
				         temp_restore_dir=/root/temprethinkdb 
			 | 
		
	
		
			
			| 
				195
			 | 
			
				179
			 | 
			
			
				         restore_directory_from_usb $temp_restore_dir rethinkdb 
			 | 
		
	
	
		
			
			| 
				
			 | 
			
			
				@@ -214,9 +198,9 @@ function restore_local_turtl { 
			 | 
		
	
		
			
			| 
				214
			 | 
			
				198
			 | 
			
			
				 } 
			 | 
		
	
		
			
			| 
				215
			 | 
			
				199
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				216
			 | 
			
				200
			 | 
			
			
				 function backup_remote_turtl { 
			 | 
		
	
		
			
			| 
				217
			 | 
			
				
			 | 
			
			
				-    read_config_param "TURTL_DOMAIN_NAME" 
			 | 
		
	
		
			
			| 
				218
			 | 
			
				
			 | 
			
			
				-    if [ $TURTL_DOMAIN_NAME ]; then 
			 | 
		
	
		
			
			| 
				219
			 | 
			
				
			 | 
			
			
				-        temp_backup_dir=/var/www/${TURTL_DOMAIN_NAME}/htdocs 
			 | 
		
	
		
			
			| 
				
			 | 
			
				201
			 | 
			
			
				+    read_config_param "TURTL_API_DOMAIN_NAME" 
			 | 
		
	
		
			
			| 
				
			 | 
			
				202
			 | 
			
			
				+    if [ $TURTL_API_DOMAIN_NAME ]; then 
			 | 
		
	
		
			
			| 
				
			 | 
			
				203
			 | 
			
			
				+        temp_backup_dir=$TURTL_BASE_DIR 
			 | 
		
	
		
			
			| 
				220
			 | 
			
				204
			 | 
			
			
				         if [ -d $temp_backup_dir ]; then 
			 | 
		
	
		
			
			| 
				221
			 | 
			
				205
			 | 
			
			
				             echo $"Backing up turtl" 
			 | 
		
	
		
			
			| 
				222
			 | 
			
				206
			 | 
			
			
				             backup_directory_to_friend $temp_backup_dir turtl 
			 | 
		
	
	
		
			
			| 
				
			 | 
			
			
				@@ -236,29 +220,28 @@ function backup_remote_turtl { 
			 | 
		
	
		
			
			| 
				236
			 | 
			
				220
			 | 
			
			
				 } 
			 | 
		
	
		
			
			| 
				237
			 | 
			
				221
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				238
			 | 
			
				222
			 | 
			
			
				 function restore_remote_turtl { 
			 | 
		
	
		
			
			| 
				239
			 | 
			
				
			 | 
			
			
				-    read_config_param "TURTL_DOMAIN_NAME" 
			 | 
		
	
		
			
			| 
				240
			 | 
			
				
			 | 
			
			
				-    if [ $TURTL_DOMAIN_NAME ]; then 
			 | 
		
	
		
			
			| 
				
			 | 
			
				223
			 | 
			
			
				+    read_config_param "TURTL_API_DOMAIN_NAME" 
			 | 
		
	
		
			
			| 
				
			 | 
			
				224
			 | 
			
			
				+    if [ $TURTL_API_DOMAIN_NAME ]; then 
			 | 
		
	
		
			
			| 
				241
			 | 
			
				225
			 | 
			
			
				         temp_restore_dir=/root/tempturtl 
			 | 
		
	
		
			
			| 
				242
			 | 
			
				226
			 | 
			
			
				         mkdir $temp_restore_dir 
			 | 
		
	
		
			
			| 
				243
			 | 
			
				227
			 | 
			
			
				         function_check restore_directory_from_friend 
			 | 
		
	
		
			
			| 
				244
			 | 
			
				228
			 | 
			
			
				         restore_directory_from_friend $temp_restore_dir turtl 
			 | 
		
	
		
			
			| 
				245
			 | 
			
				
			 | 
			
			
				-        if [ -d /var/www/${TURTL_DOMAIN_NAME}/htdocs ]; then 
			 | 
		
	
		
			
			| 
				246
			 | 
			
				
			 | 
			
			
				-            if [ -d /var/www/${TURTL_DOMAIN_NAME}/previous ]; then 
			 | 
		
	
		
			
			| 
				247
			 | 
			
				
			 | 
			
			
				-                rm -rf /var/www/${TURTL_DOMAIN_NAME}/previous 
			 | 
		
	
		
			
			| 
				
			 | 
			
				229
			 | 
			
			
				+        if [ -d $TURTL_BASE_DIR ]; then 
			 | 
		
	
		
			
			| 
				
			 | 
			
				230
			 | 
			
			
				+            if [ -d /etc/turtl_previous ]; then 
			 | 
		
	
		
			
			| 
				
			 | 
			
				231
			 | 
			
			
				+                rm -rf /etc/turtl_previous 
			 | 
		
	
		
			
			| 
				248
			 | 
			
				232
			 | 
			
			
				             fi 
			 | 
		
	
		
			
			| 
				249
			 | 
			
				
			 | 
			
			
				-            mv /var/www/${TURTL_DOMAIN_NAME}/htdocs /var/www/${TURTL_DOMAIN_NAME}/previous 
			 | 
		
	
		
			
			| 
				
			 | 
			
				233
			 | 
			
			
				+            mv $TURTL_BASE_DIR /etc/turtl_previous 
			 | 
		
	
		
			
			| 
				250
			 | 
			
				234
			 | 
			
			
				         fi 
			 | 
		
	
		
			
			| 
				251
			 | 
			
				
			 | 
			
			
				-        temp_source_dir=$(find ${temp_restore_dir} -name htdocs) 
			 | 
		
	
		
			
			| 
				252
			 | 
			
				
			 | 
			
			
				-        cp -r ${temp_source_dir} /var/www/${TURTL_DOMAIN_NAME}/ 
			 | 
		
	
		
			
			| 
				
			 | 
			
				235
			 | 
			
			
				+        temp_source_dir=$(find ${temp_restore_dir} -name turtl) 
			 | 
		
	
		
			
			| 
				
			 | 
			
				236
			 | 
			
			
				+        cp -r ${temp_source_dir} /etc/ 
			 | 
		
	
		
			
			| 
				253
			 | 
			
				237
			 | 
			
			
				         if [ ! "$?" = "0" ]; then 
			 | 
		
	
		
			
			| 
				254
			 | 
			
				
			 | 
			
			
				-            if [ -d /var/www/${TURTL_DOMAIN_NAME}/previous ]; then 
			 | 
		
	
		
			
			| 
				255
			 | 
			
				
			 | 
			
			
				-                mv /var/www/${TURTL_DOMAIN_NAME}/previous /var/www/${TURTL_DOMAIN_NAME}/htdocs 
			 | 
		
	
		
			
			| 
				
			 | 
			
				238
			 | 
			
			
				+            if [ -d /etc/turtl_previous ]; then 
			 | 
		
	
		
			
			| 
				
			 | 
			
				239
			 | 
			
			
				+                mv /etc/turtl_previous $TURTL_BASE_DIR 
			 | 
		
	
		
			
			| 
				256
			 | 
			
				240
			 | 
			
			
				             fi 
			 | 
		
	
		
			
			| 
				257
			 | 
			
				241
			 | 
			
			
				             exit 37823 
			 | 
		
	
		
			
			| 
				258
			 | 
			
				242
			 | 
			
			
				         fi 
			 | 
		
	
		
			
			| 
				259
			 | 
			
				243
			 | 
			
			
				         rm -rf ${temp_restore_dir} 
			 | 
		
	
		
			
			| 
				260
			 | 
			
				244
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				261
			 | 
			
				
			 | 
			
			
				- 
			 | 
		
	
		
			
			| 
				262
			 | 
			
				245
			 | 
			
			
				         temp_restore_dir=/root/temprethinkdb 
			 | 
		
	
		
			
			| 
				263
			 | 
			
				246
			 | 
			
			
				         mkdir $temp_restore_dir 
			 | 
		
	
		
			
			| 
				264
			 | 
			
				247
			 | 
			
			
				         function_check restore_directory_from_friend 
			 | 
		
	
	
		
			
			| 
				
			 | 
			
			
				@@ -293,20 +276,15 @@ function remove_turtl { 
			 | 
		
	
		
			
			| 
				293
			 | 
			
				276
			 | 
			
			
				     remove_completion_param install_turtl 
			 | 
		
	
		
			
			| 
				294
			 | 
			
				277
			 | 
			
			
				     sed -i '/turtl/d' $COMPLETION_FILE 
			 | 
		
	
		
			
			| 
				295
			 | 
			
				278
			 | 
			
			
				     deluser turtl 
			 | 
		
	
		
			
			| 
				296
			 | 
			
				
			 | 
			
			
				-    nginx_dissite $TURTL_DOMAIN_NAME 
			 | 
		
	
		
			
			| 
				297
			 | 
			
				
			 | 
			
			
				-    if [ -f /etc/nginx/sites-available/$TURTL_DOMAIN_NAME ]; then 
			 | 
		
	
		
			
			| 
				298
			 | 
			
				
			 | 
			
			
				-        rm /etc/nginx/sites-available/$TURTL_DOMAIN_NAME 
			 | 
		
	
		
			
			| 
				299
			 | 
			
				
			 | 
			
			
				-    fi 
			 | 
		
	
		
			
			| 
				300
			 | 
			
				
			 | 
			
			
				-    remove_certs $TURTL_DOMAIN_NAME 
			 | 
		
	
		
			
			| 
				301
			 | 
			
				
			 | 
			
			
				-    if [ -d /var/www/$TURTL_DOMAIN_NAME ]; then 
			 | 
		
	
		
			
			| 
				302
			 | 
			
				
			 | 
			
			
				-        rm -rf /var/www/$TURTL_DOMAIN_NAME 
			 | 
		
	
		
			
			| 
				
			 | 
			
				279
			 | 
			
			
				+    nginx_dissite $TURTL_API_DOMAIN_NAME 
			 | 
		
	
		
			
			| 
				
			 | 
			
				280
			 | 
			
			
				+    if [ -f /etc/nginx/sites-available/$TURTL_API_DOMAIN_NAME ]; then 
			 | 
		
	
		
			
			| 
				
			 | 
			
				281
			 | 
			
			
				+        rm /etc/nginx/sites-available/$TURTL_API_DOMAIN_NAME 
			 | 
		
	
		
			
			| 
				303
			 | 
			
				282
			 | 
			
			
				     fi 
			 | 
		
	
		
			
			| 
				
			 | 
			
				283
			 | 
			
			
				+    remove_certs $TURTL_API_DOMAIN_NAME 
			 | 
		
	
		
			
			| 
				304
			 | 
			
				284
			 | 
			
			
				     function_check remove_onion_service 
			 | 
		
	
		
			
			| 
				305
			 | 
			
				
			 | 
			
			
				-    remove_onion_service turtl ${TURTL_ONION_PORT} 
			 | 
		
	
		
			
			| 
				306
			 | 
			
				285
			 | 
			
			
				     remove_onion_service turtlapi ${TURTL_API_ONION_PORT} 
			 | 
		
	
		
			
			| 
				307
			 | 
			
				286
			 | 
			
			
				     function_check remove_ddns_domain 
			 | 
		
	
		
			
			| 
				308
			 | 
			
				
			 | 
			
			
				-    remove_ddns_domain $TURTL_DOMAIN_NAME 
			 | 
		
	
		
			
			| 
				309
			 | 
			
				
			 | 
			
			
				-    remove_nodejs turtl 
			 | 
		
	
		
			
			| 
				
			 | 
			
				287
			 | 
			
			
				+    remove_ddns_domain $TURTL_API_DOMAIN_NAME 
			 | 
		
	
		
			
			| 
				310
			 | 
			
				288
			 | 
			
			
				     rm -rf /etc/rethinkdb 
			 | 
		
	
		
			
			| 
				311
			 | 
			
				289
			 | 
			
			
				     rm -rf /var/lib/rethinkdb 
			 | 
		
	
		
			
			| 
				312
			 | 
			
				290
			 | 
			
			
				     rm -rf $TURTL_BASE_DIR 
			 | 
		
	
	
		
			
			| 
				
			 | 
			
			
				@@ -318,8 +296,8 @@ function turtl_setup { 
			 | 
		
	
		
			
			| 
				318
			 | 
			
				296
			 | 
			
			
				     BINDADDR=${BINDADDR:-0.0.0.0} 
			 | 
		
	
		
			
			| 
				319
			 | 
			
				297
			 | 
			
			
				     BINDPORT=${BINDPORT:-8181} 
			 | 
		
	
		
			
			| 
				320
			 | 
			
				298
			 | 
			
			
				     PROD_ERR_HANDLING=${PROD_ERR_HANDLING:-t} 
			 | 
		
	
		
			
			| 
				321
			 | 
			
				
			 | 
			
			
				-    FQDN=${FQDN:-turtl.local} 
			 | 
		
	
		
			
			| 
				322
			 | 
			
				
			 | 
			
			
				-    SITE_URL=${SITE_URL:-http://turtl.local} 
			 | 
		
	
		
			
			| 
				
			 | 
			
				299
			 | 
			
			
				+    FQDN=${FQDN:-$TURTL_API_DOMAIN_NAME} 
			 | 
		
	
		
			
			| 
				
			 | 
			
				300
			 | 
			
			
				+    SITE_URL=${SITE_URL:-https://$TURTL_API_DOMAIN_NAME} 
			 | 
		
	
		
			
			| 
				323
			 | 
			
				301
			 | 
			
			
				     ADMIN_EMAIL=${ADMIN_EMAIL:-$MY_USERNAME@$DEFAULT_DOMAIN_NAME} 
			 | 
		
	
		
			
			| 
				324
			 | 
			
				302
			 | 
			
			
				     EMAIL_FROM=${EMAIL_FROM:-noreply@$DEFAULT_DOMAIN_NAME} 
			 | 
		
	
		
			
			| 
				325
			 | 
			
				303
			 | 
			
			
				     SMTP_USER=${SMTP_USER:-} 
			 | 
		
	
	
		
			
			| 
				
			 | 
			
			
				@@ -327,8 +305,8 @@ function turtl_setup { 
			 | 
		
	
		
			
			| 
				327
			 | 
			
				305
			 | 
			
			
				     DISPLAY_ERRORS=${DISPLAY_ERRORS:-t} 
			 | 
		
	
		
			
			| 
				328
			 | 
			
				306
			 | 
			
			
				     DEFAULT_STORAGE_LIMIT=${DEFAULT_STORAGE_LIMIT:-100} 
			 | 
		
	
		
			
			| 
				329
			 | 
			
				307
			 | 
			
			
				     STORAGE_INVITE_CREDIT=${STORAGE_INVITE_CREDIT:-25} 
			 | 
		
	
		
			
			| 
				330
			 | 
			
				
			 | 
			
			
				-    LOCAL_UPLOAD_URL=${LOCAL_UPLOAD_URL:-http://turtl.local} 
			 | 
		
	
		
			
			| 
				331
			 | 
			
				
			 | 
			
			
				-    LOCAL_UPLOAD_PATH=${LOCAL_UPLOAD_PATH:-"$TURTL_BASE_DIR/api/uploads"} 
			 | 
		
	
		
			
			| 
				
			 | 
			
				308
			 | 
			
			
				+    LOCAL_UPLOAD_URL=${LOCAL_UPLOAD_URL:-https://$TURTL_API_DOMAIN_NAME} 
			 | 
		
	
		
			
			| 
				
			 | 
			
				309
			 | 
			
			
				+    LOCAL_UPLOAD_PATH=${LOCAL_UPLOAD_PATH:-"$TURTL_BASE_DIR/data"} 
			 | 
		
	
		
			
			| 
				332
			 | 
			
				310
			 | 
			
			
				     AWS_S3_TOKEN=${AWS_S3_TOKEN:-(:token '' 
			 | 
		
	
		
			
			| 
				333
			 | 
			
				311
			 | 
			
			
				                                   :secret '' 
			 | 
		
	
		
			
			| 
				334
			 | 
			
				312
			 | 
			
			
				                                   :bucket '' 
			 | 
		
	
	
		
			
			| 
				
			 | 
			
			
				@@ -407,6 +385,7 @@ function install_turtl_api { 
			 | 
		
	
		
			
			| 
				407
			 | 
			
				385
			 | 
			
			
				         mkdir -p $TURTL_BASE_DIR 
			 | 
		
	
		
			
			| 
				408
			 | 
			
				386
			 | 
			
			
				     fi 
			 | 
		
	
		
			
			| 
				409
			 | 
			
				387
			 | 
			
			
				     cd $TURTL_BASE_DIR 
			 | 
		
	
		
			
			| 
				
			 | 
			
				388
			 | 
			
			
				+    mkdir cd $TURTL_BASE_DIR/data 
			 | 
		
	
		
			
			| 
				410
			 | 
			
				389
			 | 
			
			
				     check_architecture=$(uname -a) 
			 | 
		
	
		
			
			| 
				411
			 | 
			
				390
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				412
			 | 
			
				391
			 | 
			
			
				     # Install ccl 
			 | 
		
	
	
		
			
			| 
				
			 | 
			
			
				@@ -553,58 +532,24 @@ __ENDCONFIG__ 
			 | 
		
	
		
			
			| 
				553
			 | 
			
				532
			 | 
			
			
				     turtl_setup 
			 | 
		
	
		
			
			| 
				554
			 | 
			
				533
			 | 
			
			
				 } 
			 | 
		
	
		
			
			| 
				555
			 | 
			
				534
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				556
			 | 
			
				
			 | 
			
			
				-function install_turtl_app { 
			 | 
		
	
		
			
			| 
				557
			 | 
			
				
			 | 
			
			
				-    function_check install_nodejs 
			 | 
		
	
		
			
			| 
				558
			 | 
			
				
			 | 
			
			
				-    install_nodejs turtl 
			 | 
		
	
		
			
			| 
				559
			 | 
			
				
			 | 
			
			
				- 
			 | 
		
	
		
			
			| 
				560
			 | 
			
				
			 | 
			
			
				-    if [ -d /var/www/$TURTL_DOMAIN_NAME ]; then 
			 | 
		
	
		
			
			| 
				561
			 | 
			
				
			 | 
			
			
				-        rm -rf /var/www/$TURTL_DOMAIN_NAME 
			 | 
		
	
		
			
			| 
				562
			 | 
			
				
			 | 
			
			
				-    fi 
			 | 
		
	
		
			
			| 
				563
			 | 
			
				
			 | 
			
			
				-    mkdir -p /var/www/$TURTL_DOMAIN_NAME 
			 | 
		
	
		
			
			| 
				564
			 | 
			
				
			 | 
			
			
				- 
			 | 
		
	
		
			
			| 
				565
			 | 
			
				
			 | 
			
			
				-    if [ -f $IMAGE_PASSWORD_FILE ]; then 
			 | 
		
	
		
			
			| 
				566
			 | 
			
				
			 | 
			
			
				-        TURTL_ADMIN_PASSWORD="$(printf `cat $IMAGE_PASSWORD_FILE`)" 
			 | 
		
	
		
			
			| 
				567
			 | 
			
				
			 | 
			
			
				-    else 
			 | 
		
	
		
			
			| 
				568
			 | 
			
				
			 | 
			
			
				-        if [ ! $TURTL_ADMIN_PASSWORD ]; then 
			 | 
		
	
		
			
			| 
				569
			 | 
			
				
			 | 
			
			
				-            TURTL_ADMIN_PASSWORD="$(create_password ${MINIMUM_PASSWORD_LENGTH})" 
			 | 
		
	
		
			
			| 
				570
			 | 
			
				
			 | 
			
			
				-        fi 
			 | 
		
	
		
			
			| 
				571
			 | 
			
				
			 | 
			
			
				-    fi 
			 | 
		
	
		
			
			| 
				572
			 | 
			
				
			 | 
			
			
				- 
			 | 
		
	
		
			
			| 
				573
			 | 
			
				
			 | 
			
			
				-    cd /var/www/$TURTL_DOMAIN_NAME 
			 | 
		
	
		
			
			| 
				574
			 | 
			
				
			 | 
			
			
				-    git_clone $TURTL_REPO /var/www/$TURTL_DOMAIN_NAME/htdocs 
			 | 
		
	
		
			
			| 
				575
			 | 
			
				
			 | 
			
			
				-    git checkout $TURTL_COMMIT -b $TURTL_COMMIT 
			 | 
		
	
		
			
			| 
				576
			 | 
			
				
			 | 
			
			
				-    set_completion_param "turtl commit" "$TURTL_COMMIT" 
			 | 
		
	
		
			
			| 
				577
			 | 
			
				
			 | 
			
			
				- 
			 | 
		
	
		
			
			| 
				578
			 | 
			
				
			 | 
			
			
				-    if [ ! -f /var/www/$TURTL_DOMAIN_NAME/htdocs/config/config.js.default ]; then 
			 | 
		
	
		
			
			| 
				579
			 | 
			
				
			 | 
			
			
				-        echo $'turtl app config file not found' 
			 | 
		
	
		
			
			| 
				580
			 | 
			
				
			 | 
			
			
				-        exit 737223 
			 | 
		
	
		
			
			| 
				581
			 | 
			
				
			 | 
			
			
				-    fi 
			 | 
		
	
		
			
			| 
				582
			 | 
			
				
			 | 
			
			
				-    cp /var/www/$TURTL_DOMAIN_NAME/htdocs/config/config.js.default /var/www/$TURTL_DOMAIN_NAME/htdocs/config/config.js 
			 | 
		
	
		
			
			| 
				583
			 | 
			
				
			 | 
			
			
				- 
			 | 
		
	
		
			
			| 
				584
			 | 
			
				
			 | 
			
			
				-    # change settings 
			 | 
		
	
		
			
			| 
				585
			 | 
			
				
			 | 
			
			
				-    sed -i "s|api_url.*|api_url: 'https://api.${TURTL_DOMAIN_NAME}'|g" /var/www/$TURTL_DOMAIN_NAME/htdocs/config/config.js 
			 | 
		
	
		
			
			| 
				586
			 | 
			
				
			 | 
			
			
				-    sed -i "s|site_url.*|site_url: 'https://${TURTL_DOMAIN_NAME}'|g" /var/www/$TURTL_DOMAIN_NAME/htdocs/config/config.js 
			 | 
		
	
		
			
			| 
				587
			 | 
			
				
			 | 
			
			
				- 
			 | 
		
	
		
			
			| 
				588
			 | 
			
				
			 | 
			
			
				-    chown -R turtl:turtl /var/www/$TURTL_DOMAIN_NAME/htdocs 
			 | 
		
	
		
			
			| 
				589
			 | 
			
				
			 | 
			
			
				- 
			 | 
		
	
		
			
			| 
				590
			 | 
			
				
			 | 
			
			
				-    TURTL_ONION_HOSTNAME=$(add_onion_service turtl 80 ${TURTL_ONION_PORT}) 
			 | 
		
	
		
			
			| 
				
			 | 
			
				535
			 | 
			
			
				+function install_turtl_nginx { 
			 | 
		
	
		
			
			| 
				591
			 | 
			
				536
			 | 
			
			
				     TURTL_API_ONION_HOSTNAME=$(add_onion_service turtlapi 80 ${TURTL_API_ONION_PORT}) 
			 | 
		
	
		
			
			| 
				592
			 | 
			
				537
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				593
			 | 
			
				
			 | 
			
			
				-    turtl_nginx_site=/etc/nginx/sites-available/$TURTL_DOMAIN_NAME 
			 | 
		
	
		
			
			| 
				
			 | 
			
				538
			 | 
			
			
				+    turtl_nginx_site=/etc/nginx/sites-available/$TURTL_API_DOMAIN_NAME 
			 | 
		
	
		
			
			| 
				594
			 | 
			
				539
			 | 
			
			
				     if [[ $ONION_ONLY == "no" ]]; then 
			 | 
		
	
		
			
			| 
				595
			 | 
			
				540
			 | 
			
			
				         function_check nginx_http_redirect 
			 | 
		
	
		
			
			| 
				596
			 | 
			
				
			 | 
			
			
				-        nginx_http_redirect $TURTL_DOMAIN_NAME 
			 | 
		
	
		
			
			| 
				
			 | 
			
				541
			 | 
			
			
				+        nginx_http_redirect $TURTL_API_DOMAIN_NAME 
			 | 
		
	
		
			
			| 
				597
			 | 
			
				542
			 | 
			
			
				         echo 'server {' >> $turtl_nginx_site 
			 | 
		
	
		
			
			| 
				598
			 | 
			
				543
			 | 
			
			
				         echo '  listen 443 ssl;' >> $turtl_nginx_site 
			 | 
		
	
		
			
			| 
				599
			 | 
			
				544
			 | 
			
			
				         echo '  listen [::]:443 ssl;' >> $turtl_nginx_site 
			 | 
		
	
		
			
			| 
				600
			 | 
			
				
			 | 
			
			
				-        echo "  server_name api.${TURTL_DOMAIN_NAME};" >> $turtl_nginx_site 
			 | 
		
	
		
			
			| 
				
			 | 
			
				545
			 | 
			
			
				+        echo "  server_name ${TURTL_API_DOMAIN_NAME};" >> $turtl_nginx_site 
			 | 
		
	
		
			
			| 
				601
			 | 
			
				546
			 | 
			
			
				         echo '' >> $turtl_nginx_site 
			 | 
		
	
		
			
			| 
				602
			 | 
			
				547
			 | 
			
			
				         echo '  # Security' >> $turtl_nginx_site 
			 | 
		
	
		
			
			| 
				603
			 | 
			
				548
			 | 
			
			
				         function_check nginx_ssl 
			 | 
		
	
		
			
			| 
				604
			 | 
			
				
			 | 
			
			
				-        nginx_ssl $TURTL_DOMAIN_NAME 
			 | 
		
	
		
			
			| 
				
			 | 
			
				549
			 | 
			
			
				+        nginx_ssl $TURTL_API_DOMAIN_NAME 
			 | 
		
	
		
			
			| 
				605
			 | 
			
				550
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				606
			 | 
			
				551
			 | 
			
			
				         function_check nginx_disable_sniffing 
			 | 
		
	
		
			
			| 
				607
			 | 
			
				
			 | 
			
			
				-        nginx_disable_sniffing $TURTL_DOMAIN_NAME 
			 | 
		
	
		
			
			| 
				
			 | 
			
				552
			 | 
			
			
				+        nginx_disable_sniffing $TURTL_API_DOMAIN_NAME 
			 | 
		
	
		
			
			| 
				608
			 | 
			
				553
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				609
			 | 
			
				554
			 | 
			
			
				         echo '  add_header Strict-Transport-Security max-age=15768000;' >> $turtl_nginx_site 
			 | 
		
	
		
			
			| 
				610
			 | 
			
				555
			 | 
			
			
				         echo '' >> $turtl_nginx_site 
			 | 
		
	
	
		
			
			| 
				
			 | 
			
			
				@@ -614,44 +559,13 @@ function install_turtl_app { 
			 | 
		
	
		
			
			| 
				614
			 | 
			
				559
			 | 
			
			
				         echo '' >> $turtl_nginx_site 
			 | 
		
	
		
			
			| 
				615
			 | 
			
				560
			 | 
			
			
				         echo '  location / {' >> $turtl_nginx_site 
			 | 
		
	
		
			
			| 
				616
			 | 
			
				561
			 | 
			
			
				         function_check nginx_limits 
			 | 
		
	
		
			
			| 
				617
			 | 
			
				
			 | 
			
			
				-        nginx_limits $TURTL_DOMAIN_NAME '15m' 
			 | 
		
	
		
			
			| 
				
			 | 
			
				562
			 | 
			
			
				+        nginx_limits $TURTL_API_DOMAIN_NAME '15m' 
			 | 
		
	
		
			
			| 
				618
			 | 
			
				563
			 | 
			
			
				         echo "    proxy_pass        http://localhost:${TURTL_PORT}/;" >> $turtl_nginx_site 
			 | 
		
	
		
			
			| 
				619
			 | 
			
				564
			 | 
			
			
				         echo '    proxy_set_header  Host $host;' >> $turtl_nginx_site 
			 | 
		
	
		
			
			| 
				620
			 | 
			
				565
			 | 
			
			
				         echo '    proxy_buffering   off;' >> $turtl_nginx_site 
			 | 
		
	
		
			
			| 
				621
			 | 
			
				566
			 | 
			
			
				         echo '  }' >> $turtl_nginx_site 
			 | 
		
	
		
			
			| 
				622
			 | 
			
				
			 | 
			
			
				-        echo '' >> $turtl_nginx_site 
			 | 
		
	
		
			
			| 
				623
			 | 
			
				
			 | 
			
			
				-        echo '}' >> $turtl_nginx_site 
			 | 
		
	
		
			
			| 
				624
			 | 
			
				
			 | 
			
			
				-        echo '' >> $turtl_nginx_site 
			 | 
		
	
		
			
			| 
				625
			 | 
			
				
			 | 
			
			
				-        echo 'server {' >> $turtl_nginx_site 
			 | 
		
	
		
			
			| 
				626
			 | 
			
				
			 | 
			
			
				-        echo '  listen 443 ssl;' >> $turtl_nginx_site 
			 | 
		
	
		
			
			| 
				627
			 | 
			
				
			 | 
			
			
				-        echo '  listen [::]:443 ssl;' >> $turtl_nginx_site 
			 | 
		
	
		
			
			| 
				628
			 | 
			
				
			 | 
			
			
				-        echo "  server_name ${TURTL_DOMAIN_NAME};" >> $turtl_nginx_site 
			 | 
		
	
		
			
			| 
				629
			 | 
			
				
			 | 
			
			
				-        echo '' >> $turtl_nginx_site 
			 | 
		
	
		
			
			| 
				630
			 | 
			
				
			 | 
			
			
				-        echo '  index index.html;' >> $turtl_nginx_site 
			 | 
		
	
		
			
			| 
				631
			 | 
			
				
			 | 
			
			
				-        echo "  root /var/www/$TURTL_DOMAIN_NAME/htdocs;" >> $turtl_nginx_site 
			 | 
		
	
		
			
			| 
				632
			 | 
			
				
			 | 
			
			
				-        echo '' >> $turtl_nginx_site 
			 | 
		
	
		
			
			| 
				633
			 | 
			
				
			 | 
			
			
				-        echo '  # Security' >> $turtl_nginx_site 
			 | 
		
	
		
			
			| 
				634
			 | 
			
				
			 | 
			
			
				-        function_check nginx_ssl 
			 | 
		
	
		
			
			| 
				635
			 | 
			
				
			 | 
			
			
				-        nginx_ssl $TURTL_DOMAIN_NAME 
			 | 
		
	
		
			
			| 
				636
			 | 
			
				
			 | 
			
			
				- 
			 | 
		
	
		
			
			| 
				637
			 | 
			
				
			 | 
			
			
				-        function_check nginx_disable_sniffing 
			 | 
		
	
		
			
			| 
				638
			 | 
			
				
			 | 
			
			
				-        nginx_disable_sniffing $TURTL_DOMAIN_NAME 
			 | 
		
	
		
			
			| 
				639
			 | 
			
				
			 | 
			
			
				- 
			 | 
		
	
		
			
			| 
				640
			 | 
			
				
			 | 
			
			
				-        echo '  add_header Strict-Transport-Security max-age=15768000;' >> $turtl_nginx_site 
			 | 
		
	
		
			
			| 
				641
			 | 
			
				
			 | 
			
			
				-        echo '' >> $turtl_nginx_site 
			 | 
		
	
		
			
			| 
				642
			 | 
			
				
			 | 
			
			
				-        echo '  # Logs' >> $turtl_nginx_site 
			 | 
		
	
		
			
			| 
				643
			 | 
			
				
			 | 
			
			
				-        echo '  access_log /dev/null;' >> $turtl_nginx_site 
			 | 
		
	
		
			
			| 
				644
			 | 
			
				
			 | 
			
			
				-        echo '  error_log /dev/null;' >> $turtl_nginx_site 
			 | 
		
	
		
			
			| 
				645
			 | 
			
				
			 | 
			
			
				-        echo '' >> $turtl_nginx_site 
			 | 
		
	
		
			
			| 
				646
			 | 
			
				
			 | 
			
			
				-        echo '  location / {' >> $turtl_nginx_site 
			 | 
		
	
		
			
			| 
				647
			 | 
			
				
			 | 
			
			
				-        function_check nginx_limits 
			 | 
		
	
		
			
			| 
				648
			 | 
			
				
			 | 
			
			
				-        nginx_limits $TURTL_DOMAIN_NAME '15m' 
			 | 
		
	
		
			
			| 
				649
			 | 
			
				
			 | 
			
			
				-        echo '  }' >> $turtl_nginx_site 
			 | 
		
	
		
			
			| 
				650
			 | 
			
				
			 | 
			
			
				-        echo '' >> $turtl_nginx_site 
			 | 
		
	
		
			
			| 
				651
			 | 
			
				567
			 | 
			
			
				         echo '}' >> $turtl_nginx_site 
			 | 
		
	
		
			
			| 
				652
			 | 
			
				568
			 | 
			
			
				     else 
			 | 
		
	
		
			
			| 
				653
			 | 
			
				
			 | 
			
			
				-        sed -i "s|api_url.*|api_url: 'http://${TURTL_API_ONION_HOSTNAME}'|g" /var/www/$TURTL_DOMAIN_NAME/htdocs/config/config.js 
			 | 
		
	
		
			
			| 
				654
			 | 
			
				
			 | 
			
			
				-        sed -i "s|site_url.*|site_url: 'http://${TURTL_ONION_HOSTNAME}'|g" /var/www/$TURTL_DOMAIN_NAME/htdocs/config/config.js 
			 | 
		
	
		
			
			| 
				655
			 | 
			
				569
			 | 
			
			
				         echo -n '' > $turtl_nginx_site 
			 | 
		
	
		
			
			| 
				656
			 | 
			
				570
			 | 
			
			
				     fi 
			 | 
		
	
		
			
			| 
				657
			 | 
			
				571
			 | 
			
			
				     echo 'server {' >> $turtl_nginx_site 
			 | 
		
	
	
		
			
			| 
				
			 | 
			
			
				@@ -659,7 +573,7 @@ function install_turtl_app { 
			 | 
		
	
		
			
			| 
				659
			 | 
			
				573
			 | 
			
			
				     echo "  server_name ${TURTL_API_ONION_HOSTNAME};" >> $turtl_nginx_site 
			 | 
		
	
		
			
			| 
				660
			 | 
			
				574
			 | 
			
			
				     echo '' >> $turtl_nginx_site 
			 | 
		
	
		
			
			| 
				661
			 | 
			
				575
			 | 
			
			
				     function_check nginx_disable_sniffing 
			 | 
		
	
		
			
			| 
				662
			 | 
			
				
			 | 
			
			
				-    nginx_disable_sniffing $TURTL_DOMAIN_NAME 
			 | 
		
	
		
			
			| 
				
			 | 
			
				576
			 | 
			
			
				+    nginx_disable_sniffing $TURTL_API_DOMAIN_NAME 
			 | 
		
	
		
			
			| 
				663
			 | 
			
				577
			 | 
			
			
				     echo '' >> $turtl_nginx_site 
			 | 
		
	
		
			
			| 
				664
			 | 
			
				578
			 | 
			
			
				     echo '  # Logs' >> $turtl_nginx_site 
			 | 
		
	
		
			
			| 
				665
			 | 
			
				579
			 | 
			
			
				     echo '  access_log /dev/null;' >> $turtl_nginx_site 
			 | 
		
	
	
		
			
			| 
				
			 | 
			
			
				@@ -667,70 +581,30 @@ function install_turtl_app { 
			 | 
		
	
		
			
			| 
				667
			 | 
			
				581
			 | 
			
			
				     echo '' >> $turtl_nginx_site 
			 | 
		
	
		
			
			| 
				668
			 | 
			
				582
			 | 
			
			
				     echo '  location / {' >> $turtl_nginx_site 
			 | 
		
	
		
			
			| 
				669
			 | 
			
				583
			 | 
			
			
				     function_check nginx_limits 
			 | 
		
	
		
			
			| 
				670
			 | 
			
				
			 | 
			
			
				-    nginx_limits $TURTL_DOMAIN_NAME '15m' 
			 | 
		
	
		
			
			| 
				
			 | 
			
				584
			 | 
			
			
				+    nginx_limits $TURTL_API_DOMAIN_NAME '15m' 
			 | 
		
	
		
			
			| 
				671
			 | 
			
				585
			 | 
			
			
				     echo "    proxy_pass        http://localhost:${TURTL_PORT}/;" >> $turtl_nginx_site 
			 | 
		
	
		
			
			| 
				672
			 | 
			
				586
			 | 
			
			
				     echo '    proxy_set_header  Host $host;' >> $turtl_nginx_site 
			 | 
		
	
		
			
			| 
				673
			 | 
			
				587
			 | 
			
			
				     echo '    proxy_buffering   off;' >> $turtl_nginx_site 
			 | 
		
	
		
			
			| 
				674
			 | 
			
				588
			 | 
			
			
				     echo '  }' >> $turtl_nginx_site 
			 | 
		
	
		
			
			| 
				675
			 | 
			
				
			 | 
			
			
				-    echo '' >> $turtl_nginx_site 
			 | 
		
	
		
			
			| 
				676
			 | 
			
				
			 | 
			
			
				-    echo '}' >> $turtl_nginx_site 
			 | 
		
	
		
			
			| 
				677
			 | 
			
				
			 | 
			
			
				-    echo '' >> $turtl_nginx_site 
			 | 
		
	
		
			
			| 
				678
			 | 
			
				
			 | 
			
			
				-    echo 'server {' >> $turtl_nginx_site 
			 | 
		
	
		
			
			| 
				679
			 | 
			
				
			 | 
			
			
				-    echo "  listen 127.0.0.1:$TURTL_ONION_PORT default_server;" >> $turtl_nginx_site 
			 | 
		
	
		
			
			| 
				680
			 | 
			
				
			 | 
			
			
				-    echo "  server_name $TURTL_ONION_HOSTNAME;" >> $turtl_nginx_site 
			 | 
		
	
		
			
			| 
				681
			 | 
			
				
			 | 
			
			
				-    echo '' >> $turtl_nginx_site 
			 | 
		
	
		
			
			| 
				682
			 | 
			
				
			 | 
			
			
				-    echo '  index index.html;' >> $turtl_nginx_site 
			 | 
		
	
		
			
			| 
				683
			 | 
			
				
			 | 
			
			
				-    echo "  root /var/www/$TURTL_DOMAIN_NAME/htdocs;" >> $turtl_nginx_site 
			 | 
		
	
		
			
			| 
				684
			 | 
			
				
			 | 
			
			
				-    echo '' >> $turtl_nginx_site 
			 | 
		
	
		
			
			| 
				685
			 | 
			
				
			 | 
			
			
				-    function_check nginx_disable_sniffing 
			 | 
		
	
		
			
			| 
				686
			 | 
			
				
			 | 
			
			
				-    nginx_disable_sniffing $TURTL_DOMAIN_NAME 
			 | 
		
	
		
			
			| 
				687
			 | 
			
				
			 | 
			
			
				-    echo '' >> $turtl_nginx_site 
			 | 
		
	
		
			
			| 
				688
			 | 
			
				
			 | 
			
			
				-    echo '  # Logs' >> $turtl_nginx_site 
			 | 
		
	
		
			
			| 
				689
			 | 
			
				
			 | 
			
			
				-    echo '  access_log /dev/null;' >> $turtl_nginx_site 
			 | 
		
	
		
			
			| 
				690
			 | 
			
				
			 | 
			
			
				-    echo '  error_log /dev/null;' >> $turtl_nginx_site 
			 | 
		
	
		
			
			| 
				691
			 | 
			
				
			 | 
			
			
				-    echo '' >> $turtl_nginx_site 
			 | 
		
	
		
			
			| 
				692
			 | 
			
				
			 | 
			
			
				-    echo '  location / {' >> $turtl_nginx_site 
			 | 
		
	
		
			
			| 
				693
			 | 
			
				
			 | 
			
			
				-    function_check nginx_limits 
			 | 
		
	
		
			
			| 
				694
			 | 
			
				
			 | 
			
			
				-    nginx_limits $TURTL_DOMAIN_NAME '15m' 
			 | 
		
	
		
			
			| 
				695
			 | 
			
				
			 | 
			
			
				-    echo '  }' >> $turtl_nginx_site 
			 | 
		
	
		
			
			| 
				696
			 | 
			
				
			 | 
			
			
				-    echo '' >> $turtl_nginx_site 
			 | 
		
	
		
			
			| 
				697
			 | 
			
				589
			 | 
			
			
				     echo '}' >> $turtl_nginx_site 
			 | 
		
	
		
			
			| 
				698
			 | 
			
				590
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				699
			 | 
			
				
			 | 
			
			
				-    ${PROJECT_NAME}-pass -u $MY_USERNAME -a turtl -p "$TURTL_ADMIN_PASSWORD" 
			 | 
		
	
		
			
			| 
				700
			 | 
			
				
			 | 
			
			
				- 
			 | 
		
	
		
			
			| 
				701
			 | 
			
				591
			 | 
			
			
				     function_check add_ddns_domain 
			 | 
		
	
		
			
			| 
				702
			 | 
			
				
			 | 
			
			
				-    add_ddns_domain $TURTL_DOMAIN_NAME 
			 | 
		
	
		
			
			| 
				703
			 | 
			
				
			 | 
			
			
				- 
			 | 
		
	
		
			
			| 
				704
			 | 
			
				
			 | 
			
			
				-    set_completion_param "turtl domain" "$TURTL_DOMAIN_NAME" 
			 | 
		
	
		
			
			| 
				705
			 | 
			
				
			 | 
			
			
				- 
			 | 
		
	
		
			
			| 
				706
			 | 
			
				
			 | 
			
			
				-    cd /var/www/$TURTL_DOMAIN_NAME/htdocs 
			 | 
		
	
		
			
			| 
				707
			 | 
			
				
			 | 
			
			
				-    sed -i 's|GPLv3|GPL-3.0|g' package.json 
			 | 
		
	
		
			
			| 
				708
			 | 
			
				
			 | 
			
			
				-    sed -i "/license/a \"repository\": \"$TURTL_REPO\"," package.json 
			 | 
		
	
		
			
			| 
				709
			 | 
			
				
			 | 
			
			
				-    rm -rf node_modules npm-shrinkwrap.json 
			 | 
		
	
		
			
			| 
				710
			 | 
			
				
			 | 
			
			
				-    npm install uglify@0.1.5 --no-optional 
			 | 
		
	
		
			
			| 
				711
			 | 
			
				
			 | 
			
			
				-    npm install minimatch@3.0.2 --no-optional 
			 | 
		
	
		
			
			| 
				712
			 | 
			
				
			 | 
			
			
				-    npm install --no-optional 
			 | 
		
	
		
			
			| 
				713
			 | 
			
				
			 | 
			
			
				- 
			 | 
		
	
		
			
			| 
				714
			 | 
			
				
			 | 
			
			
				-    sed -i 's|{config,controllers,handlers,locales,library,models,turtl}|.|g' Makefile 
			 | 
		
	
		
			
			| 
				715
			 | 
			
				
			 | 
			
			
				-    sed -i 's|tests/{data,tests}|tests|g' Makefile 
			 | 
		
	
		
			
			| 
				716
			 | 
			
				
			 | 
			
			
				- 
			 | 
		
	
		
			
			| 
				717
			 | 
			
				
			 | 
			
			
				-    make clean 
			 | 
		
	
		
			
			| 
				718
			 | 
			
				
			 | 
			
			
				-    make 
			 | 
		
	
		
			
			| 
				
			 | 
			
				592
			 | 
			
			
				+    add_ddns_domain $TURTL_API_DOMAIN_NAME 
			 | 
		
	
		
			
			| 
				719
			 | 
			
				593
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				720
			 | 
			
				
			 | 
			
			
				-    chown -R turtl:turtl /var/www/$TURTL_DOMAIN_NAME/htdocs 
			 | 
		
	
		
			
			| 
				
			 | 
			
				594
			 | 
			
			
				+    set_completion_param "turtl api domain" "$TURTL_API_DOMAIN_NAME" 
			 | 
		
	
		
			
			| 
				721
			 | 
			
				595
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				722
			 | 
			
				596
			 | 
			
			
				     function_check create_site_certificate 
			 | 
		
	
		
			
			| 
				723
			 | 
			
				
			 | 
			
			
				-    create_site_certificate $TURTL_DOMAIN_NAME 'yes' 
			 | 
		
	
		
			
			| 
				
			 | 
			
				597
			 | 
			
			
				+    create_site_certificate $TURTL_API_DOMAIN_NAME 'yes' 
			 | 
		
	
		
			
			| 
				724
			 | 
			
				598
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				725
			 | 
			
				599
			 | 
			
			
				     function_check nginx_ensite 
			 | 
		
	
		
			
			| 
				726
			 | 
			
				
			 | 
			
			
				-    nginx_ensite $TURTL_DOMAIN_NAME 
			 | 
		
	
		
			
			| 
				
			 | 
			
				600
			 | 
			
			
				+    nginx_ensite $TURTL_API_DOMAIN_NAME 
			 | 
		
	
		
			
			| 
				727
			 | 
			
				601
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				728
			 | 
			
				602
			 | 
			
			
				     systemctl restart nginx 
			 | 
		
	
		
			
			| 
				729
			 | 
			
				603
			 | 
			
			
				 } 
			 | 
		
	
		
			
			| 
				730
			 | 
			
				604
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				731
			 | 
			
				605
			 | 
			
			
				 function install_turtl { 
			 | 
		
	
		
			
			| 
				732
			 | 
			
				606
			 | 
			
			
				     install_turtl_api 
			 | 
		
	
		
			
			| 
				733
			 | 
			
				
			 | 
			
			
				-    install_turtl_app 
			 | 
		
	
		
			
			| 
				
			 | 
			
				607
			 | 
			
			
				+    install_turtl_nginx 
			 | 
		
	
		
			
			| 
				734
			 | 
			
				608
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				735
			 | 
			
				609
			 | 
			
			
				     APP_INSTALLED=1 
			 | 
		
	
		
			
			| 
				736
			 | 
			
				610
			 | 
			
			
				 } 
			 |