Browse Source

Use onion address

Bob Mottram 8 years ago
parent
commit
1964e90348
1 changed files with 81 additions and 108 deletions
  1. 81
    108
      src/freedombone-app-lychee

+ 81
- 108
src/freedombone-app-lychee View File

@@ -48,6 +48,33 @@ lychee_variables=(LYCHEE_REPO
48 48
                   MY_USERNAME)
49 49
 
50 50
 
51
+function get_mariadb_git_admin_password {
52
+    if [ -f /home/${MY_USERNAME}/README ]; then
53
+        if grep -q "Lychee admin user password" /home/${MY_USERNAME}/README; then
54
+            GIT_ADMIN_PASSWORD=$(cat /home/${MY_USERNAME}/README | grep "Lychee admin user password" | awk -F ':' '{print $2}' | sed 's/^ *//')
55
+        fi
56
+    fi
57
+}
58
+
59
+function lychee_create_database {
60
+    function_check get_mariadb_git_admin_password
61
+    get_mariadb_git_admin_password
62
+
63
+    if [ ! ${GIT_ADMIN_PASSWORD} ]; then
64
+        if [ -f ${IMAGE_PASSWORD_FILE} ]; then
65
+            GIT_ADMIN_PASSWORD="$(printf `cat $IMAGE_PASSWORD_FILE`)"
66
+        else
67
+            GIT_ADMIN_PASSWORD="$(create_password ${MINIMUM_PASSWORD_LENGTH})"
68
+        fi
69
+    fi
70
+    if [ ! $GIT_ADMIN_PASSWORD ]; then
71
+        return
72
+    fi
73
+
74
+    function_check create_database
75
+    create_database lychee "$LYCHEE_ADMIN_PASSWORD"
76
+}
77
+
51 78
 function remove_user_lychee {
52 79
     remove_username="$1"
53 80
 
@@ -109,16 +136,12 @@ function backup_local_lychee {
109 136
         LYCHEE_DOMAIN_NAME=$(get_completion_param "lychee domain")
110 137
     fi
111 138
 
112
-    source_directory=/var/www/${LYCHEE_DOMAIN_NAME}/htdocs
113
-    if [ -d $source_directory ]; then
114
-        dest_directory=lychee
115
-        function_check suspend_site
116
-        suspend_site ${LYCHEE_DOMAIN_NAME}
117
-
118
-        function_check backup_directory_to_usb
119
-        backup_directory_to_usb $source_directory $dest_directory
139
+    lychee_path=/var/www/${LYCHEE_DOMAIN_NAME}/htdocs
140
+    if [ -d $lychee_path ]; then
141
+        function_check backup_database_to_usb
142
+        backup_database_to_usb lychee
120 143
 
121
-        function_check restart_site
144
+        backup_directory_to_usb $lychee_path lychee
122 145
         restart_site
123 146
     fi
124 147
 }
@@ -129,89 +152,46 @@ function restore_local_lychee {
129 152
         LYCHEE_DOMAIN_NAME=$(get_completion_param "lychee domain")
130 153
     fi
131 154
     if [ $LYCHEE_DOMAIN_NAME ]; then
132
-        temp_restore_dir=/root/templychee
133
-        if [ -d $USB_MOUNT/backup/lychee ]; then
134
-            restore_directory_from_usb $temp_restore_dir lychee
135
-        else
136
-            restore_directory_from_usb $temp_restore_dir blog
137
-        fi
138
-        if [ -d /var/www/${LYCHEE_DOMAIN_NAME}/htdocs ]; then
139
-            if [ -d /var/www/${LYCHEE_DOMAIN_NAME}/previous ]; then
140
-                rm -rf /var/www/${LYCHEE_DOMAIN_NAME}/previous
141
-            fi
142
-            mv /var/www/${LYCHEE_DOMAIN_NAME}/htdocs /var/www/${LYCHEE_DOMAIN_NAME}/previous
143
-        fi
144
-        temp_source_dir=$(find ${temp_restore_dir} -name htdocs)
145
-        cp -r ${temp_source_dir} /var/www/${LYCHEE_DOMAIN_NAME}/
146
-        if [ ! "$?" = "0" ]; then
147
-            if [ -d /var/www/${LYCHEE_DOMAIN_NAME}/previous ]; then
148
-                mv /var/www/${LYCHEE_DOMAIN_NAME}/previous /var/www/${LYCHEE_DOMAIN_NAME}/htdocs
149
-            fi
150
-            set_user_permissions
151
-            backup_unmount_drive
152
-            exit 54675
153
-        fi
154
-        rm -rf ${temp_restore_dir}
155
-        chown -R www-data:www-data /var/www/${LYCHEE_DOMAIN_NAME}/htdocs
156
-        # Ensure that the bundled SSL cert is being used
157
-        if [ -f /etc/ssl/certs/${LYCHEE_DOMAIN_NAME}.bundle.crt ]; then
158
-            sed -i "s|${LYCHEE_DOMAIN_NAME}.crt|${LYCHEE_DOMAIN_NAME}.bundle.crt|g" /etc/nginx/sites-available/${LYCHEE_DOMAIN_NAME}
159
-        fi
160
-        if [ -d /etc/letsencrypt/live/${LYCHEE_DOMAIN_NAME} ]; then
161
-            ln -s /etc/letsencrypt/live/${LYCHEE_DOMAIN_NAME}/privkey.pem /etc/ssl/private/${LYCHEE_DOMAIN_NAME}.key
162
-            ln -s /etc/letsencrypt/live/${LYCHEE_DOMAIN_NAME}/fullchain.pem /etc/ssl/certs/${LYCHEE_DOMAIN_NAME}.pem
163
-        fi
155
+        function_check lychee_create_database
156
+        lychee_create_database
157
+
158
+        function_check restore_database
159
+        restore_database lychee ${LYCHEE_DOMAIN_NAME}
164 160
     fi
165 161
 }
166 162
 
167 163
 function backup_remote_lychee {
164
+    LYCHEE_DOMAIN_NAME='lychee.local'
168 165
     if grep -q "lychee domain" $COMPLETION_FILE; then
169 166
         LYCHEE_DOMAIN_NAME=$(get_completion_param "lychee domain")
170
-        temp_backup_dir=/var/www/${LYCHEE_DOMAIN_NAME}/htdocs
171
-        if [ -d $temp_backup_dir ]; then
172
-            echo $"Backing up lychee"
173
-            backup_directory_to_friend $temp_backup_dir lychee
174
-            echo $"Backup of lychee complete"
175
-        else
176
-            echo $"Lychee domain specified but not found in $temp_backup_dir"
177
-            exit 2578
178
-        fi
167
+    fi
168
+
169
+    temp_backup_dir=/var/www/${LYCHEE_DOMAIN_NAME}/htdocs
170
+    if [ -d $temp_backup_dir ]; then
171
+        suspend_site ${LYCHEE_DOMAIN_NAME}
172
+        backup_database_to_friend lychee
173
+        backup_directory_to_friend $temp_backup_dir lychee
174
+        restart_site
175
+    else
176
+        echo $"Lychee domain specified but not found in /var/www/${LYCHEE_DOMAIN_NAME}"
177
+        exit 2578
179 178
     fi
180 179
 }
181 180
 
182 181
 function restore_remote_lychee {
183
-    if [ -d $SERVER_DIRECTORY/backup/lychee ]; then
182
+    LYCHEE_DOMAIN_NAME='lychee.local'
183
+    if grep -q "lychee domain" $COMPLETION_FILE; then
184 184
         LYCHEE_DOMAIN_NAME=$(get_completion_param "lychee domain")
185
-        echo $"Restoring lychee installation $LYCHEE_DOMAIN_NAME"
186
-        temp_restore_dir=/root/templychee
187
-        mkdir $temp_restore_dir
188
-        function_check restore_directory_from_friend
189
-        restore_directory_from_friend $temp_restore_dir lychee
190
-        if [ -d /var/www/${LYCHEE_DOMAIN_NAME}/htdocs ]; then
191
-            if [ -d /var/www/${LYCHEE_DOMAIN_NAME}/previous ]; then
192
-                rm -rf /var/www/${LYCHEE_DOMAIN_NAME}/previous
193
-            fi
194
-            mv /var/www/${LYCHEE_DOMAIN_NAME}/htdocs /var/www/${LYCHEE_DOMAIN_NAME}/previous
195
-        fi
196
-        temp_source_dir=$(find ${temp_restore_dir} -name htdocs)
197
-        cp -r ${temp_source_dir} /var/www/${LYCHEE_DOMAIN_NAME}/
198
-        if [ ! "$?" = "0" ]; then
199
-            if [ -d /var/www/${LYCHEE_DOMAIN_NAME}/previous ]; then
200
-                mv /var/www/${LYCHEE_DOMAIN_NAME}/previous /var/www/${LYCHEE_DOMAIN_NAME}/htdocs
201
-            fi
202
-            exit 593
203
-        fi
204
-        rm -rf ${temp_restore_dir}
205
-        # Ensure that the bundled SSL cert is being used
206
-        if [ -f /etc/ssl/certs/${LYCHEE_DOMAIN_NAME}.bundle.crt ]; then
207
-            sed -i "s|${LYCHEE_DOMAIN_NAME}.crt|${LYCHEE_DOMAIN_NAME}.bundle.crt|g" /etc/nginx/sites-available/${LYCHEE_DOMAIN_NAME}
208
-        fi
209
-        if [ -d /etc/letsencrypt/live/${LYCHEE_DOMAIN_NAME} ]; then
210
-            ln -s /etc/letsencrypt/live/${LYCHEE_DOMAIN_NAME}/privkey.pem /etc/ssl/private/${LYCHEE_DOMAIN_NAME}.key
211
-            ln -s /etc/letsencrypt/live/${LYCHEE_DOMAIN_NAME}/fullchain.pem /etc/ssl/certs/${LYCHEE_DOMAIN_NAME}.pem
212
-        fi
213
-        echo $"Restore of lychee complete"
214 185
     fi
186
+
187
+    function_check restore_database_from_friend
188
+
189
+    function_check lychee_create_database
190
+    lychee_create_database
191
+
192
+    restore_database_from_friend lychee ${LYCHEE_DOMAIN_NAME}
193
+    restart_site
194
+    chown -R lychee: /var/www/$LYCHEE_DOMAIN_NAME/htdocs/
215 195
 }
216 196
 
217 197
 function remove_lychee {
@@ -222,6 +202,10 @@ function remove_lychee {
222 202
     read_config_param "LYCHEE_DOMAIN_NAME"
223 203
     nginx_dissite $LYCHEE_DOMAIN_NAME
224 204
     remove_certs ${LYCHEE_DOMAIN_NAME}
205
+
206
+    drop_database lychee
207
+    remove_backup_database_local lychee
208
+
225 209
     if [ -f /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME ]; then
226 210
         rm -f /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
227 211
     fi
@@ -272,7 +256,6 @@ function install_lychee_website {
272 256
     echo '    location / {' >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
273 257
     function_check nginx_limits
274 258
     nginx_limits $LYCHEE_DOMAIN_NAME
275
-    echo '        rewrite ^/(.*) /index.php?q=$uri&$args last;' >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
276 259
     echo '    }' >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
277 260
     echo '' >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
278 261
     echo "    # make sure webfinger and other well known services aren't blocked" >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
@@ -281,20 +264,6 @@ function install_lychee_website {
281 264
     echo '        allow all;' >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
282 265
     echo '    }' >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
283 266
     echo '' >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
284
-    echo '    # statically serve these file types when possible' >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
285
-    echo '    # otherwise fall back to front controller' >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
286
-    echo '    # allow browser to cache them' >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
287
-    echo '    # added .htm for advanced source code editor library' >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
288
-    echo '    location ~* \.(jpg|jpeg|gif|png|ico|css|js|htm|html|ttf|woff|svg)$ {' >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
289
-    echo '        expires 30d;' >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
290
-    echo '        try_files $uri /index.php?q=$uri&$args;' >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
291
-    echo '    }' >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
292
-    echo '' >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
293
-    echo '    # block these file types' >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
294
-    echo '    location ~* \.(tpl|md|tgz|log|out)$ {' >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
295
-    echo '        deny all;' >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
296
-    echo '    }' >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
297
-    echo '' >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
298 267
     echo '    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000' >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
299 268
     echo '    # or a unix socket' >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
300 269
     echo '    location ~* \.php$ {' >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
@@ -339,7 +308,11 @@ function install_lychee_website_onion {
339 308
     echo 'server {' >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
340 309
     echo "    listen 127.0.0.1:${LYCHEE_ONION_PORT} default_server;" >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
341 310
     echo "    root /var/www/$LYCHEE_DOMAIN_NAME/htdocs;" >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
342
-    echo "    server_name $LYCHEE_DOMAIN_NAME;" >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
311
+    if [[ $ONION_ONLY == 'no' ]]; then
312
+        echo "    server_name $LYCHEE_DOMAIN_NAME;" >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
313
+    else
314
+        echo "    server_name $LYCHEE_ONION_HOSTNAME;" >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
315
+    fi
343 316
     echo '    access_log off;' >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
344 317
     echo "    error_log /var/log/nginx/${LYCHEE_DOMAIN_NAME}_error_ssl.log $WEBSERVER_LOG_LEVEL;" >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
345 318
     echo '    index index.php;' >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
@@ -353,7 +326,6 @@ function install_lychee_website_onion {
353 326
     echo '    location / {' >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
354 327
     function_check nginx_limits
355 328
     nginx_limits $LYCHEE_DOMAIN_NAME
356
-    echo '        rewrite ^/(.*) /index.php?q=$uri&$args last;' >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
357 329
     echo '    }' >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
358 330
     echo '' >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
359 331
     echo "    # make sure webfinger and other well known services aren't blocked" >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
@@ -362,15 +334,6 @@ function install_lychee_website_onion {
362 334
     echo '        allow all;' >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
363 335
     echo '    }' >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
364 336
     echo '' >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
365
-    echo '    # statically serve these file types when possible' >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
366
-    echo '    # otherwise fall back to front controller' >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
367
-    echo '    # allow browser to cache them' >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
368
-    echo '    # added .htm for advanced source code editor library' >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
369
-    echo '    location ~* \.(jpg|jpeg|gif|png|ico|css|js|htm|html|ttf|woff|svg)$ {' >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
370
-    echo '        expires 30d;' >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
371
-    echo '        try_files $uri /index.php?q=$uri&$args;' >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
372
-    echo '    }' >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
373
-    echo '' >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
374 337
     echo '    # block these file types' >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
375 338
     echo '    location ~* \.(tpl|md|tgz|log|out)$ {' >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
376 339
     echo '        deny all;' >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
@@ -451,6 +414,9 @@ function install_lychee {
451 414
     else
452 415
         echo -n '' > /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
453 416
     fi
417
+
418
+    LYCHEE_ONION_HOSTNAME=$(add_onion_service lychee 80 ${LYCHEE_ONION_PORT})
419
+
454 420
     function_check install_lychee_website_onion
455 421
     install_lychee_website_onion
456 422
 
@@ -464,11 +430,18 @@ function install_lychee {
464 430
     chmod -R 777 /var/www/$LYCHEE_DOMAIN_NAME/htdocs/data/
465 431
     chown -R www-data:www-data /var/www/$LYCHEE_DOMAIN_NAME/htdocs
466 432
 
467
-    LYCHEE_ONION_HOSTNAME=$(add_onion_service lychee 80 ${LYCHEE_ONION_PORT})
468
-
469 433
     function_check nginx_ensite
470 434
     nginx_ensite $LYCHEE_DOMAIN_NAME
471 435
 
436
+    function_check install_mariadb
437
+    install_mariadb
438
+
439
+    function_check get_mariadb_password
440
+    get_mariadb_password
441
+
442
+    function_check lychee_create_database
443
+    lychee_create_database
444
+
472 445
     systemctl restart php5-fpm
473 446
     systemctl restart nginx
474 447