Browse Source

Blog app tidying

Bob Mottram 8 years ago
parent
commit
5b43026fd4
1 changed files with 143 additions and 123 deletions
  1. 143
    123
      src/freedombone-app-blog

+ 143
- 123
src/freedombone-app-blog View File

@@ -257,122 +257,101 @@ function install_blog_user {
257 257
     echo 'role = admin' >> /var/www/$FULLBLOG_DOMAIN_NAME/htdocs/config/users/$MY_USERNAME.ini
258 258
 }
259 259
 
260
-function install_blog {
261
-    if [ ! $FULLBLOG_DOMAIN_NAME ]; then
262
-	echo $'The blog domain name was not specified'
263
-	exit 5062
264
-    fi
265
-
266
-    if grep -Fxq "install_blog" $COMPLETION_FILE; then
267
-	return
268
-    fi
269
-
270
-    # for the avatar changing command
271
-    apt-get -y install imagemagick
272
-
273
-    if [ ! -d /var/www/$FULLBLOG_DOMAIN_NAME ]; then
274
-	mkdir /var/www/$FULLBLOG_DOMAIN_NAME
275
-    fi
276
-
277
-    cd /var/www/$FULLBLOG_DOMAIN_NAME
278
-    git_clone $FULLBLOG_REPO htdocs
279
-    cd htdocs
280
-    git checkout $FULLBLOG_COMMIT -b $FULLBLOG_COMMIT
281
-    if ! grep -q "Blog commit" $COMPLETION_FILE; then
282
-	echo "Blog commit:$FULLBLOG_COMMIT" >> $COMPLETION_FILE
283
-    else
284
-	sed -i "s/Blog commit.*/Blog commit:$FULLBLOG_COMMIT/g" $COMPLETION_FILE
285
-    fi
286
-    cd /var/www/$FULLBLOG_DOMAIN_NAME
260
+function install_blog_settings {
261
+    cp /var/www/$FULLBLOG_DOMAIN_NAME/htdocs/config/config.ini.example /var/www/$FULLBLOG_DOMAIN_NAME/htdocs/config/config.ini
262
+    sed -i "s|site.url.*|site.url = '/'|g" /var/www/$FULLBLOG_DOMAIN_NAME/htdocs/config/config.ini
263
+    sed -i "s|blog.title.*|blog.title = '$MY_BLOG_TITLE'|g" /var/www/$FULLBLOG_DOMAIN_NAME/htdocs/config/config.ini
264
+    sed -i "s|blog.tagline.*|blog.tagline = '$MY_BLOG_SUBTITLE'|g" /var/www/$FULLBLOG_DOMAIN_NAME/htdocs/config/config.ini
265
+    sed -i 's|timezone.*|timezone = "Europe/London"|g' /var/www/$FULLBLOG_DOMAIN_NAME/htdocs/config/config.ini
266
+    sed -i "s|Your name|$MY_NAME|g" /var/www/$FULLBLOG_DOMAIN_NAME/htdocs/config/config.ini
267
+}
287 268
 
288
-    chown -R www-data:www-data /var/www/$FULLBLOG_DOMAIN_NAME/htdocs
269
+function install_blog_website {
270
+    function_check nginx_http_redirect
271
+    nginx_http_redirect $FULLBLOG_DOMAIN_NAME
272
+    echo 'server {' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
273
+    echo '    listen 443 ssl;' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
274
+    echo "    root /var/www/$FULLBLOG_DOMAIN_NAME/htdocs;" >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
275
+    echo "    server_name $FULLBLOG_DOMAIN_NAME;" >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
276
+    echo '    access_log off;' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
277
+    echo "    error_log /var/log/nginx/${FULLBLOG_DOMAIN_NAME}_error_ssl.log $WEBSERVER_LOG_LEVEL;" >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
278
+    echo '    index index.php;' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
279
+    echo '    charset utf-8;' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
280
+    echo '    proxy_read_timeout 86400s;' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
281
+    function_check nginx_limits
282
+    nginx_limits $FULLBLOG_DOMAIN_NAME
283
+    function_check nginx_ssl
284
+    nginx_ssl $FULLBLOG_DOMAIN_NAME
285
+    function_check nginx_disable_sniffing
286
+    nginx_disable_sniffing $FULLBLOG_DOMAIN_NAME
287
+    echo '    add_header Strict-Transport-Security "max-age=0;";' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
288
+    echo '' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
289
+    echo '    # rewrite to front controller as default rule' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
290
+    echo '    location / {' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
291
+    echo '        rewrite ^/(.*) /index.php?q=$uri&$args last;' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
292
+    echo '    }' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
293
+    echo '' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
294
+    echo "    # make sure webfinger and other well known services aren't blocked" >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
295
+    echo '    # by denying dot files and rewrite request to the front controller' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
296
+    echo '    location ^~ /.well-known/ {' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
297
+    echo '        allow all;' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
298
+    echo '    }' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
299
+    echo '' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
300
+    echo '    # statically serve these file types when possible' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
301
+    echo '    # otherwise fall back to front controller' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
302
+    echo '    # allow browser to cache them' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
303
+    echo '    # added .htm for advanced source code editor library' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
304
+    echo '    location ~* \.(jpg|jpeg|gif|png|ico|css|js|htm|html|ttf|woff|svg)$ {' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
305
+    echo '        expires 30d;' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
306
+    echo '        try_files $uri /index.php?q=$uri&$args;' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
307
+    echo '    }' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
308
+    echo '' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
309
+    echo '    # block these file types' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
310
+    echo '    location ~* \.(tpl|md|tgz|log|out)$ {' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
311
+    echo '        deny all;' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
312
+    echo '    }' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
313
+    echo '' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
314
+    echo '    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
315
+    echo '    # or a unix socket' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
316
+    echo '    location ~* \.php$ {' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
317
+    echo '        # Zero-day exploit defense.' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
318
+    echo '        # http://forum.nginx.org/read.php?2,88845,page=3' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
319
+    echo "        # Won't work properly (404 error) if the file is not stored on this" >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
320
+    echo "        # server, which is entirely possible with php-fpm/php-fcgi." >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
321
+    echo "        # Comment the 'try_files' line out if you set up php-fpm/php-fcgi on" >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
322
+    echo "        # another machine. And then cross your fingers that you won't get hacked." >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
323
+    echo '        try_files $uri $uri/ /index.php;' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
324
+    echo '        # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
325
+    echo '        fastcgi_split_path_info ^(.+\.php)(/.+)$;' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
326
+    echo '        # With php5-cgi alone:' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
327
+    echo '        # fastcgi_pass 127.0.0.1:9000;' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
328
+    echo '        # With php5-fpm:' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
329
+    echo '        fastcgi_pass unix:/var/run/php5-fpm.sock;' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
330
+    echo '        include fastcgi_params;' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
331
+    echo '        fastcgi_index index.php;' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
332
+    echo '        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
333
+    echo '    }' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
334
+    echo '' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
335
+    echo '    # deny access to all dot files' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
336
+    echo '    location ~ /\. {' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
337
+    echo '        deny all;' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
338
+    echo '    }' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
339
+    echo '' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
340
+    echo '    #deny access to store' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
341
+    echo '    location ~ /store {' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
342
+    echo '        deny all;' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
343
+    echo '    }' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
344
+    echo '    location ~ /(data|conf|bin|inc)/ {' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
345
+    echo '      deny all;' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
346
+    echo '    }' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
347
+    echo '    location ~ /\.ht {' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
348
+    echo '      deny  all;' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
349
+    echo '    }' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
350
+    echo '}' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
351
+    echo '' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
352
+}
289 353
 
290
-    if [[ $ONION_ONLY == "no" ]]; then
291
-	function_check nginx_http_redirect
292
-	nginx_http_redirect $FULLBLOG_DOMAIN_NAME
293
-	echo 'server {' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
294
-	echo '    listen 443 ssl;' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
295
-	echo "    root /var/www/$FULLBLOG_DOMAIN_NAME/htdocs;" >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
296
-	echo "    server_name $FULLBLOG_DOMAIN_NAME;" >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
297
-	echo '    access_log off;' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
298
-	echo "    error_log /var/log/nginx/${FULLBLOG_DOMAIN_NAME}_error_ssl.log $WEBSERVER_LOG_LEVEL;" >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
299
-	echo '    index index.php;' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
300
-	echo '    charset utf-8;' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
301
-	echo '    proxy_read_timeout 86400s;' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
302
-	function_check nginx_limits
303
-	nginx_limits $FULLBLOG_DOMAIN_NAME
304
-	function_check nginx_ssl
305
-	nginx_ssl $FULLBLOG_DOMAIN_NAME
306
-	function_check nginx_disable_sniffing
307
-	nginx_disable_sniffing $FULLBLOG_DOMAIN_NAME
308
-	echo '    add_header Strict-Transport-Security "max-age=0;";' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
309
-	echo '' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
310
-	echo '    # rewrite to front controller as default rule' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
311
-	echo '    location / {' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
312
-	echo '        rewrite ^/(.*) /index.php?q=$uri&$args last;' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
313
-	echo '    }' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
314
-	echo '' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
315
-	echo "    # make sure webfinger and other well known services aren't blocked" >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
316
-	echo '    # by denying dot files and rewrite request to the front controller' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
317
-	echo '    location ^~ /.well-known/ {' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
318
-	echo '        allow all;' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
319
-	echo '    }' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
320
-	echo '' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
321
-	echo '    # statically serve these file types when possible' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
322
-	echo '    # otherwise fall back to front controller' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
323
-	echo '    # allow browser to cache them' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
324
-	echo '    # added .htm for advanced source code editor library' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
325
-	echo '    location ~* \.(jpg|jpeg|gif|png|ico|css|js|htm|html|ttf|woff|svg)$ {' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
326
-	echo '        expires 30d;' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
327
-	echo '        try_files $uri /index.php?q=$uri&$args;' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
328
-	echo '    }' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
329
-	echo '' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
330
-	echo '    # block these file types' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
331
-	echo '    location ~* \.(tpl|md|tgz|log|out)$ {' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
332
-	echo '        deny all;' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
333
-	echo '    }' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
334
-	echo '' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
335
-	echo '    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
336
-	echo '    # or a unix socket' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
337
-	echo '    location ~* \.php$ {' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
338
-	echo '        # Zero-day exploit defense.' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
339
-	echo '        # http://forum.nginx.org/read.php?2,88845,page=3' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
340
-	echo "        # Won't work properly (404 error) if the file is not stored on this" >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
341
-	echo "        # server, which is entirely possible with php-fpm/php-fcgi." >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
342
-	echo "        # Comment the 'try_files' line out if you set up php-fpm/php-fcgi on" >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
343
-	echo "        # another machine. And then cross your fingers that you won't get hacked." >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
344
-	echo '        try_files $uri $uri/ /index.php;' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
345
-	echo '        # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
346
-	echo '        fastcgi_split_path_info ^(.+\.php)(/.+)$;' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
347
-	echo '        # With php5-cgi alone:' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
348
-	echo '        # fastcgi_pass 127.0.0.1:9000;' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
349
-	echo '        # With php5-fpm:' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
350
-	echo '        fastcgi_pass unix:/var/run/php5-fpm.sock;' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
351
-	echo '        include fastcgi_params;' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
352
-	echo '        fastcgi_index index.php;' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
353
-	echo '        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
354
-	echo '    }' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
355
-	echo '' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
356
-	echo '    # deny access to all dot files' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
357
-	echo '    location ~ /\. {' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
358
-	echo '        deny all;' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
359
-	echo '    }' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
360
-	echo '' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
361
-	echo '    #deny access to store' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
362
-	echo '    location ~ /store {' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
363
-	echo '        deny all;' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
364
-	echo '    }' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
365
-	echo '    location ~ /(data|conf|bin|inc)/ {' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
366
-	echo '      deny all;' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
367
-	echo '    }' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
368
-	echo '    location ~ /\.ht {' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
369
-	echo '      deny  all;' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
370
-	echo '    }' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
371
-	echo '}' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
372
-	echo '' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
373
-    else
374
-	echo -n '' > /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
375
-    fi
354
+function install_blog_website_onion {
376 355
     echo 'server {' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
377 356
     echo "    listen 127.0.0.1:${FULLBLOG_ONION_PORT} default_server;" >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
378 357
     echo "    root /var/www/$FULLBLOG_DOMAIN_NAME/htdocs;" >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
@@ -450,6 +429,48 @@ function install_blog {
450 429
     echo '      deny  all;' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
451 430
     echo '    }' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
452 431
     echo '}' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
432
+}
433
+
434
+function install_blog_from_repo {
435
+    if [ ! -d /var/www/$FULLBLOG_DOMAIN_NAME ]; then
436
+	mkdir /var/www/$FULLBLOG_DOMAIN_NAME
437
+    fi
438
+
439
+    cd /var/www/$FULLBLOG_DOMAIN_NAME
440
+    git_clone $FULLBLOG_REPO htdocs
441
+    cd htdocs
442
+    git checkout $FULLBLOG_COMMIT -b $FULLBLOG_COMMIT
443
+    if ! grep -q "Blog commit" $COMPLETION_FILE; then
444
+	echo "Blog commit:$FULLBLOG_COMMIT" >> $COMPLETION_FILE
445
+    else
446
+	sed -i "s/Blog commit.*/Blog commit:$FULLBLOG_COMMIT/g" $COMPLETION_FILE
447
+    fi
448
+}
449
+
450
+function install_blog {
451
+    if [ ! $FULLBLOG_DOMAIN_NAME ]; then
452
+	echo $'The blog domain name was not specified'
453
+	exit 5062
454
+    fi
455
+
456
+    if grep -Fxq "install_blog" $COMPLETION_FILE; then
457
+	return
458
+    fi
459
+
460
+    # for the avatar changing command
461
+    apt-get -y install imagemagick
462
+
463
+    function_check install_blog_from_repo
464
+    install_blog_from_repo
465
+
466
+    if [[ $ONION_ONLY == "no" ]]; then
467
+	function_check install_blog_website
468
+	install_blog_website
469
+    else
470
+	echo -n '' > /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
471
+    fi
472
+    function_check install_blog_website_onion
473
+    install_blog_website_onion
453 474
 
454 475
     function_check create_site_certificate
455 476
     create_site_certificate $FULLBLOG_DOMAIN_NAME 'yes'
@@ -457,23 +478,22 @@ function install_blog {
457 478
     function_check configure_php
458 479
     configure_php
459 480
 
460
-    # blog settings
461
-    cp /var/www/$FULLBLOG_DOMAIN_NAME/htdocs/config/config.ini.example /var/www/$FULLBLOG_DOMAIN_NAME/htdocs/config/config.ini
462
-    sed -i "s|site.url.*|site.url = '/'|g" /var/www/$FULLBLOG_DOMAIN_NAME/htdocs/config/config.ini
463
-    sed -i "s|blog.title.*|blog.title = '$MY_BLOG_TITLE'|g" /var/www/$FULLBLOG_DOMAIN_NAME/htdocs/config/config.ini
464
-    sed -i "s|blog.tagline.*|blog.tagline = '$MY_BLOG_SUBTITLE'|g" /var/www/$FULLBLOG_DOMAIN_NAME/htdocs/config/config.ini
465
-    sed -i 's|timezone.*|timezone = "Europe/London"|g' /var/www/$FULLBLOG_DOMAIN_NAME/htdocs/config/config.ini
466
-    sed -i "s|Your name|$MY_NAME|g" /var/www/$FULLBLOG_DOMAIN_NAME/htdocs/config/config.ini
481
+    function_check install_blog_settings
482
+    install_blog_settings
467 483
 
484
+    function_check install_blog_social_networks
468 485
     install_blog_social_networks
469 486
 
487
+    function_check install_blog_user
470 488
     install_blog_user
471 489
 
472
-    function_check nginx_ensite
473
-    nginx_ensite $FULLBLOG_DOMAIN_NAME
490
+    chown -R www-data:www-data /var/www/$FULLBLOG_DOMAIN_NAME/htdocs
474 491
 
475 492
     FULLBLOG_ONION_HOSTNAME=$(add_onion_service blog 80 ${FULLBLOG_ONION_PORT})
476 493
 
494
+    function_check nginx_ensite
495
+    nginx_ensite $FULLBLOG_DOMAIN_NAME
496
+
477 497
     systemctl restart php5-fpm
478 498
     systemctl restart nginx
479 499