|
@@ -73,6 +73,14 @@ INSTALLED_WITHIN_DOCKER="no"
|
73
|
73
|
# There should be no spaces in the name
|
74
|
74
|
PRIVATE_MAILING_LIST=
|
75
|
75
|
|
|
76
|
+# Domain name or freedns subdomain for Owncloud installation
|
|
77
|
+OWNCLOUD_DOMAIN_NAME=
|
|
78
|
+# Freedns dynamic dns code for owncloud
|
|
79
|
+OWNCLOUD_FREEDNS_SUBDOMAIN_CODE=
|
|
80
|
+OWNCLOUD_ARCHIVE="owncloud-7.0.2.tar.bz2"
|
|
81
|
+OWNCLOUD_DOWNLOAD="https://download.owncloud.org/community/$OWNCLOUD_ARCHIVE"
|
|
82
|
+OWNCLOUD_HASH="ea07124a1b9632aa5227240d655e4d84967fb6dd49e4a16d3207d6179d031a3a"
|
|
83
|
+
|
76
|
84
|
GPG_KEYSERVER="hkp://keys.gnupg.net"
|
77
|
85
|
|
78
|
86
|
# optionally you can provide your exported GPG key pair here
|
|
@@ -97,6 +105,9 @@ INSTALL_DIR=$HOME/build
|
97
|
105
|
# device name for an attached usb drive
|
98
|
106
|
USB_DRIVE=/dev/sda1
|
99
|
107
|
|
|
108
|
+# memory limit for php in MB
|
|
109
|
+MAX_PHP_MEMORY=32
|
|
110
|
+
|
100
|
111
|
export DEBIAN_FRONTEND=noninteractive
|
101
|
112
|
|
102
|
113
|
# File which keeps track of what has already been installed
|
|
@@ -800,6 +811,9 @@ function script_to_make_self_signed_certificates {
|
800
|
811
|
}
|
801
|
812
|
|
802
|
813
|
function configure_email {
|
|
814
|
+ if [[ $SYSTEM_TYPE == "cloud" || $SYSTEM_TYPE == "chat" || $SYSTEM_TYPE == "social" ]]; then
|
|
815
|
+ return
|
|
816
|
+ fi
|
803
|
817
|
if grep -Fxq "configure_email" $COMPLETION_FILE; then
|
804
|
818
|
return
|
805
|
819
|
fi
|
|
@@ -884,6 +898,9 @@ function configure_email {
|
884
|
898
|
|
885
|
899
|
function spam_filtering {
|
886
|
900
|
# NOTE: spamassassin installation currently doesn't work, sa-compile fails with a make error 23/09/2014
|
|
901
|
+ if [[ $SYSTEM_TYPE == "cloud" || $SYSTEM_TYPE == "chat" || $SYSTEM_TYPE == "social" ]]; then
|
|
902
|
+ return
|
|
903
|
+ fi
|
887
|
904
|
if grep -Fxq "spam_filtering" $COMPLETION_FILE; then
|
888
|
905
|
return
|
889
|
906
|
fi
|
|
@@ -980,6 +997,9 @@ function spam_filtering {
|
980
|
997
|
}
|
981
|
998
|
|
982
|
999
|
function configure_imap {
|
|
1000
|
+ if [[ $SYSTEM_TYPE == "cloud" || $SYSTEM_TYPE == "chat" || $SYSTEM_TYPE == "social" ]]; then
|
|
1001
|
+ return
|
|
1002
|
+ fi
|
983
|
1003
|
if grep -Fxq "configure_imap" $COMPLETION_FILE; then
|
984
|
1004
|
return
|
985
|
1005
|
fi
|
|
@@ -1005,6 +1025,9 @@ function configure_imap {
|
1005
|
1025
|
}
|
1006
|
1026
|
|
1007
|
1027
|
function configure_gpg {
|
|
1028
|
+ if [[ $SYSTEM_TYPE == "cloud" || $SYSTEM_TYPE == "chat" || $SYSTEM_TYPE == "social" ]]; then
|
|
1029
|
+ return
|
|
1030
|
+ fi
|
1008
|
1031
|
if grep -Fxq "configure_gpg" $COMPLETION_FILE; then
|
1009
|
1032
|
return
|
1010
|
1033
|
fi
|
|
@@ -1063,6 +1086,9 @@ function configure_gpg {
|
1063
|
1086
|
}
|
1064
|
1087
|
|
1065
|
1088
|
function email_client {
|
|
1089
|
+ if [[ $SYSTEM_TYPE == "cloud" || $SYSTEM_TYPE == "chat" || $SYSTEM_TYPE == "social" ]]; then
|
|
1090
|
+ return
|
|
1091
|
+ fi
|
1066
|
1092
|
if grep -Fxq "email_client" $COMPLETION_FILE; then
|
1067
|
1093
|
return
|
1068
|
1094
|
fi
|
|
@@ -1166,6 +1192,9 @@ function email_client {
|
1166
|
1192
|
}
|
1167
|
1193
|
|
1168
|
1194
|
function folders_for_mailing_lists {
|
|
1195
|
+ if [[ $SYSTEM_TYPE == "cloud" || $SYSTEM_TYPE == "chat" || $SYSTEM_TYPE == "social" ]]; then
|
|
1196
|
+ return
|
|
1197
|
+ fi
|
1169
|
1198
|
if grep -Fxq "folders_for_mailing_lists" $COMPLETION_FILE; then
|
1170
|
1199
|
return
|
1171
|
1200
|
fi
|
|
@@ -1212,6 +1241,9 @@ function folders_for_mailing_lists {
|
1212
|
1241
|
}
|
1213
|
1242
|
|
1214
|
1243
|
function folders_for_email_addresses {
|
|
1244
|
+ if [[ $SYSTEM_TYPE == "cloud" || $SYSTEM_TYPE == "chat" || $SYSTEM_TYPE == "social" ]]; then
|
|
1245
|
+ return
|
|
1246
|
+ fi
|
1215
|
1247
|
if grep -Fxq "folders_for_email_addresses" $COMPLETION_FILE; then
|
1216
|
1248
|
return
|
1217
|
1249
|
fi
|
|
@@ -1276,6 +1308,9 @@ function dynamic_dns_freedns {
|
1276
|
1308
|
}
|
1277
|
1309
|
|
1278
|
1310
|
function create_private_mailing_list {
|
|
1311
|
+ if [[ $SYSTEM_TYPE == "cloud" || $SYSTEM_TYPE == "chat" || $SYSTEM_TYPE == "social" ]]; then
|
|
1312
|
+ return
|
|
1313
|
+ fi
|
1279
|
1314
|
# This installation doesn't work, results in ruby errors
|
1280
|
1315
|
# There is currently no schleuder package for Debian jessie
|
1281
|
1316
|
if grep -Fxq "create_private_mailing_list" $COMPLETION_FILE; then
|
|
@@ -1334,6 +1369,9 @@ function create_private_mailing_list {
|
1334
|
1369
|
}
|
1335
|
1370
|
|
1336
|
1371
|
function import_email {
|
|
1372
|
+ if [[ $SYSTEM_TYPE == "cloud" || $SYSTEM_TYPE == "chat" || $SYSTEM_TYPE == "social" ]]; then
|
|
1373
|
+ return
|
|
1374
|
+ fi
|
1337
|
1375
|
EMAIL_COMPLETE_MSG=' *** Freedombone mailbox installation is complete ***'
|
1338
|
1376
|
if grep -Fxq "import_email" $COMPLETION_FILE; then
|
1339
|
1377
|
if [[ $SYSTEM_TYPE == "email" || $SYSTEM_TYPE == "mailbox" ]]; then
|
|
@@ -1392,9 +1430,197 @@ function install_web_server {
|
1392
|
1430
|
git clone https://github.com/perusio/nginx_ensite
|
1393
|
1431
|
cd $INSTALL_DIR/nginx_ensite
|
1394
|
1432
|
cp nginx_* /usr/sbin
|
|
1433
|
+ nginx_dissite default
|
1395
|
1434
|
echo 'install_web_server' >> $COMPLETION_FILE
|
1396
|
1435
|
}
|
1397
|
1436
|
|
|
1437
|
+function install_owncloud {
|
|
1438
|
+ if [[ $SYSTEM_TYPE == "email" || $SYSTEM_TYPE == "mailbox" || $SYSTEM_TYPE == "chat" || $SYSTEM_TYPE == "social" ]]; then
|
|
1439
|
+ return
|
|
1440
|
+ fi
|
|
1441
|
+ OWNCLOUD_COMPLETION_MSG1=" *** Freedombone $SYSTEM_TYPE is now installed ***"
|
|
1442
|
+ OWNCLOUD_COMPLETION_MSG2="Open $OWNCLOUD_DOMAIN_NAME in a web browser to complete the setup"
|
|
1443
|
+ if grep -Fxq "install_owncloud" $COMPLETION_FILE; then
|
|
1444
|
+ if [[ $SYSTEM_TYPE == "cloud" ]]; then
|
|
1445
|
+ # unmount any attached usb drive
|
|
1446
|
+ if [ -d /media/usb ]; then
|
|
1447
|
+ umount /media/usb
|
|
1448
|
+ rm -rf /media/usb
|
|
1449
|
+ fi
|
|
1450
|
+ echo ''
|
|
1451
|
+ echo $OWNCLOUD_COMPLETION_MSG1
|
|
1452
|
+ echo $OWNCLOUD_COMPLETION_MSG2
|
|
1453
|
+ exit 0
|
|
1454
|
+ fi
|
|
1455
|
+ return
|
|
1456
|
+ fi
|
|
1457
|
+ if [ ! $OWNCLOUD_DOMAIN_NAME ]; then
|
|
1458
|
+ return
|
|
1459
|
+ fi
|
|
1460
|
+ if ! [[ $SYSTEM_TYPE == "cloud" ]]; then
|
|
1461
|
+ if [ ! $SYSTEM_TYPE ]; then
|
|
1462
|
+ return
|
|
1463
|
+ fi
|
|
1464
|
+ fi
|
|
1465
|
+ # if this is exclusively a cloud setup
|
|
1466
|
+ if [[ $SYSTEM_TYPE == "cloud" ]]; then
|
|
1467
|
+ OWNCLOUD_DOMAIN_NAME=$DOMAIN_NAME
|
|
1468
|
+ OWNCLOUD_FREEDNS_SUBDOMAIN_CODE=$FREEDNS_SUBDOMAIN_CODE
|
|
1469
|
+ fi
|
|
1470
|
+ apt-get -y --force-yes install php5 php5-gd php-xml-parser php5-intl wget
|
|
1471
|
+ apt-get -y --force-yesinstall php5-sqlite php5-mysql smbclient curl libcurl3 php5-curl
|
|
1472
|
+
|
|
1473
|
+ if [ ! -d /var/www/$OWNCLOUD_DOMAIN_NAME ]; then
|
|
1474
|
+ mkdir /var/www/$OWNCLOUD_DOMAIN_NAME
|
|
1475
|
+ mkdir /var/www/$OWNCLOUD_DOMAIN_NAME/htdocs
|
|
1476
|
+ fi
|
|
1477
|
+
|
|
1478
|
+ echo 'server {' > /etc/nginx/sites-available/$OWNCLOUD_DOMAIN_NAME
|
|
1479
|
+ echo ' listen 80;' >> /etc/nginx/sites-available/$OWNCLOUD_DOMAIN_NAME
|
|
1480
|
+ echo " server_name $OWNCLOUD_DOMAIN_NAME;" >> /etc/nginx/sites-available/$OWNCLOUD_DOMAIN_NAME
|
|
1481
|
+ echo ' rewrite ^ https://$server_name$request_uri? permanent;' >> /etc/nginx/sites-available/$OWNCLOUD_DOMAIN_NAME
|
|
1482
|
+ echo '}' >> /etc/nginx/sites-available/$OWNCLOUD_DOMAIN_NAME
|
|
1483
|
+
|
|
1484
|
+ echo 'server {' >> /etc/nginx/sites-available/$OWNCLOUD_DOMAIN_NAME
|
|
1485
|
+ echo ' listen 443 ssl;' >> /etc/nginx/sites-available/$OWNCLOUD_DOMAIN_NAME
|
|
1486
|
+ echo " root /var/www/$OWNCLOUD_DOMAIN_NAME/htdocs;" >> /etc/nginx/sites-available/$OWNCLOUD_DOMAIN_NAME
|
|
1487
|
+ echo " server_name $OWNCLOUD_DOMAIN_NAME;" >> /etc/nginx/sites-available/$OWNCLOUD_DOMAIN_NAME
|
|
1488
|
+
|
|
1489
|
+ echo ' ssl on;' >> /etc/nginx/sites-available/$OWNCLOUD_DOMAIN_NAME
|
|
1490
|
+ echo " ssl_certificate /etc/ssl/certs/$OWNCLOUD_DOMAIN_NAME.crt;" >> /etc/nginx/sites-available/$OWNCLOUD_DOMAIN_NAME
|
|
1491
|
+ echo " ssl_certificate_key /etc/ssl/private/$OWNCLOUD_DOMAIN_NAME.key;" >> /etc/nginx/sites-available/$OWNCLOUD_DOMAIN_NAME
|
|
1492
|
+ echo " ssl_dhparam /etc/ssl/certs/$OWNCLOUD_DOMAIN_NAME.dhparam;" >> /etc/nginx/sites-available/$OWNCLOUD_DOMAIN_NAME
|
|
1493
|
+
|
|
1494
|
+ echo ' ssl_session_timeout 5m;' >> /etc/nginx/sites-available/$OWNCLOUD_DOMAIN_NAME
|
|
1495
|
+ echo ' ssl_prefer_server_ciphers on;' >> /etc/nginx/sites-available/$OWNCLOUD_DOMAIN_NAME
|
|
1496
|
+ echo ' ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # not possible to do exclusive' >> /etc/nginx/sites-available/$OWNCLOUD_DOMAIN_NAME
|
|
1497
|
+ echo " ssl_ciphers 'EDH+CAMELLIA:EDH+aRSA:EECDH+aRSA+AESGCM:EECDH+aRSA+SHA384:EECDH+aRSA+SHA256:EECDH:+CAMELLIA256:+AES256:+CAMELLIA128:+AES128:+SSLv3:!aNULL:!eNULL:!LOW:!3DES:!MD5:!EXP:!PSK:!DSS:!RC4:!SEED:!ECDSA:CAMELLIA256-SHA:AES256-SHA:CAMELLIA128-SHA:AES128-SHA';" >> /etc/nginx/sites-available/$OWNCLOUD_DOMAIN_NAME
|
|
1498
|
+ echo ' add_header X-Frame-Options DENY;' >> /etc/nginx/sites-available/$OWNCLOUD_DOMAIN_NAME
|
|
1499
|
+ echo ' add_header X-Content-Type-Options nosniff;' >> /etc/nginx/sites-available/$OWNCLOUD_DOMAIN_NAME
|
|
1500
|
+ echo ' add_header Strict-Transport-Security max-age=15768000;' >> /etc/nginx/sites-available/$OWNCLOUD_DOMAIN_NAME
|
|
1501
|
+ echo ' # if you want to be able to access the site via HTTP' >> /etc/nginx/sites-available/$OWNCLOUD_DOMAIN_NAME
|
|
1502
|
+ echo ' # then replace the above with the following:' >> /etc/nginx/sites-available/$OWNCLOUD_DOMAIN_NAME
|
|
1503
|
+ echo ' # add_header Strict-Transport-Security "max-age=0;";' >> /etc/nginx/sites-available/$OWNCLOUD_DOMAIN_NAME
|
|
1504
|
+
|
|
1505
|
+ echo " # make sure webfinger and other well known services aren't blocked" >> /etc/nginx/sites-available/$OWNCLOUD_DOMAIN_NAME
|
|
1506
|
+ echo ' # by denying dot files and rewrite request to the front controller' >> /etc/nginx/sites-available/$OWNCLOUD_DOMAIN_NAME
|
|
1507
|
+ echo ' location ^~ /.well-known/ {' >> /etc/nginx/sites-available/$OWNCLOUD_DOMAIN_NAME
|
|
1508
|
+ echo ' allow all;' >> /etc/nginx/sites-available/$OWNCLOUD_DOMAIN_NAME
|
|
1509
|
+ echo ' rewrite ^/(.*) /index.php?q=$uri&$args last;' >> /etc/nginx/sites-available/$OWNCLOUD_DOMAIN_NAME
|
|
1510
|
+ echo ' }' >> /etc/nginx/sites-available/$OWNCLOUD_DOMAIN_NAME
|
|
1511
|
+
|
|
1512
|
+ echo ' client_max_body_size 10G; # set max upload size' >> /etc/nginx/sites-available/$OWNCLOUD_DOMAIN_NAME
|
|
1513
|
+ echo ' client_body_buffer_size 128k;' >> /etc/nginx/sites-available/$OWNCLOUD_DOMAIN_NAME
|
|
1514
|
+ echo ' fastcgi_buffers 64 4K;' >> /etc/nginx/sites-available/$OWNCLOUD_DOMAIN_NAME
|
|
1515
|
+
|
|
1516
|
+ echo ' rewrite ^/caldav(.*)$ /remote.php/caldav$1 redirect;' >> /etc/nginx/sites-available/$OWNCLOUD_DOMAIN_NAME
|
|
1517
|
+ echo ' rewrite ^/carddav(.*)$ /remote.php/carddav$1 redirect;' >> /etc/nginx/sites-available/$OWNCLOUD_DOMAIN_NAME
|
|
1518
|
+ echo ' rewrite ^/webdav(.*)$ /remote.php/webdav$1 redirect;' >> /etc/nginx/sites-available/$OWNCLOUD_DOMAIN_NAME
|
|
1519
|
+
|
|
1520
|
+ echo ' index index.php;' >> /etc/nginx/sites-available/$OWNCLOUD_DOMAIN_NAME
|
|
1521
|
+ echo ' error_page 403 /core/templates/403.php;' >> /etc/nginx/sites-available/$OWNCLOUD_DOMAIN_NAME
|
|
1522
|
+ echo ' error_page 404 /core/templates/404.php;' >> /etc/nginx/sites-available/$OWNCLOUD_DOMAIN_NAME
|
|
1523
|
+
|
|
1524
|
+ echo ' location = /robots.txt {' >> /etc/nginx/sites-available/$OWNCLOUD_DOMAIN_NAME
|
|
1525
|
+ echo ' allow all;' >> /etc/nginx/sites-available/$OWNCLOUD_DOMAIN_NAME
|
|
1526
|
+ echo ' log_not_found off;' >> /etc/nginx/sites-available/$OWNCLOUD_DOMAIN_NAME
|
|
1527
|
+ echo ' access_log off;' >> /etc/nginx/sites-available/$OWNCLOUD_DOMAIN_NAME
|
|
1528
|
+ echo ' }' >> /etc/nginx/sites-available/$OWNCLOUD_DOMAIN_NAME
|
|
1529
|
+
|
|
1530
|
+ echo ' location ~ ^/(data|config|\.ht|db_structure\.xml|README) {' >> /etc/nginx/sites-available/$OWNCLOUD_DOMAIN_NAME
|
|
1531
|
+ echo ' deny all;' >> /etc/nginx/sites-available/$OWNCLOUD_DOMAIN_NAME
|
|
1532
|
+ echo ' }' >> /etc/nginx/sites-available/$OWNCLOUD_DOMAIN_NAME
|
|
1533
|
+
|
|
1534
|
+ echo ' location / {' >> /etc/nginx/sites-available/$OWNCLOUD_DOMAIN_NAME
|
|
1535
|
+ echo ' # The following 2 rules are only needed with webfinger' >> /etc/nginx/sites-available/$OWNCLOUD_DOMAIN_NAME
|
|
1536
|
+ echo ' rewrite ^/.well-known/host-meta /public.php?service=host-meta last;' >> /etc/nginx/sites-available/$OWNCLOUD_DOMAIN_NAME
|
|
1537
|
+ echo ' rewrite ^/.well-known/host-meta.json /public.php?service=host-meta-json last;' >> /etc/nginx/sites-available/$OWNCLOUD_DOMAIN_NAME
|
|
1538
|
+
|
|
1539
|
+ echo ' rewrite ^/.well-known/carddav /remote.php/carddav/ redirect;' >> /etc/nginx/sites-available/$OWNCLOUD_DOMAIN_NAME
|
|
1540
|
+ echo ' rewrite ^/.well-known/caldav /remote.php/caldav/ redirect;' >> /etc/nginx/sites-available/$OWNCLOUD_DOMAIN_NAME
|
|
1541
|
+
|
|
1542
|
+ echo ' rewrite ^(/core/doc/[^\/]+/)$ $1/index.html;' >> /etc/nginx/sites-available/$OWNCLOUD_DOMAIN_NAME
|
|
1543
|
+
|
|
1544
|
+ echo ' try_files $uri $uri/ index.php;' >> /etc/nginx/sites-available/$OWNCLOUD_DOMAIN_NAME
|
|
1545
|
+ echo ' }' >> /etc/nginx/sites-available/$OWNCLOUD_DOMAIN_NAME
|
|
1546
|
+
|
|
1547
|
+ echo ' location ~ ^(.+?\.php)(/.*)?$ {' >> /etc/nginx/sites-available/$OWNCLOUD_DOMAIN_NAME
|
|
1548
|
+ echo ' try_files $1 =404;' >> /etc/nginx/sites-available/$OWNCLOUD_DOMAIN_NAME
|
|
1549
|
+ echo ' fastcgi_split_path_info ^(.+\.php)(/.+)$;' >> /etc/nginx/sites-available/$OWNCLOUD_DOMAIN_NAME
|
|
1550
|
+ echo ' fastcgi_pass unix:/var/run/php5-fpm.sock;' >> /etc/nginx/sites-available/$OWNCLOUD_DOMAIN_NAME
|
|
1551
|
+ echo ' fastcgi_index index.php;' >> /etc/nginx/sites-available/$OWNCLOUD_DOMAIN_NAME
|
|
1552
|
+ echo ' include fastcgi_params;' >> /etc/nginx/sites-available/$OWNCLOUD_DOMAIN_NAME
|
|
1553
|
+ echo ' fastcgi_param SCRIPT_FILENAME $document_root$1;' >> /etc/nginx/sites-available/$OWNCLOUD_DOMAIN_NAME
|
|
1554
|
+ echo ' fastcgi_param PATH_INFO $2;' >> /etc/nginx/sites-available/$OWNCLOUD_DOMAIN_NAME
|
|
1555
|
+ echo ' fastcgi_param HTTPS on;' >> /etc/nginx/sites-available/$OWNCLOUD_DOMAIN_NAME
|
|
1556
|
+ echo ' }' >> /etc/nginx/sites-available/$OWNCLOUD_DOMAIN_NAME
|
|
1557
|
+
|
|
1558
|
+ echo ' # Optional: set long EXPIRES header on static assets' >> /etc/nginx/sites-available/$OWNCLOUD_DOMAIN_NAME
|
|
1559
|
+ echo ' location ~* ^.+\.(jpg|jpeg|gif|bmp|ico|png|css|js|swf)$ {' >> /etc/nginx/sites-available/$OWNCLOUD_DOMAIN_NAME
|
|
1560
|
+ echo ' expires 30d;' >> /etc/nginx/sites-available/$OWNCLOUD_DOMAIN_NAME
|
|
1561
|
+ echo " # Optional: Don't log access to assets" >> /etc/nginx/sites-available/$OWNCLOUD_DOMAIN_NAME
|
|
1562
|
+ echo ' access_log off;' >> /etc/nginx/sites-available/$OWNCLOUD_DOMAIN_NAME
|
|
1563
|
+ echo ' }' >> /etc/nginx/sites-available/$OWNCLOUD_DOMAIN_NAME
|
|
1564
|
+ echo '}' >> /etc/nginx/sites-available/$OWNCLOUD_DOMAIN_NAME
|
|
1565
|
+
|
|
1566
|
+
|
|
1567
|
+ sed -i "s/memory_limit = 128M/memory_limit = $MAX_PHP_MEMORYM/g" /etc/php5/fpm/php.ini
|
|
1568
|
+ sed -i 's/;cgi.fix_pathinfo=1/cgi.fix_pathinfo=0/g' /etc/php5/fpm/php.ini
|
|
1569
|
+ sed -i "s/memory_limit = -1/memory_limit = $MAX_PHP_MEMORYM/g" /etc/php5/cli/php.ini
|
|
1570
|
+ sed -i "s/upload_max_filesize = 2M/upload_max_filesize = 50M/g" /etc/php5/fpm/php.ini
|
|
1571
|
+ sed -i "s/post_max_size = 8M/post_max_size = 50M/g" /etc/php5/fpm/php.ini
|
|
1572
|
+
|
|
1573
|
+ makecert $OWNCLOUD_DOMAIN_NAME
|
|
1574
|
+
|
|
1575
|
+ # download owncloud
|
|
1576
|
+ cd $INSTALL_DIR
|
|
1577
|
+ wget $OWNCLOUD_DOWNLOAD
|
|
1578
|
+ if [ ! -f $INSTALL_DIR/$OWNCLOUD_ARCHIVE ]; then
|
|
1579
|
+ echo 'Owncloud could not be downloaded. Check that it exists at '
|
|
1580
|
+ echo $OWNCLOUD_DOWNLOAD
|
|
1581
|
+ echo 'And if neccessary update the version number and hash within this script'
|
|
1582
|
+ exit 18
|
|
1583
|
+ fi
|
|
1584
|
+ # Check that the hash is correct
|
|
1585
|
+ CHECKSUM=$(sha256sum $OWNCLOUD_ARCHIVE | awk -F ' ' '{print $1}')
|
|
1586
|
+ if [[ $CHECKSUM != $OWNCLOUD_HASH ]]; then
|
|
1587
|
+ echo 'The sha256 hash of the owncloud download is incorrect. Possibly the file may have been tampered with. Check the hash on the Owncloud web site.'
|
|
1588
|
+ exit 19
|
|
1589
|
+ fi
|
|
1590
|
+ tar -xjf $OWNCLOUD_ARCHIVE
|
|
1591
|
+ echo 'Copying files...'
|
|
1592
|
+ cp -r owncloud/* /var/www/$OWNCLOUD_DOMAIN_NAME/htdocs
|
|
1593
|
+ chown -R www-data:www-data /var/www/$OWNCLOUD_DOMAIN_NAME/htdocs/apps
|
|
1594
|
+ chown -R www-data:www-data /var/www/$OWNCLOUD_DOMAIN_NAME/htdocs/config
|
|
1595
|
+ chown www-data:www-data /var/www/$OWNCLOUD_DOMAIN_NAME/htdocs
|
|
1596
|
+
|
|
1597
|
+ nginx_ensite $OWNCLOUD_DOMAIN_NAME
|
|
1598
|
+ service php5-fpm restart
|
|
1599
|
+ service nginx restart
|
|
1600
|
+
|
|
1601
|
+ # update the dynamic DNS
|
|
1602
|
+ if [[ $OWNCLOUD_FREEDNS_SUBDOMAIN_CODE != $FREEDNS_SUBDOMAIN_CODE ]]; then
|
|
1603
|
+ if ! grep -q "$OWNCLOUD_DOMAIN_NAME" /usr/bin/dynamicdns; then
|
|
1604
|
+ echo "# $OWNCLOUD_DOMAIN_NAME" >> /usr/bin/dynamicdns
|
|
1605
|
+ echo "wget -O - https://freedns.afraid.org/dynamic/update.php?$OWNCLOUD_FREEDNS_SUBDOMAIN_CODE== >> /dev/null 2>&1" >> /usr/bin/dynamicdns
|
|
1606
|
+ fi
|
|
1607
|
+ fi
|
|
1608
|
+
|
|
1609
|
+ echo 'install_owncloud' >> $COMPLETION_FILE
|
|
1610
|
+
|
|
1611
|
+ if [[ $SYSTEM_TYPE == "cloud" ]]; then
|
|
1612
|
+ # unmount any attached usb drive
|
|
1613
|
+ if [ -d /media/usb ]; then
|
|
1614
|
+ umount /media/usb
|
|
1615
|
+ rm -rf /media/usb
|
|
1616
|
+ fi
|
|
1617
|
+ echo ''
|
|
1618
|
+ echo $OWNCLOUD_COMPLETION_MSG1
|
|
1619
|
+ echo $OWNCLOUD_COMPLETION_MSG2
|
|
1620
|
+ exit 0
|
|
1621
|
+ fi
|
|
1622
|
+}
|
|
1623
|
+
|
1398
|
1624
|
function install_final {
|
1399
|
1625
|
if grep -Fxq "install_final" $COMPLETION_FILE; then
|
1400
|
1626
|
return
|
|
@@ -1448,6 +1674,7 @@ dynamic_dns_freedns
|
1448
|
1674
|
import_email
|
1449
|
1675
|
install_web_server
|
1450
|
1676
|
configure_firewall_for_web_server
|
|
1677
|
+install_owncloud
|
1451
|
1678
|
install_final
|
1452
|
1679
|
echo 'Freedombone installation is complete'
|
1453
|
1680
|
exit 0
|