| 
				
			 | 
			
			
				@@ -215,7 +215,7 @@ function restore_remote_turtl { 
			 | 
		
	
		
			
			| 
				215
			 | 
			
				215
			 | 
			
			
				     fi 
			 | 
		
	
		
			
			| 
				216
			 | 
			
				216
			 | 
			
			
				 } 
			 | 
		
	
		
			
			| 
				217
			 | 
			
				217
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				218
			 | 
			
				
			 | 
			
			
				-function remove_turtl { 
			 | 
		
	
		
			
			| 
				
			 | 
			
				218
			 | 
			
			
				+function remove_turtl_old { 
			 | 
		
	
		
			
			| 
				219
			 | 
			
				219
			 | 
			
			
				     if [ ${#TURTL_DOMAIN_NAME} -eq 0 ]; then 
			 | 
		
	
		
			
			| 
				220
			 | 
			
				220
			 | 
			
			
				         return 
			 | 
		
	
		
			
			| 
				221
			 | 
			
				221
			 | 
			
			
				     fi 
			 | 
		
	
	
		
			
			| 
				
			 | 
			
			
				@@ -251,6 +251,21 @@ function remove_turtl { 
			 | 
		
	
		
			
			| 
				251
			 | 
			
				251
			 | 
			
			
				     remove_ddns_domain $TURTL_DOMAIN_NAME 
			 | 
		
	
		
			
			| 
				252
			 | 
			
				252
			 | 
			
			
				 } 
			 | 
		
	
		
			
			| 
				253
			 | 
			
				253
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				
			 | 
			
				254
			 | 
			
			
				+function remove_turtl { 
			 | 
		
	
		
			
			| 
				
			 | 
			
				255
			 | 
			
			
				+    if [ ! -d /opt/api ]; then 
			 | 
		
	
		
			
			| 
				
			 | 
			
				256
			 | 
			
			
				+        return 
			 | 
		
	
		
			
			| 
				
			 | 
			
				257
			 | 
			
			
				+    fi 
			 | 
		
	
		
			
			| 
				
			 | 
			
				258
			 | 
			
			
				+    systemctl stop turtl 
			 | 
		
	
		
			
			| 
				
			 | 
			
				259
			 | 
			
			
				+    systemctl disable turtl 
			 | 
		
	
		
			
			| 
				
			 | 
			
				260
			 | 
			
			
				+    rm /etc/systemd/system/turtl.service 
			 | 
		
	
		
			
			| 
				
			 | 
			
				261
			 | 
			
			
				+    remove_app turtl 
			 | 
		
	
		
			
			| 
				
			 | 
			
				262
			 | 
			
			
				+    remove_completion_param install_turtl 
			 | 
		
	
		
			
			| 
				
			 | 
			
				263
			 | 
			
			
				+    sed -i '/turtl/d' $COMPLETION_FILE 
			 | 
		
	
		
			
			| 
				
			 | 
			
				264
			 | 
			
			
				+    rm -rf /root/quicklisp 
			 | 
		
	
		
			
			| 
				
			 | 
			
				265
			 | 
			
			
				+    rm -rf /opt/ccl 
			 | 
		
	
		
			
			| 
				
			 | 
			
				266
			 | 
			
			
				+    rm -rf /opt/api 
			 | 
		
	
		
			
			| 
				
			 | 
			
				267
			 | 
			
			
				+} 
			 | 
		
	
		
			
			| 
				
			 | 
			
				268
			 | 
			
			
				+ 
			 | 
		
	
		
			
			| 
				254
			 | 
			
				269
			 | 
			
			
				 function install_libuv { 
			 | 
		
	
		
			
			| 
				255
			 | 
			
				270
			 | 
			
			
				     if [ ! -d /usr/local/src ]; then 
			 | 
		
	
		
			
			| 
				256
			 | 
			
				271
			 | 
			
			
				         mkdir -p /usr/local/src 
			 | 
		
	
	
		
			
			| 
				
			 | 
			
			
				@@ -285,7 +300,7 @@ function install_libuv { 
			 | 
		
	
		
			
			| 
				285
			 | 
			
				300
			 | 
			
			
				     make install 
			 | 
		
	
		
			
			| 
				286
			 | 
			
				301
			 | 
			
			
				 } 
			 | 
		
	
		
			
			| 
				287
			 | 
			
				302
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				288
			 | 
			
				
			 | 
			
			
				-function install_turtl { 
			 | 
		
	
		
			
			| 
				
			 | 
			
				303
			 | 
			
			
				+function install_turtl_old { 
			 | 
		
	
		
			
			| 
				289
			 | 
			
				304
			 | 
			
			
				     if [ ! $TURTL_DOMAIN_NAME ]; then 
			 | 
		
	
		
			
			| 
				290
			 | 
			
				305
			 | 
			
			
				         echo $'No domain name was given for turtl' 
			 | 
		
	
		
			
			| 
				291
			 | 
			
				306
			 | 
			
			
				         exit 47823 
			 | 
		
	
	
		
			
			| 
				
			 | 
			
			
				@@ -399,6 +414,65 @@ function install_turtl { 
			 | 
		
	
		
			
			| 
				399
			 | 
			
				414
			 | 
			
			
				     echo '(load (compile-file "asdf.lisp"))' > /var/www/$TURTL_DOMAIN_NAME/htdocs/install.lisp 
			 | 
		
	
		
			
			| 
				400
			 | 
			
				415
			 | 
			
			
				     echo '(load (compile-file "quicklisp.lisp"))' >> /var/www/$TURTL_DOMAIN_NAME/htdocs/install.lisp 
			 | 
		
	
		
			
			| 
				401
			 | 
			
				416
			 | 
			
			
				     echo '(quicklisp-quickstart:install)' >> /var/www/$TURTL_DOMAIN_NAME/htdocs/install.lisp 
			 | 
		
	
		
			
			| 
				
			 | 
			
				417
			 | 
			
			
				+ 
			 | 
		
	
		
			
			| 
				
			 | 
			
				418
			 | 
			
			
				+ 
			 | 
		
	
		
			
			| 
				
			 | 
			
				419
			 | 
			
			
				+    echo '(ql:system-apropos "vecto")' >> /var/www/$TURTL_DOMAIN_NAME/htdocs/install.lisp 
			 | 
		
	
		
			
			| 
				
			 | 
			
				420
			 | 
			
			
				+    echo '(ql:quickload "alexandria")' >> /var/www/$TURTL_DOMAIN_NAME/htdocs/install.lisp 
			 | 
		
	
		
			
			| 
				
			 | 
			
				421
			 | 
			
			
				+    echo '(ql:quickload "babel")' >> /var/www/$TURTL_DOMAIN_NAME/htdocs/install.lisp 
			 | 
		
	
		
			
			| 
				
			 | 
			
				422
			 | 
			
			
				+    echo '(ql:quickload "blackbird")' >> /var/www/$TURTL_DOMAIN_NAME/htdocs/install.lisp 
			 | 
		
	
		
			
			| 
				
			 | 
			
				423
			 | 
			
			
				+    echo '(ql:quickload "bordeaux-threads")' >> /var/www/$TURTL_DOMAIN_NAME/htdocs/install.lisp 
			 | 
		
	
		
			
			| 
				
			 | 
			
				424
			 | 
			
			
				+    echo '(ql:quickload "cffi")' >> /var/www/$TURTL_DOMAIN_NAME/htdocs/install.lisp 
			 | 
		
	
		
			
			| 
				
			 | 
			
				425
			 | 
			
			
				+    echo '(ql:quickload "chipz")' >> /var/www/$TURTL_DOMAIN_NAME/htdocs/install.lisp 
			 | 
		
	
		
			
			| 
				
			 | 
			
				426
			 | 
			
			
				+    echo '(ql:quickload "chunga")' >> /var/www/$TURTL_DOMAIN_NAME/htdocs/install.lisp 
			 | 
		
	
		
			
			| 
				
			 | 
			
				427
			 | 
			
			
				+    echo '(ql:quickload "cl-annot")' >> /var/www/$TURTL_DOMAIN_NAME/htdocs/install.lisp 
			 | 
		
	
		
			
			| 
				
			 | 
			
				428
			 | 
			
			
				+    echo '(ql:quickload "cl-async")' >> /var/www/$TURTL_DOMAIN_NAME/htdocs/install.lisp 
			 | 
		
	
		
			
			| 
				
			 | 
			
				429
			 | 
			
			
				+    echo '(ql:quickload "cl-async-future")' >> /var/www/$TURTL_DOMAIN_NAME/htdocs/install.lisp 
			 | 
		
	
		
			
			| 
				
			 | 
			
				430
			 | 
			
			
				+    echo '(ql:quickload "cl-base64")' >> /var/www/$TURTL_DOMAIN_NAME/htdocs/install.lisp 
			 | 
		
	
		
			
			| 
				
			 | 
			
				431
			 | 
			
			
				+    echo '(ql:quickload "cl-fad")' >> /var/www/$TURTL_DOMAIN_NAME/htdocs/install.lisp 
			 | 
		
	
		
			
			| 
				
			 | 
			
				432
			 | 
			
			
				+    echo '(ql:quickload "cl-libuv")' >> /var/www/$TURTL_DOMAIN_NAME/htdocs/install.lisp 
			 | 
		
	
		
			
			| 
				
			 | 
			
				433
			 | 
			
			
				+    echo '(ql:quickload "cl-mongo-id")' >> /var/www/$TURTL_DOMAIN_NAME/htdocs/install.lisp 
			 | 
		
	
		
			
			| 
				
			 | 
			
				434
			 | 
			
			
				+    echo '(ql:quickload "cl-ppcre")' >> /var/www/$TURTL_DOMAIN_NAME/htdocs/install.lisp 
			 | 
		
	
		
			
			| 
				
			 | 
			
				435
			 | 
			
			
				+    echo '(ql:quickload "cl-rethinkdb")' >> /var/www/$TURTL_DOMAIN_NAME/htdocs/install.lisp 
			 | 
		
	
		
			
			| 
				
			 | 
			
				436
			 | 
			
			
				+    echo '(ql:quickload "cl-smtp")' >> /var/www/$TURTL_DOMAIN_NAME/htdocs/install.lisp 
			 | 
		
	
		
			
			| 
				
			 | 
			
				437
			 | 
			
			
				+    echo '(ql:quickload "cl+ssl")' >> /var/www/$TURTL_DOMAIN_NAME/htdocs/install.lisp 
			 | 
		
	
		
			
			| 
				
			 | 
			
				438
			 | 
			
			
				+    echo '(ql:quickload "cl-syntax")' >> /var/www/$TURTL_DOMAIN_NAME/htdocs/install.lisp 
			 | 
		
	
		
			
			| 
				
			 | 
			
				439
			 | 
			
			
				+    echo '(ql:quickload "cl-utilities")' >> /var/www/$TURTL_DOMAIN_NAME/htdocs/install.lisp 
			 | 
		
	
		
			
			| 
				
			 | 
			
				440
			 | 
			
			
				+    echo '(ql:quickload "cl-vectors")' >> /var/www/$TURTL_DOMAIN_NAME/htdocs/install.lisp 
			 | 
		
	
		
			
			| 
				
			 | 
			
				441
			 | 
			
			
				+    echo '(ql:quickload "do-urlencode")' >> /var/www/$TURTL_DOMAIN_NAME/htdocs/install.lisp 
			 | 
		
	
		
			
			| 
				
			 | 
			
				442
			 | 
			
			
				+    echo '(ql:quickload "drakma")' >> /var/www/$TURTL_DOMAIN_NAME/htdocs/install.lisp 
			 | 
		
	
		
			
			| 
				
			 | 
			
				443
			 | 
			
			
				+    echo '(ql:quickload "drakma-async")' >> /var/www/$TURTL_DOMAIN_NAME/htdocs/install.lisp 
			 | 
		
	
		
			
			| 
				
			 | 
			
				444
			 | 
			
			
				+    echo '(ql:quickload "event-glue")' >> /var/www/$TURTL_DOMAIN_NAME/htdocs/install.lisp 
			 | 
		
	
		
			
			| 
				
			 | 
			
				445
			 | 
			
			
				+    echo '(ql:quickload "fast-http")' >> /var/www/$TURTL_DOMAIN_NAME/htdocs/install.lisp 
			 | 
		
	
		
			
			| 
				
			 | 
			
				446
			 | 
			
			
				+    echo '(ql:quickload "fast-io")' >> /var/www/$TURTL_DOMAIN_NAME/htdocs/install.lisp 
			 | 
		
	
		
			
			| 
				
			 | 
			
				447
			 | 
			
			
				+    echo '(ql:quickload "flexi-streams")' >> /var/www/$TURTL_DOMAIN_NAME/htdocs/install.lisp 
			 | 
		
	
		
			
			| 
				
			 | 
			
				448
			 | 
			
			
				+    echo '(ql:quickload "ironclad")' >> /var/www/$TURTL_DOMAIN_NAME/htdocs/install.lisp 
			 | 
		
	
		
			
			| 
				
			 | 
			
				449
			 | 
			
			
				+    echo '(ql:quickload "jonathan")' >> /var/www/$TURTL_DOMAIN_NAME/htdocs/install.lisp 
			 | 
		
	
		
			
			| 
				
			 | 
			
				450
			 | 
			
			
				+    echo '(ql:quickload "local-time")' >> /var/www/$TURTL_DOMAIN_NAME/htdocs/install.lisp 
			 | 
		
	
		
			
			| 
				
			 | 
			
				451
			 | 
			
			
				+    echo '(ql:quickload "md5")' >> /var/www/$TURTL_DOMAIN_NAME/htdocs/install.lisp 
			 | 
		
	
		
			
			| 
				
			 | 
			
				452
			 | 
			
			
				+    echo '(ql:quickload "named-readtables")' >> /var/www/$TURTL_DOMAIN_NAME/htdocs/install.lisp 
			 | 
		
	
		
			
			| 
				
			 | 
			
				453
			 | 
			
			
				+    echo '(ql:quickload "nibbles")' >> /var/www/$TURTL_DOMAIN_NAME/htdocs/install.lisp 
			 | 
		
	
		
			
			| 
				
			 | 
			
				454
			 | 
			
			
				+    echo '(ql:quickload "proc-parse")' >> /var/www/$TURTL_DOMAIN_NAME/htdocs/install.lisp 
			 | 
		
	
		
			
			| 
				
			 | 
			
				455
			 | 
			
			
				+    echo '(ql:quickload "puri")' >> /var/www/$TURTL_DOMAIN_NAME/htdocs/install.lisp 
			 | 
		
	
		
			
			| 
				
			 | 
			
				456
			 | 
			
			
				+    echo '(ql:quickload "quri")' >> /var/www/$TURTL_DOMAIN_NAME/htdocs/install.lisp 
			 | 
		
	
		
			
			| 
				
			 | 
			
				457
			 | 
			
			
				+    echo '(ql:quickload "salza2")' >> /var/www/$TURTL_DOMAIN_NAME/htdocs/install.lisp 
			 | 
		
	
		
			
			| 
				
			 | 
			
				458
			 | 
			
			
				+    echo '(ql:quickload "secure-random")' >> /var/www/$TURTL_DOMAIN_NAME/htdocs/install.lisp 
			 | 
		
	
		
			
			| 
				
			 | 
			
				459
			 | 
			
			
				+    echo '(ql:quickload "smart-buffer")' >> /var/www/$TURTL_DOMAIN_NAME/htdocs/install.lisp 
			 | 
		
	
		
			
			| 
				
			 | 
			
				460
			 | 
			
			
				+    echo '(ql:quickload "split-sequence")' >> /var/www/$TURTL_DOMAIN_NAME/htdocs/install.lisp 
			 | 
		
	
		
			
			| 
				
			 | 
			
				461
			 | 
			
			
				+    echo '(ql:quickload "static-vectors")' >> /var/www/$TURTL_DOMAIN_NAME/htdocs/install.lisp 
			 | 
		
	
		
			
			| 
				
			 | 
			
				462
			 | 
			
			
				+    echo '(ql:quickload "trivial-backtrace")' >> /var/www/$TURTL_DOMAIN_NAME/htdocs/install.lisp 
			 | 
		
	
		
			
			| 
				
			 | 
			
				463
			 | 
			
			
				+    echo '(ql:quickload "trivial-features")' >> /var/www/$TURTL_DOMAIN_NAME/htdocs/install.lisp 
			 | 
		
	
		
			
			| 
				
			 | 
			
				464
			 | 
			
			
				+    echo '(ql:quickload "trivial-garbage")' >> /var/www/$TURTL_DOMAIN_NAME/htdocs/install.lisp 
			 | 
		
	
		
			
			| 
				
			 | 
			
				465
			 | 
			
			
				+    echo '(ql:quickload "trivial-gray-streams")' >> /var/www/$TURTL_DOMAIN_NAME/htdocs/install.lisp 
			 | 
		
	
		
			
			| 
				
			 | 
			
				466
			 | 
			
			
				+    echo '(ql:quickload "trivial-types")' >> /var/www/$TURTL_DOMAIN_NAME/htdocs/install.lisp 
			 | 
		
	
		
			
			| 
				
			 | 
			
				467
			 | 
			
			
				+    echo '(ql:quickload "usocket")' >> /var/www/$TURTL_DOMAIN_NAME/htdocs/install.lisp 
			 | 
		
	
		
			
			| 
				
			 | 
			
				468
			 | 
			
			
				+    echo '(ql:quickload "vecto")' >> /var/www/$TURTL_DOMAIN_NAME/htdocs/install.lisp 
			 | 
		
	
		
			
			| 
				
			 | 
			
				469
			 | 
			
			
				+    echo '(ql:quickload "vom")' >> /var/www/$TURTL_DOMAIN_NAME/htdocs/install.lisp 
			 | 
		
	
		
			
			| 
				
			 | 
			
				470
			 | 
			
			
				+    echo '(ql:quickload "wookie")' >> /var/www/$TURTL_DOMAIN_NAME/htdocs/install.lisp 
			 | 
		
	
		
			
			| 
				
			 | 
			
				471
			 | 
			
			
				+    echo '(ql:quickload "xmls")' >> /var/www/$TURTL_DOMAIN_NAME/htdocs/install.lisp 
			 | 
		
	
		
			
			| 
				
			 | 
			
				472
			 | 
			
			
				+    echo '(ql:quickload "xsubseq")' >> /var/www/$TURTL_DOMAIN_NAME/htdocs/install.lisp 
			 | 
		
	
		
			
			| 
				
			 | 
			
				473
			 | 
			
			
				+    echo '(ql:quickload "yason")' >> /var/www/$TURTL_DOMAIN_NAME/htdocs/install.lisp 
			 | 
		
	
		
			
			| 
				
			 | 
			
				474
			 | 
			
			
				+    echo '(ql:quickload "zpb-ttf")' >> /var/www/$TURTL_DOMAIN_NAME/htdocs/install.lisp 
			 | 
		
	
		
			
			| 
				
			 | 
			
				475
			 | 
			
			
				+    echo '(ql:quickload "zpng")' >> /var/www/$TURTL_DOMAIN_NAME/htdocs/install.lisp 
			 | 
		
	
		
			
			| 
				402
			 | 
			
				476
			 | 
			
			
				     echo '(ql:add-to-init-file)' >> /var/www/$TURTL_DOMAIN_NAME/htdocs/install.lisp 
			 | 
		
	
		
			
			| 
				403
			 | 
			
				477
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				404
			 | 
			
				478
			 | 
			
			
				     chown -R turtl:turtl /var/www/$TURTL_DOMAIN_NAME/htdocs 
			 | 
		
	
	
		
			
			| 
				
			 | 
			
			
				@@ -456,12 +530,13 @@ function install_turtl { 
			 | 
		
	
		
			
			| 
				456
			 | 
			
				530
			 | 
			
			
				     echo '[Service]' >> /etc/systemd/system/turtl.service 
			 | 
		
	
		
			
			| 
				457
			 | 
			
				531
			 | 
			
			
				     echo 'Type=simple' >> /etc/systemd/system/turtl.service 
			 | 
		
	
		
			
			| 
				458
			 | 
			
				532
			 | 
			
			
				     echo 'User=turtl' >> /etc/systemd/system/turtl.service 
			 | 
		
	
		
			
			| 
				
			 | 
			
				533
			 | 
			
			
				+    echo 'Group=turtl' >> /etc/systemd/system/turtl.service 
			 | 
		
	
		
			
			| 
				459
			 | 
			
				534
			 | 
			
			
				     echo "WorkingDirectory=/var/www/$TURTL_DOMAIN_NAME/htdocs/api/" >> /etc/systemd/system/turtl.service 
			 | 
		
	
		
			
			| 
				460
			 | 
			
				535
			 | 
			
			
				     check_architecture=$(uname -a) 
			 | 
		
	
		
			
			| 
				461
			 | 
			
				536
			 | 
			
			
				     if [[ "$check_architecture" == *"64"* && "$check_architecture" != *"arm"* ]]; then 
			 | 
		
	
		
			
			| 
				462
			 | 
			
				
			 | 
			
			
				-        echo "ExecStart=/var/www/$TURTL_DOMAIN_NAME/htdocs/ccl/scripts/ccl64 -Q -b --load start.lisp" >> /etc/systemd/system/turtl.service 
			 | 
		
	
		
			
			| 
				
			 | 
			
				537
			 | 
			
			
				+        echo "ExecStart=/usr/bin/ccl64 -Q -b --load start.lisp" >> /etc/systemd/system/turtl.service 
			 | 
		
	
		
			
			| 
				463
			 | 
			
				538
			 | 
			
			
				     else 
			 | 
		
	
		
			
			| 
				464
			 | 
			
				
			 | 
			
			
				-        echo "ExecStart=/var/www/$TURTL_DOMAIN_NAME/htdocs/ccl/scripts/ccl -Q -b --load start.lisp" >> /etc/systemd/system/turtl.service 
			 | 
		
	
		
			
			| 
				
			 | 
			
				539
			 | 
			
			
				+        echo "ExecStart=/usr/bin/ccl -Q -b --load start.lisp" >> /etc/systemd/system/turtl.service 
			 | 
		
	
		
			
			| 
				465
			 | 
			
				540
			 | 
			
			
				     fi 
			 | 
		
	
		
			
			| 
				466
			 | 
			
				541
			 | 
			
			
				     echo '' >> /etc/systemd/system/turtl.service 
			 | 
		
	
		
			
			| 
				467
			 | 
			
				542
			 | 
			
			
				     echo '[Install]' >> /etc/systemd/system/turtl.service 
			 | 
		
	
	
		
			
			| 
				
			 | 
			
			
				@@ -616,3 +691,239 @@ function install_turtl { 
			 | 
		
	
		
			
			| 
				616
			 | 
			
				691
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				617
			 | 
			
				692
			 | 
			
			
				     APP_INSTALLED=1 
			 | 
		
	
		
			
			| 
				618
			 | 
			
				693
			 | 
			
			
				 } 
			 | 
		
	
		
			
			| 
				
			 | 
			
				694
			 | 
			
			
				+ 
			 | 
		
	
		
			
			| 
				
			 | 
			
				695
			 | 
			
			
				+function turtl_setup { 
			 | 
		
	
		
			
			| 
				
			 | 
			
				696
			 | 
			
			
				+    PIDFILE=${PIDFILE:-nil} 
			 | 
		
	
		
			
			| 
				
			 | 
			
				697
			 | 
			
			
				+    BINDADDR=${BINDADDR:-0.0.0.0} 
			 | 
		
	
		
			
			| 
				
			 | 
			
				698
			 | 
			
			
				+    BINDPORT=${BINDPORT:-8181} 
			 | 
		
	
		
			
			| 
				
			 | 
			
				699
			 | 
			
			
				+    PROD_ERR_HANDLING=${PROD_ERR_HANDLING:-t} 
			 | 
		
	
		
			
			| 
				
			 | 
			
				700
			 | 
			
			
				+    FQDN=${FQDN:-turtl.local} 
			 | 
		
	
		
			
			| 
				
			 | 
			
				701
			 | 
			
			
				+    SITE_URL=${SITE_URL:-http://turtl.local} 
			 | 
		
	
		
			
			| 
				
			 | 
			
				702
			 | 
			
			
				+    ADMIN_EMAIL=${ADMIN_EMAIL:-$MY_USERNAME@$DEFAULT_DOMAIN_NAME} 
			 | 
		
	
		
			
			| 
				
			 | 
			
				703
			 | 
			
			
				+    EMAIL_FROM=${EMAIL_FROM:-noreply@$DEFAULT_DOMAIN_NAME} 
			 | 
		
	
		
			
			| 
				
			 | 
			
				704
			 | 
			
			
				+    SMTP_USER=${SMTP_USER:-} 
			 | 
		
	
		
			
			| 
				
			 | 
			
				705
			 | 
			
			
				+    SMTP_PASS=${SMTP_PASS:-} 
			 | 
		
	
		
			
			| 
				
			 | 
			
				706
			 | 
			
			
				+    DISPLAY_ERRORS=${DISPLAY_ERRORS:-t} 
			 | 
		
	
		
			
			| 
				
			 | 
			
				707
			 | 
			
			
				+    DEFAULT_STORAGE_LIMIT=${DEFAULT_STORAGE_LIMIT:-100} 
			 | 
		
	
		
			
			| 
				
			 | 
			
				708
			 | 
			
			
				+    STORAGE_INVITE_CREDIT=${STORAGE_INVITE_CREDIT:-25} 
			 | 
		
	
		
			
			| 
				
			 | 
			
				709
			 | 
			
			
				+    LOCAL_UPLOAD_URL=${LOCAL_UPLOAD_URL:-http://turtl.local} 
			 | 
		
	
		
			
			| 
				
			 | 
			
				710
			 | 
			
			
				+    LOCAL_UPLOAD_PATH=${LOCAL_UPLOAD_PATH:-"/opt/api/uploads"} 
			 | 
		
	
		
			
			| 
				
			 | 
			
				711
			 | 
			
			
				+    AWS_S3_TOKEN=${AWS_S3_TOKEN:-(:token '' 
			 | 
		
	
		
			
			| 
				
			 | 
			
				712
			 | 
			
			
				+                                  :secret '' 
			 | 
		
	
		
			
			| 
				
			 | 
			
				713
			 | 
			
			
				+                                  :bucket '' 
			 | 
		
	
		
			
			| 
				
			 | 
			
				714
			 | 
			
			
				+                                  :endpoint 'https://s3.amazonaws.com')} 
			 | 
		
	
		
			
			| 
				
			 | 
			
				715
			 | 
			
			
				+ 
			 | 
		
	
		
			
			| 
				
			 | 
			
				716
			 | 
			
			
				+    # generates the config-file 
			 | 
		
	
		
			
			| 
				
			 | 
			
				717
			 | 
			
			
				+    cat  << __ENDCONFIG__ > /opt/api/config/config.lisp 
			 | 
		
	
		
			
			| 
				
			 | 
			
				718
			 | 
			
			
				+(in-package :turtl) 
			 | 
		
	
		
			
			| 
				
			 | 
			
				719
			 | 
			
			
				+(defparameter *root* (asdf:system-relative-pathname :turtl #P"")) 
			 | 
		
	
		
			
			| 
				
			 | 
			
				720
			 | 
			
			
				+(defparameter *pid-file* "${PIDFILE}") 
			 | 
		
	
		
			
			| 
				
			 | 
			
				721
			 | 
			
			
				+(defvar *server-bind* "${BINDADDR}") 
			 | 
		
	
		
			
			| 
				
			 | 
			
				722
			 | 
			
			
				+(defvar *server-port* ${BINDPORT}) 
			 | 
		
	
		
			
			| 
				
			 | 
			
				723
			 | 
			
			
				+(defvar *db-name* "turtl") 
			 | 
		
	
		
			
			| 
				
			 | 
			
				724
			 | 
			
			
				+(defvar *db-host* "127.0.0.1") 
			 | 
		
	
		
			
			| 
				
			 | 
			
				725
			 | 
			
			
				+(defvar *db-port* 28015) 
			 | 
		
	
		
			
			| 
				
			 | 
			
				726
			 | 
			
			
				+(defvar *production-error-handling* ${PROD_ERR_HANDLING}) 
			 | 
		
	
		
			
			| 
				
			 | 
			
				727
			 | 
			
			
				+(defvar *enable-hsts-header* nil) 
			 | 
		
	
		
			
			| 
				
			 | 
			
				728
			 | 
			
			
				+(defvar *site-url* "${SITE_URL}") 
			 | 
		
	
		
			
			| 
				
			 | 
			
				729
			 | 
			
			
				+(defvar *api-path* "") 
			 | 
		
	
		
			
			| 
				
			 | 
			
				730
			 | 
			
			
				+(defvar *admin-email* "${ADMIN_EMAIL}") 
			 | 
		
	
		
			
			| 
				
			 | 
			
				731
			 | 
			
			
				+(defvar *email-from* "${EMAIL_FROM}") 
			 | 
		
	
		
			
			| 
				
			 | 
			
				732
			 | 
			
			
				+(defvar *email-user* "${SMTP_USER}") 
			 | 
		
	
		
			
			| 
				
			 | 
			
				733
			 | 
			
			
				+(defvar *email-pass* "${SMTP_PASS}") 
			 | 
		
	
		
			
			| 
				
			 | 
			
				734
			 | 
			
			
				+(defvar *display-errors* ${DISPLAY_ERRORS}) 
			 | 
		
	
		
			
			| 
				
			 | 
			
				735
			 | 
			
			
				+(defparameter *default-storage-limit* ${DEFAULT_STORAGE_LIMIT}) 
			 | 
		
	
		
			
			| 
				
			 | 
			
				736
			 | 
			
			
				+(defparameter *storage-invite-credit* ${STORAGE_INVITE_CREDIT}) 
			 | 
		
	
		
			
			| 
				
			 | 
			
				737
			 | 
			
			
				+(vom:config :turtl :info) 
			 | 
		
	
		
			
			| 
				
			 | 
			
				738
			 | 
			
			
				+(defvar *local-upload* "${LOCAL_UPLOAD_PATH}") 
			 | 
		
	
		
			
			| 
				
			 | 
			
				739
			 | 
			
			
				+(defvar *local-upload-url* "${LOCAL_UPLOAD_URL}") 
			 | 
		
	
		
			
			| 
				
			 | 
			
				740
			 | 
			
			
				+(defvar *amazon-s3* "${AWS_S3_TOKEN}") 
			 | 
		
	
		
			
			| 
				
			 | 
			
				741
			 | 
			
			
				+__ENDCONFIG__ 
			 | 
		
	
		
			
			| 
				
			 | 
			
				742
			 | 
			
			
				+ 
			 | 
		
	
		
			
			| 
				
			 | 
			
				743
			 | 
			
			
				+    cat /opt/api/config/config.footer >> /opt/api/config/config.lisp 
			 | 
		
	
		
			
			| 
				
			 | 
			
				744
			 | 
			
			
				+ 
			 | 
		
	
		
			
			| 
				
			 | 
			
				745
			 | 
			
			
				+    # start the turtl server 
			 | 
		
	
		
			
			| 
				
			 | 
			
				746
			 | 
			
			
				+    systemctl restart rethinkdb 
			 | 
		
	
		
			
			| 
				
			 | 
			
				747
			 | 
			
			
				+ 
			 | 
		
	
		
			
			| 
				
			 | 
			
				748
			 | 
			
			
				+    echo '[Unit]' > /etc/systemd/system/turtl.service 
			 | 
		
	
		
			
			| 
				
			 | 
			
				749
			 | 
			
			
				+    echo 'Description=Note taking service' >> /etc/systemd/system/turtl.service 
			 | 
		
	
		
			
			| 
				
			 | 
			
				750
			 | 
			
			
				+    echo 'Documentation=http://turtl.it' >> /etc/systemd/system/turtl.service 
			 | 
		
	
		
			
			| 
				
			 | 
			
				751
			 | 
			
			
				+    echo 'Requires=network.target' >> /etc/systemd/system/turtl.service 
			 | 
		
	
		
			
			| 
				
			 | 
			
				752
			 | 
			
			
				+    echo 'Requires=rethinkdb.service' >> /etc/systemd/system/turtl.service 
			 | 
		
	
		
			
			| 
				
			 | 
			
				753
			 | 
			
			
				+    echo 'After=network.target' >> /etc/systemd/system/turtl.service 
			 | 
		
	
		
			
			| 
				
			 | 
			
				754
			 | 
			
			
				+    echo 'After=rethinkdb.service' >> /etc/systemd/system/turtl.service 
			 | 
		
	
		
			
			| 
				
			 | 
			
				755
			 | 
			
			
				+    echo '' >> /etc/systemd/system/turtl.service 
			 | 
		
	
		
			
			| 
				
			 | 
			
				756
			 | 
			
			
				+    echo '[Service]' >> /etc/systemd/system/turtl.service 
			 | 
		
	
		
			
			| 
				
			 | 
			
				757
			 | 
			
			
				+    echo 'Type=simple' >> /etc/systemd/system/turtl.service 
			 | 
		
	
		
			
			| 
				
			 | 
			
				758
			 | 
			
			
				+    echo 'User=root' >> /etc/systemd/system/turtl.service 
			 | 
		
	
		
			
			| 
				
			 | 
			
				759
			 | 
			
			
				+    echo 'WorkingDirectory=/opt/api/' >> /etc/systemd/system/turtl.service 
			 | 
		
	
		
			
			| 
				
			 | 
			
				760
			 | 
			
			
				+ 
			 | 
		
	
		
			
			| 
				
			 | 
			
				761
			 | 
			
			
				+    if [[ "$check_architecture" == *"64"* && "$check_architecture" != *"arm"* ]]; then 
			 | 
		
	
		
			
			| 
				
			 | 
			
				762
			 | 
			
			
				+        echo "ExecStart=/opt/ccl/lx86cl64 -l /root/quicklisp/setup.lisp -l launch.lisp" >> /etc/systemd/system/turtl.service 
			 | 
		
	
		
			
			| 
				
			 | 
			
				763
			 | 
			
			
				+    else 
			 | 
		
	
		
			
			| 
				
			 | 
			
				764
			 | 
			
			
				+        if [[ "$check_architecture" != *"arm"* ]]; then 
			 | 
		
	
		
			
			| 
				
			 | 
			
				765
			 | 
			
			
				+            echo "ExecStart=/opt/ccl/lx86cl -l /root/quicklisp/setup.lisp -l launch.lisp" >> /etc/systemd/system/turtl.service 
			 | 
		
	
		
			
			| 
				
			 | 
			
				766
			 | 
			
			
				+        else 
			 | 
		
	
		
			
			| 
				
			 | 
			
				767
			 | 
			
			
				+            echo "ExecStart=/opt/ccl/larmcl -l /root/quicklisp/setup.lisp -l launch.lisp" >> /etc/systemd/system/turtl.service 
			 | 
		
	
		
			
			| 
				
			 | 
			
				768
			 | 
			
			
				+        fi 
			 | 
		
	
		
			
			| 
				
			 | 
			
				769
			 | 
			
			
				+    fi 
			 | 
		
	
		
			
			| 
				
			 | 
			
				770
			 | 
			
			
				+    echo '' >> /etc/systemd/system/turtl.service 
			 | 
		
	
		
			
			| 
				
			 | 
			
				771
			 | 
			
			
				+    echo '[Install]' >> /etc/systemd/system/turtl.service 
			 | 
		
	
		
			
			| 
				
			 | 
			
				772
			 | 
			
			
				+    echo 'WantedBy=multi-user.target' >> /etc/systemd/system/turtl.service 
			 | 
		
	
		
			
			| 
				
			 | 
			
				773
			 | 
			
			
				+    chmod +x /etc/systemd/system/turtl.service 
			 | 
		
	
		
			
			| 
				
			 | 
			
				774
			 | 
			
			
				+ 
			 | 
		
	
		
			
			| 
				
			 | 
			
				775
			 | 
			
			
				+    systemctl enable turtl 
			 | 
		
	
		
			
			| 
				
			 | 
			
				776
			 | 
			
			
				+    systemctl daemon-reload 
			 | 
		
	
		
			
			| 
				
			 | 
			
				777
			 | 
			
			
				+    systemctl start turtl 
			 | 
		
	
		
			
			| 
				
			 | 
			
				778
			 | 
			
			
				+} 
			 | 
		
	
		
			
			| 
				
			 | 
			
				779
			 | 
			
			
				+ 
			 | 
		
	
		
			
			| 
				
			 | 
			
				780
			 | 
			
			
				+function install_tutl_api { 
			 | 
		
	
		
			
			| 
				
			 | 
			
				781
			 | 
			
			
				+    # https://github.com/ArthurGarnier/turtl-docker 
			 | 
		
	
		
			
			| 
				
			 | 
			
				782
			 | 
			
			
				+    apt-get -yq install wget libterm-readline-perl-perl gcc libuv1-dev 
			 | 
		
	
		
			
			| 
				
			 | 
			
				783
			 | 
			
			
				+ 
			 | 
		
	
		
			
			| 
				
			 | 
			
				784
			 | 
			
			
				+    if [ ! -d $INSTALL_DIR ]; then 
			 | 
		
	
		
			
			| 
				
			 | 
			
				785
			 | 
			
			
				+        mkdir -p $INSTALL_DIR 
			 | 
		
	
		
			
			| 
				
			 | 
			
				786
			 | 
			
			
				+    fi 
			 | 
		
	
		
			
			| 
				
			 | 
			
				787
			 | 
			
			
				+    cd $INSTALL_DIR 
			 | 
		
	
		
			
			| 
				
			 | 
			
				788
			 | 
			
			
				+    check_architecture=$(uname -a) 
			 | 
		
	
		
			
			| 
				
			 | 
			
				789
			 | 
			
			
				+ 
			 | 
		
	
		
			
			| 
				
			 | 
			
				790
			 | 
			
			
				+    # Install ccl 
			 | 
		
	
		
			
			| 
				
			 | 
			
				791
			 | 
			
			
				+    if [[ "$check_architecture" != *"arm"* ]]; then 
			 | 
		
	
		
			
			| 
				
			 | 
			
				792
			 | 
			
			
				+        wget -P /opt/ ftp://ftp.clozure.com/pub/release/1.11/ccl-1.11-linuxx86.tar.gz 
			 | 
		
	
		
			
			| 
				
			 | 
			
				793
			 | 
			
			
				+        mkdir -p /opt/ccl 
			 | 
		
	
		
			
			| 
				
			 | 
			
				794
			 | 
			
			
				+        tar xvzf /opt/ccl-1.11-linuxx86.tar.gz -C /opt/ccl --strip-components=1 
			 | 
		
	
		
			
			| 
				
			 | 
			
				795
			 | 
			
			
				+    else 
			 | 
		
	
		
			
			| 
				
			 | 
			
				796
			 | 
			
			
				+        wget -P /opt/ ftp://ftp.clozure.com/pub/release/1.11/ccl-1.11-linuxarm.tar.gz 
			 | 
		
	
		
			
			| 
				
			 | 
			
				797
			 | 
			
			
				+        mkdir -p /opt/ccl 
			 | 
		
	
		
			
			| 
				
			 | 
			
				798
			 | 
			
			
				+        tar xvzf /opt/ccl-1.11-linuxarm.tar.gz -C /opt/ccl --strip-components=1 
			 | 
		
	
		
			
			| 
				
			 | 
			
				799
			 | 
			
			
				+    fi 
			 | 
		
	
		
			
			| 
				
			 | 
			
				800
			 | 
			
			
				+ 
			 | 
		
	
		
			
			| 
				
			 | 
			
				801
			 | 
			
			
				+    # install quicklisp 
			 | 
		
	
		
			
			| 
				
			 | 
			
				802
			 | 
			
			
				+    cat  << __ENDCONFIG__ > $INSTALL_DIR/quicklisp_install 
			 | 
		
	
		
			
			| 
				
			 | 
			
				803
			 | 
			
			
				+(quicklisp-quickstart:install) 
			 | 
		
	
		
			
			| 
				
			 | 
			
				804
			 | 
			
			
				+(ql:system-apropos "vecto") 
			 | 
		
	
		
			
			| 
				
			 | 
			
				805
			 | 
			
			
				+(ql:quickload "alexandria") 
			 | 
		
	
		
			
			| 
				
			 | 
			
				806
			 | 
			
			
				+(ql:quickload "babel") 
			 | 
		
	
		
			
			| 
				
			 | 
			
				807
			 | 
			
			
				+(ql:quickload "blackbird") 
			 | 
		
	
		
			
			| 
				
			 | 
			
				808
			 | 
			
			
				+(ql:quickload "bordeaux-threads") 
			 | 
		
	
		
			
			| 
				
			 | 
			
				809
			 | 
			
			
				+(ql:quickload "cffi") 
			 | 
		
	
		
			
			| 
				
			 | 
			
				810
			 | 
			
			
				+(ql:quickload "chipz") 
			 | 
		
	
		
			
			| 
				
			 | 
			
				811
			 | 
			
			
				+(ql:quickload "chunga") 
			 | 
		
	
		
			
			| 
				
			 | 
			
				812
			 | 
			
			
				+(ql:quickload "cl-annot") 
			 | 
		
	
		
			
			| 
				
			 | 
			
				813
			 | 
			
			
				+(ql:quickload "cl-async") 
			 | 
		
	
		
			
			| 
				
			 | 
			
				814
			 | 
			
			
				+(ql:quickload "cl-async-future") 
			 | 
		
	
		
			
			| 
				
			 | 
			
				815
			 | 
			
			
				+(ql:quickload "cl-base64") 
			 | 
		
	
		
			
			| 
				
			 | 
			
				816
			 | 
			
			
				+(ql:quickload "cl-fad") 
			 | 
		
	
		
			
			| 
				
			 | 
			
				817
			 | 
			
			
				+(ql:quickload "cl-libuv") 
			 | 
		
	
		
			
			| 
				
			 | 
			
				818
			 | 
			
			
				+(ql:quickload "cl-mongo-id") 
			 | 
		
	
		
			
			| 
				
			 | 
			
				819
			 | 
			
			
				+(ql:quickload "cl-ppcre") 
			 | 
		
	
		
			
			| 
				
			 | 
			
				820
			 | 
			
			
				+(ql:quickload "cl-rethinkdb") 
			 | 
		
	
		
			
			| 
				
			 | 
			
				821
			 | 
			
			
				+(ql:quickload "cl-smtp") 
			 | 
		
	
		
			
			| 
				
			 | 
			
				822
			 | 
			
			
				+(ql:quickload "cl+ssl") 
			 | 
		
	
		
			
			| 
				
			 | 
			
				823
			 | 
			
			
				+(ql:quickload "cl-syntax") 
			 | 
		
	
		
			
			| 
				
			 | 
			
				824
			 | 
			
			
				+(ql:quickload "cl-utilities") 
			 | 
		
	
		
			
			| 
				
			 | 
			
				825
			 | 
			
			
				+(ql:quickload "cl-vectors") 
			 | 
		
	
		
			
			| 
				
			 | 
			
				826
			 | 
			
			
				+(ql:quickload "do-urlencode") 
			 | 
		
	
		
			
			| 
				
			 | 
			
				827
			 | 
			
			
				+(ql:quickload "drakma") 
			 | 
		
	
		
			
			| 
				
			 | 
			
				828
			 | 
			
			
				+(ql:quickload "drakma-async") 
			 | 
		
	
		
			
			| 
				
			 | 
			
				829
			 | 
			
			
				+(ql:quickload "event-glue") 
			 | 
		
	
		
			
			| 
				
			 | 
			
				830
			 | 
			
			
				+(ql:quickload "fast-http") 
			 | 
		
	
		
			
			| 
				
			 | 
			
				831
			 | 
			
			
				+(ql:quickload "fast-io") 
			 | 
		
	
		
			
			| 
				
			 | 
			
				832
			 | 
			
			
				+(ql:quickload "flexi-streams") 
			 | 
		
	
		
			
			| 
				
			 | 
			
				833
			 | 
			
			
				+(ql:quickload "ironclad") 
			 | 
		
	
		
			
			| 
				
			 | 
			
				834
			 | 
			
			
				+(ql:quickload "jonathan") 
			 | 
		
	
		
			
			| 
				
			 | 
			
				835
			 | 
			
			
				+(ql:quickload "local-time") 
			 | 
		
	
		
			
			| 
				
			 | 
			
				836
			 | 
			
			
				+(ql:quickload "md5") 
			 | 
		
	
		
			
			| 
				
			 | 
			
				837
			 | 
			
			
				+(ql:quickload "named-readtables") 
			 | 
		
	
		
			
			| 
				
			 | 
			
				838
			 | 
			
			
				+(ql:quickload "nibbles") 
			 | 
		
	
		
			
			| 
				
			 | 
			
				839
			 | 
			
			
				+(ql:quickload "proc-parse") 
			 | 
		
	
		
			
			| 
				
			 | 
			
				840
			 | 
			
			
				+(ql:quickload "puri") 
			 | 
		
	
		
			
			| 
				
			 | 
			
				841
			 | 
			
			
				+(ql:quickload "quri") 
			 | 
		
	
		
			
			| 
				
			 | 
			
				842
			 | 
			
			
				+(ql:quickload "salza2") 
			 | 
		
	
		
			
			| 
				
			 | 
			
				843
			 | 
			
			
				+(ql:quickload "secure-random") 
			 | 
		
	
		
			
			| 
				
			 | 
			
				844
			 | 
			
			
				+(ql:quickload "smart-buffer") 
			 | 
		
	
		
			
			| 
				
			 | 
			
				845
			 | 
			
			
				+(ql:quickload "split-sequence") 
			 | 
		
	
		
			
			| 
				
			 | 
			
				846
			 | 
			
			
				+(ql:quickload "static-vectors") 
			 | 
		
	
		
			
			| 
				
			 | 
			
				847
			 | 
			
			
				+(ql:quickload "trivial-backtrace") 
			 | 
		
	
		
			
			| 
				
			 | 
			
				848
			 | 
			
			
				+(ql:quickload "trivial-features") 
			 | 
		
	
		
			
			| 
				
			 | 
			
				849
			 | 
			
			
				+(ql:quickload "trivial-garbage") 
			 | 
		
	
		
			
			| 
				
			 | 
			
				850
			 | 
			
			
				+(ql:quickload "trivial-gray-streams") 
			 | 
		
	
		
			
			| 
				
			 | 
			
				851
			 | 
			
			
				+(ql:quickload "trivial-types") 
			 | 
		
	
		
			
			| 
				
			 | 
			
				852
			 | 
			
			
				+(ql:quickload "usocket") 
			 | 
		
	
		
			
			| 
				
			 | 
			
				853
			 | 
			
			
				+(ql:quickload "vecto") 
			 | 
		
	
		
			
			| 
				
			 | 
			
				854
			 | 
			
			
				+(ql:quickload "vom") 
			 | 
		
	
		
			
			| 
				
			 | 
			
				855
			 | 
			
			
				+(ql:quickload "wookie") 
			 | 
		
	
		
			
			| 
				
			 | 
			
				856
			 | 
			
			
				+(ql:quickload "xmls") 
			 | 
		
	
		
			
			| 
				
			 | 
			
				857
			 | 
			
			
				+(ql:quickload "xsubseq") 
			 | 
		
	
		
			
			| 
				
			 | 
			
				858
			 | 
			
			
				+(ql:quickload "yason") 
			 | 
		
	
		
			
			| 
				
			 | 
			
				859
			 | 
			
			
				+(ql:quickload "zpb-ttf") 
			 | 
		
	
		
			
			| 
				
			 | 
			
				860
			 | 
			
			
				+(ql:quickload "zpng") 
			 | 
		
	
		
			
			| 
				
			 | 
			
				861
			 | 
			
			
				+(ql:add-to-init-file) 
			 | 
		
	
		
			
			| 
				
			 | 
			
				862
			 | 
			
			
				+(quit) 
			 | 
		
	
		
			
			| 
				
			 | 
			
				863
			 | 
			
			
				+__ENDCONFIG__ 
			 | 
		
	
		
			
			| 
				
			 | 
			
				864
			 | 
			
			
				+ 
			 | 
		
	
		
			
			| 
				
			 | 
			
				865
			 | 
			
			
				+    wget https://beta.quicklisp.org/quicklisp.lisp 
			 | 
		
	
		
			
			| 
				
			 | 
			
				866
			 | 
			
			
				+    if [[ "$check_architecture" != *"arm"* ]]; then 
			 | 
		
	
		
			
			| 
				
			 | 
			
				867
			 | 
			
			
				+        if [[ "$check_architecture" == *"64"* ]]; then 
			 | 
		
	
		
			
			| 
				
			 | 
			
				868
			 | 
			
			
				+            cat $INSTALL_DIR/quicklisp_install | /opt/ccl/lx86cl64 --load /quicklisp.lisp 
			 | 
		
	
		
			
			| 
				
			 | 
			
				869
			 | 
			
			
				+        else 
			 | 
		
	
		
			
			| 
				
			 | 
			
				870
			 | 
			
			
				+            cat $INSTALL_DIR/quicklisp_install | /opt/ccl/lx86cl --load /quicklisp.lisp 
			 | 
		
	
		
			
			| 
				
			 | 
			
				871
			 | 
			
			
				+        fi 
			 | 
		
	
		
			
			| 
				
			 | 
			
				872
			 | 
			
			
				+    else 
			 | 
		
	
		
			
			| 
				
			 | 
			
				873
			 | 
			
			
				+        cat $INSTALL_DIR/quicklisp_install | /opt/ccl/larmcl --load /quicklisp.lisp 
			 | 
		
	
		
			
			| 
				
			 | 
			
				874
			 | 
			
			
				+    fi 
			 | 
		
	
		
			
			| 
				
			 | 
			
				875
			 | 
			
			
				+    rm $INSTALL_DIR/quicklisp_install 
			 | 
		
	
		
			
			| 
				
			 | 
			
				876
			 | 
			
			
				+ 
			 | 
		
	
		
			
			| 
				
			 | 
			
				877
			 | 
			
			
				+    install_rethinkdb 
			 | 
		
	
		
			
			| 
				
			 | 
			
				878
			 | 
			
			
				+ 
			 | 
		
	
		
			
			| 
				
			 | 
			
				879
			 | 
			
			
				+    # install turtl API 
			 | 
		
	
		
			
			| 
				
			 | 
			
				880
			 | 
			
			
				+    cd /opt/ 
			 | 
		
	
		
			
			| 
				
			 | 
			
				881
			 | 
			
			
				+    git clone $TURTL_API_REPO /opt/api 
			 | 
		
	
		
			
			| 
				
			 | 
			
				882
			 | 
			
			
				+    cd /opt/api 
			 | 
		
	
		
			
			| 
				
			 | 
			
				883
			 | 
			
			
				+    git checkout $TURTL_API_COMMIT -b $TURTL_API_COMMIT 
			 | 
		
	
		
			
			| 
				
			 | 
			
				884
			 | 
			
			
				+    cd /root/quicklisp/local-projects 
			 | 
		
	
		
			
			| 
				
			 | 
			
				885
			 | 
			
			
				+    git clone git://github.com/orthecreedence/cl-hash-util 
			 | 
		
	
		
			
			| 
				
			 | 
			
				886
			 | 
			
			
				+    if [[ "$check_architecture" != *"arm"* ]]; then 
			 | 
		
	
		
			
			| 
				
			 | 
			
				887
			 | 
			
			
				+        if [[ "$check_architecture" == *"64"* ]]; then 
			 | 
		
	
		
			
			| 
				
			 | 
			
				888
			 | 
			
			
				+            /opt/ccl/lx86cl64 -l /root/quicklisp/setup.lisp 
			 | 
		
	
		
			
			| 
				
			 | 
			
				889
			 | 
			
			
				+        else 
			 | 
		
	
		
			
			| 
				
			 | 
			
				890
			 | 
			
			
				+            /opt/ccl/lx86cl -l /root/quicklisp/setup.lisp 
			 | 
		
	
		
			
			| 
				
			 | 
			
				891
			 | 
			
			
				+        fi 
			 | 
		
	
		
			
			| 
				
			 | 
			
				892
			 | 
			
			
				+    else 
			 | 
		
	
		
			
			| 
				
			 | 
			
				893
			 | 
			
			
				+        /opt/ccl/larmcl -l /root/quicklisp/setup.lisp 
			 | 
		
	
		
			
			| 
				
			 | 
			
				894
			 | 
			
			
				+    fi 
			 | 
		
	
		
			
			| 
				
			 | 
			
				895
			 | 
			
			
				+ 
			 | 
		
	
		
			
			| 
				
			 | 
			
				896
			 | 
			
			
				+    # config 
			 | 
		
	
		
			
			| 
				
			 | 
			
				897
			 | 
			
			
				+    echo '(defvar *enabled-cors-resources* "resource://turtl-at-lyonbros-dot-com"' > /opt/api/config/config.footer 
			 | 
		
	
		
			
			| 
				
			 | 
			
				898
			 | 
			
			
				+    echo '  "When set, will enable CORS for resource:// origins if they match the given' >> /opt/api/config/config.footer 
			 | 
		
	
		
			
			| 
				
			 | 
			
				899
			 | 
			
			
				+    echo '   string. Entries should be comma separated (this string is passed verbatim in' >> /opt/api/config/config.footer 
			 | 
		
	
		
			
			| 
				
			 | 
			
				900
			 | 
			
			
				+    echo '   the Access-Control-Allow-Origin header).")' >> /opt/api/config/config.footer 
			 | 
		
	
		
			
			| 
				
			 | 
			
				901
			 | 
			
			
				+    echo '(defparameter *public-actions*' >> /opt/api/config/config.footer 
			 | 
		
	
		
			
			| 
				
			 | 
			
				902
			 | 
			
			
				+    echo "  \`((:post . ,(concatenate 'string *api-path* \"/users\"))" >> /opt/api/config/config.footer 
			 | 
		
	
		
			
			| 
				
			 | 
			
				903
			 | 
			
			
				+    echo "    (:post . ,(concatenate 'string *api-path* \"/log/error\"))" >> /opt/api/config/config.footer 
			 | 
		
	
		
			
			| 
				
			 | 
			
				904
			 | 
			
			
				+    echo '    (:post . "/cla/sign")' >> /opt/api/config/config.footer 
			 | 
		
	
		
			
			| 
				
			 | 
			
				905
			 | 
			
			
				+    echo '    (:get  . "/ping")' >> /opt/api/config/config.footer 
			 | 
		
	
		
			
			| 
				
			 | 
			
				906
			 | 
			
			
				+    echo '    (:get  . "/admin")' >> /opt/api/config/config.footer 
			 | 
		
	
		
			
			| 
				
			 | 
			
				907
			 | 
			
			
				+    echo "    (:get . ,(cl-ppcre:create-scanner (concatenate 'string *api-path* \"/invites/codes/([0-9a-f-]+)\"))))" >> /opt/api/config/config.footer 
			 | 
		
	
		
			
			| 
				
			 | 
			
				908
			 | 
			
			
				+    echo "  \"A list of public resources/actions that do not require authentication.\")" >> /opt/api/config/config.footer 
			 | 
		
	
		
			
			| 
				
			 | 
			
				909
			 | 
			
			
				+    echo "(defvar *analytics* '(:enabled t" >> /opt/api/config/config.footer 
			 | 
		
	
		
			
			| 
				
			 | 
			
				910
			 | 
			
			
				+    echo '                      :db "analytics"))' >> /opt/api/config/config.footer 
			 | 
		
	
		
			
			| 
				
			 | 
			
				911
			 | 
			
			
				+ 
			 | 
		
	
		
			
			| 
				
			 | 
			
				912
			 | 
			
			
				+    echo "(pushnew \"./\" asdf:*central-registry* :test #'equal)" > /opt/api/launch.lisp 
			 | 
		
	
		
			
			| 
				
			 | 
			
				913
			 | 
			
			
				+    echo '(load "start")' >> /opt/api/launch.lisp 
			 | 
		
	
		
			
			| 
				
			 | 
			
				914
			 | 
			
			
				+ 
			 | 
		
	
		
			
			| 
				
			 | 
			
				915
			 | 
			
			
				+    turtl_setup 
			 | 
		
	
		
			
			| 
				
			 | 
			
				916
			 | 
			
			
				+} 
			 | 
		
	
		
			
			| 
				
			 | 
			
				917
			 | 
			
			
				+ 
			 | 
		
	
		
			
			| 
				
			 | 
			
				918
			 | 
			
			
				+function install_tutl_app { 
			 | 
		
	
		
			
			| 
				
			 | 
			
				919
			 | 
			
			
				+    echo -n '' 
			 | 
		
	
		
			
			| 
				
			 | 
			
				920
			 | 
			
			
				+} 
			 | 
		
	
		
			
			| 
				
			 | 
			
				921
			 | 
			
			
				+ 
			 | 
		
	
		
			
			| 
				
			 | 
			
				922
			 | 
			
			
				+function install_tutl { 
			 | 
		
	
		
			
			| 
				
			 | 
			
				923
			 | 
			
			
				+    install_tutl_api 
			 | 
		
	
		
			
			| 
				
			 | 
			
				924
			 | 
			
			
				+    install_tutl_app 
			 | 
		
	
		
			
			| 
				
			 | 
			
				925
			 | 
			
			
				+ 
			 | 
		
	
		
			
			| 
				
			 | 
			
				926
			 | 
			
			
				+    #systemctl restart nginx 
			 | 
		
	
		
			
			| 
				
			 | 
			
				927
			 | 
			
			
				+ 
			 | 
		
	
		
			
			| 
				
			 | 
			
				928
			 | 
			
			
				+    APP_INSTALLED=1 
			 | 
		
	
		
			
			| 
				
			 | 
			
				929
			 | 
			
			
				+} 
			 |