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
                   MY_USERNAME)
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
 function remove_user_lychee {
78
 function remove_user_lychee {
52
     remove_username="$1"
79
     remove_username="$1"
53
 
80
 
109
         LYCHEE_DOMAIN_NAME=$(get_completion_param "lychee domain")
136
         LYCHEE_DOMAIN_NAME=$(get_completion_param "lychee domain")
110
     fi
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
         restart_site
145
         restart_site
123
     fi
146
     fi
124
 }
147
 }
129
         LYCHEE_DOMAIN_NAME=$(get_completion_param "lychee domain")
152
         LYCHEE_DOMAIN_NAME=$(get_completion_param "lychee domain")
130
     fi
153
     fi
131
     if [ $LYCHEE_DOMAIN_NAME ]; then
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
     fi
160
     fi
165
 }
161
 }
166
 
162
 
167
 function backup_remote_lychee {
163
 function backup_remote_lychee {
164
+    LYCHEE_DOMAIN_NAME='lychee.local'
168
     if grep -q "lychee domain" $COMPLETION_FILE; then
165
     if grep -q "lychee domain" $COMPLETION_FILE; then
169
         LYCHEE_DOMAIN_NAME=$(get_completion_param "lychee domain")
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
     fi
178
     fi
180
 }
179
 }
181
 
180
 
182
 function restore_remote_lychee {
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
         LYCHEE_DOMAIN_NAME=$(get_completion_param "lychee domain")
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
     fi
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
 function remove_lychee {
197
 function remove_lychee {
222
     read_config_param "LYCHEE_DOMAIN_NAME"
202
     read_config_param "LYCHEE_DOMAIN_NAME"
223
     nginx_dissite $LYCHEE_DOMAIN_NAME
203
     nginx_dissite $LYCHEE_DOMAIN_NAME
224
     remove_certs ${LYCHEE_DOMAIN_NAME}
204
     remove_certs ${LYCHEE_DOMAIN_NAME}
205
+
206
+    drop_database lychee
207
+    remove_backup_database_local lychee
208
+
225
     if [ -f /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME ]; then
209
     if [ -f /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME ]; then
226
         rm -f /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
210
         rm -f /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
227
     fi
211
     fi
272
     echo '    location / {' >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
256
     echo '    location / {' >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
273
     function_check nginx_limits
257
     function_check nginx_limits
274
     nginx_limits $LYCHEE_DOMAIN_NAME
258
     nginx_limits $LYCHEE_DOMAIN_NAME
275
-    echo '        rewrite ^/(.*) /index.php?q=$uri&$args last;' >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
276
     echo '    }' >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
259
     echo '    }' >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
277
     echo '' >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
260
     echo '' >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
278
     echo "    # make sure webfinger and other well known services aren't blocked" >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
261
     echo "    # make sure webfinger and other well known services aren't blocked" >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
281
     echo '        allow all;' >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
264
     echo '        allow all;' >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
282
     echo '    }' >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
265
     echo '    }' >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
283
     echo '' >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
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
     echo '    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000' >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
267
     echo '    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000' >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
299
     echo '    # or a unix socket' >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
268
     echo '    # or a unix socket' >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
300
     echo '    location ~* \.php$ {' >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
269
     echo '    location ~* \.php$ {' >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
339
     echo 'server {' >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
308
     echo 'server {' >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
340
     echo "    listen 127.0.0.1:${LYCHEE_ONION_PORT} default_server;" >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
309
     echo "    listen 127.0.0.1:${LYCHEE_ONION_PORT} default_server;" >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
341
     echo "    root /var/www/$LYCHEE_DOMAIN_NAME/htdocs;" >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
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
     echo '    access_log off;' >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
316
     echo '    access_log off;' >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
344
     echo "    error_log /var/log/nginx/${LYCHEE_DOMAIN_NAME}_error_ssl.log $WEBSERVER_LOG_LEVEL;" >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
317
     echo "    error_log /var/log/nginx/${LYCHEE_DOMAIN_NAME}_error_ssl.log $WEBSERVER_LOG_LEVEL;" >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
345
     echo '    index index.php;' >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
318
     echo '    index index.php;' >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
353
     echo '    location / {' >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
326
     echo '    location / {' >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
354
     function_check nginx_limits
327
     function_check nginx_limits
355
     nginx_limits $LYCHEE_DOMAIN_NAME
328
     nginx_limits $LYCHEE_DOMAIN_NAME
356
-    echo '        rewrite ^/(.*) /index.php?q=$uri&$args last;' >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
357
     echo '    }' >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
329
     echo '    }' >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
358
     echo '' >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
330
     echo '' >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
359
     echo "    # make sure webfinger and other well known services aren't blocked" >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
331
     echo "    # make sure webfinger and other well known services aren't blocked" >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
362
     echo '        allow all;' >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
334
     echo '        allow all;' >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
363
     echo '    }' >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
335
     echo '    }' >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
364
     echo '' >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
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
     echo '    # block these file types' >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
337
     echo '    # block these file types' >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
375
     echo '    location ~* \.(tpl|md|tgz|log|out)$ {' >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
338
     echo '    location ~* \.(tpl|md|tgz|log|out)$ {' >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
376
     echo '        deny all;' >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
339
     echo '        deny all;' >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
451
     else
414
     else
452
         echo -n '' > /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
415
         echo -n '' > /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
453
     fi
416
     fi
417
+
418
+    LYCHEE_ONION_HOSTNAME=$(add_onion_service lychee 80 ${LYCHEE_ONION_PORT})
419
+
454
     function_check install_lychee_website_onion
420
     function_check install_lychee_website_onion
455
     install_lychee_website_onion
421
     install_lychee_website_onion
456
 
422
 
464
     chmod -R 777 /var/www/$LYCHEE_DOMAIN_NAME/htdocs/data/
430
     chmod -R 777 /var/www/$LYCHEE_DOMAIN_NAME/htdocs/data/
465
     chown -R www-data:www-data /var/www/$LYCHEE_DOMAIN_NAME/htdocs
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
     function_check nginx_ensite
433
     function_check nginx_ensite
470
     nginx_ensite $LYCHEE_DOMAIN_NAME
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
     systemctl restart php5-fpm
445
     systemctl restart php5-fpm
473
     systemctl restart nginx
446
     systemctl restart nginx
474
 
447