Browse Source

More mediagoblin stuff

Bob Mottram 9 years ago
parent
commit
756c1c32e9

+ 245
- 223
src/freedombone View File

@@ -1251,6 +1251,12 @@ function read_configuration {
1251 1251
         if grep -q "MEDIAGOBLIN_CODE" $CONFIGURATION_FILE; then
1252 1252
             MEDIAGOBLIN_CODE=$(grep "MEDIAGOBLIN_CODE" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
1253 1253
         fi
1254
+        if grep -q "MEDIAGOBLIN_REPO" $CONFIGURATION_FILE; then
1255
+            MEDIAGOBLIN_REPO=$(grep "MEDIAGOBLIN_REPO" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
1256
+        fi
1257
+        if grep -q "MEDIAGOBLIN_COMMIT" $CONFIGURATION_FILE; then
1258
+            MEDIAGOBLIN_COMMIT=$(grep "MEDIAGOBLIN_COMMIT" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
1259
+        fi
1254 1260
         if grep -q "GIT_ADMIN_PASSWORD" $CONFIGURATION_FILE; then
1255 1261
             GIT_ADMIN_PASSWORD=$(grep "GIT_ADMIN_PASSWORD" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
1256 1262
         fi
@@ -1486,6 +1492,9 @@ function set_default_onion_domains {
1486 1492
     if [ ${#GIT_DOMAIN_NAME} -gt 1 ]; then
1487 1493
         GIT_DOMAIN_NAME='git.local'
1488 1494
     fi
1495
+    if [ ${#MEDIAGOBLIN_DOMAIN_NAME} -gt 1 ]; then
1496
+        MEDIAGOBLIN_DOMAIN_NAME='media.local'
1497
+    fi
1489 1498
 }
1490 1499
 
1491 1500
 function nginx_disable_sniffing {
@@ -1894,92 +1903,92 @@ function check_domains {
1894 1903
     fi
1895 1904
 
1896 1905
     if [ ${#GIT_DOMAIN_NAME} -gt 1 ]; then
1897
-        test_domain_name "$GIT_DOMAIN_NAME"
1898
-
1899
-        if [[ "$test_domain_name" == "$WIKI_DOMAIN_NAME" ]]; then
1900
-            echo $'Hubzilla domain name is the same as wiki domain name. They must be different'
1901
-            exit 83682
1902
-        fi
1903
-        if [[ "$test_domain_name" == "$OWNCLOUD_DOMAIN_NAME" ]]; then
1904
-            echo $'Hubzilla domain name is the same as Owncloud domain name. They must be different'
1905
-            exit 65192
1906
-        fi
1907
-        if [[ "$test_domain_name" == "$FULLBLOG_DOMAIN_NAME" ]]; then
1908
-            echo $'Hubzilla domain name is the same as blog domain name. They must be different'
1909
-            exit 74817
1910
-        fi
1911
-        if [[ "$test_domain_name" == "$MICROBLOG_DOMAIN_NAME" ]]; then
1912
-            echo $'Hubzilla domain name is the same as microblog domain name. They must be different'
1913
-            exit 83683
1914
-        fi
1915
-        if [[ "$test_domain_name" == "$HUBZILLA_DOMAIN_NAME" ]]; then
1916
-            echo $'Microblog domain name is the same as hubzilla domain name. They must be different'
1917
-            exit 678382
1918
-        fi
1919
-    fi
1906
+		test_domain_name "$GIT_DOMAIN_NAME"
1907
+
1908
+		if [[ "$test_domain_name" == "$WIKI_DOMAIN_NAME" ]]; then
1909
+			echo $'Hubzilla domain name is the same as wiki domain name. They must be different'
1910
+			exit 83682
1911
+		fi
1912
+		if [[ "$test_domain_name" == "$OWNCLOUD_DOMAIN_NAME" ]]; then
1913
+			echo $'Hubzilla domain name is the same as Owncloud domain name. They must be different'
1914
+			exit 65192
1915
+		fi
1916
+		if [[ "$test_domain_name" == "$FULLBLOG_DOMAIN_NAME" ]]; then
1917
+			echo $'Hubzilla domain name is the same as blog domain name. They must be different'
1918
+			exit 74817
1919
+		fi
1920
+		if [[ "$test_domain_name" == "$MICROBLOG_DOMAIN_NAME" ]]; then
1921
+			echo $'Hubzilla domain name is the same as microblog domain name. They must be different'
1922
+			exit 83683
1923
+		fi
1924
+		if [[ "$test_domain_name" == "$HUBZILLA_DOMAIN_NAME" ]]; then
1925
+			echo $'Microblog domain name is the same as hubzilla domain name. They must be different'
1926
+			exit 678382
1927
+		fi
1928
+	fi
1920 1929
 }
1921 1930
 
1922 1931
 # Checks whether certificates were generated for the given hostname
1923 1932
 function check_certificates {
1924
-    if [ ! $1 ]; then
1925
-        return
1926
-    fi
1927
-    if [[ $LETSENCRYPT_ENABLED != "yes" ]]; then
1928
-        if [ ! -f /etc/ssl/private/$1.key ]; then
1929
-            echo $"Private certificate for $CHECK_HOSTNAME was not created"
1930
-            exit 63959
1931
-        fi
1932
-        if [ ! -f /etc/ssl/certs/$1.crt ]; then
1933
-            echo $"Public certificate for $CHECK_HOSTNAME was not created"
1934
-            exit 7679
1935
-        fi
1936
-    else
1937
-        if [ ! -f /etc/letsencrypt/live/${1}/privkey.pem ]; then
1938
-            echo $"Private certificate for $CHECK_HOSTNAME was not created"
1939
-            exit 6282
1940
-        fi
1941
-        if [ ! -f /etc/letsencrypt/live/${1}/fullchain.pem ]; then
1942
-            echo $"Public certificate for $CHECK_HOSTNAME was not created"
1943
-            exit 5328
1944
-        fi
1945
-    fi
1946
-    if [ ! -f /etc/ssl/certs/$1.dhparam ]; then
1947
-        echo $"Diffie–Hellman parameters for $CHECK_HOSTNAME were not created"
1948
-        exit 5989
1949
-    fi
1933
+	if [ ! $1 ]; then
1934
+		return
1935
+	fi
1936
+	if [[ $LETSENCRYPT_ENABLED != "yes" ]]; then
1937
+		if [ ! -f /etc/ssl/private/$1.key ]; then
1938
+			echo $"Private certificate for $CHECK_HOSTNAME was not created"
1939
+			exit 63959
1940
+		fi
1941
+		if [ ! -f /etc/ssl/certs/$1.crt ]; then
1942
+			echo $"Public certificate for $CHECK_HOSTNAME was not created"
1943
+			exit 7679
1944
+		fi
1945
+	else
1946
+		if [ ! -f /etc/letsencrypt/live/${1}/privkey.pem ]; then
1947
+			echo $"Private certificate for $CHECK_HOSTNAME was not created"
1948
+			exit 6282
1949
+		fi
1950
+		if [ ! -f /etc/letsencrypt/live/${1}/fullchain.pem ]; then
1951
+			echo $"Public certificate for $CHECK_HOSTNAME was not created"
1952
+			exit 5328
1953
+		fi
1954
+	fi
1955
+	if [ ! -f /etc/ssl/certs/$1.dhparam ]; then
1956
+		echo $"Diffie–Hellman parameters for $CHECK_HOSTNAME were not created"
1957
+		exit 5989
1958
+	fi
1950 1959
 }
1951 1960
 
1952 1961
 function backup_database_local {
1953
-    # Makes local backups of databases which can then be automatically rolled
1954
-    # back if corruption is detected
1955
-    database_name=$1
1956
-
1957
-    backup_databases_script=/usr/bin/backupdatabases
1958
-    echo '' >> $backup_databases_script
1959
-    echo "# Backup the ${database_name} database" >> $backup_databases_script
1960
-    echo "TEMPFILE=/root/${database_name}.sql" >> $backup_databases_script
1961
-    echo 'DAILYFILE=/var/backups/${database_name}_daily.sql' >> $backup_databases_script
1962
-    echo "mysqldump --password=\"\$MYSQL_PASSWORD\" ${database_name} > \$TEMPFILE" >> $backup_databases_script
1963
-    echo 'FILESIZE=$(stat -c%s $TEMPFILE)' >> $backup_databases_script
1964
-    echo 'if [ "$FILESIZE" -eq "0" ]; then' >> $backup_databases_script
1965
-    echo '    if [ -f $DAILYFILE ]; then' >> $backup_databases_script
1966
-    echo '        cp $DAILYFILE $TEMPFILE' >> $backup_databases_script
1967
-    echo '' >> $backup_databases_script
1968
-    echo '        # try to restore yesterdays database' >> $backup_databases_script
1969
-    echo "        mysql -u root --password=\"\$MYSQL_PASSWORD\" ${database_name} -o < \$DAILYFILE" >> $backup_databases_script
1970
-    echo '' >> $backup_databases_script
1971
-    echo '        # Send a warning email' >> $backup_databases_script
1972
-    echo "        echo \"Unable to create a backup of the ${database_name} database. Attempted to restore from yesterdays backup\" | mail -s \"${database_name} backup\" \$EMAIL" >> $backup_databases_script
1973
-    echo '    else' >> $backup_databases_script
1974
-    echo '        # Send a warning email' >> $backup_databases_script
1975
-    echo "        echo \"Unable to create a backup of the ${database_name} database.\" | mail -s \"${database_name} backup\" \$EMAIL" >> $backup_databases_script
1976
-    echo '    fi' >> $backup_databases_script
1977
-    echo 'else' >> $backup_databases_script
1978
-    echo '    chmod 600 $TEMPFILE' >> $backup_databases_script
1979
-    echo '    mv $TEMPFILE $DAILYFILE' >> $backup_databases_script
1980
-    echo '' >> $backup_databases_script
1981
-    echo '    # Make the backup readable only by root' >> $backup_databases_script
1982
-    echo '    chmod 600 $DAILYFILE' >> $backup_databases_script
1962
+	# Makes local backups of databases which can then be automatically rolled
1963
+	# back if corruption is detected
1964
+	database_name=$1
1965
+
1966
+	backup_databases_script=/usr/bin/backupdatabases
1967
+	echo '' >> $backup_databases_script
1968
+	echo "# Backup the ${database_name} database" >> $backup_databases_script
1969
+	echo "TEMPFILE=/root/${database_name}.sql" >> $backup_databases_script
1970
+	echo 'DAILYFILE=/var/backups/${database_name}_daily.sql' >> $backup_databases_script
1971
+	echo "mysqldump --password=\"\$MYSQL_PASSWORD\" ${database_name} > \$TEMPFILE" >> $backup_databases_script
1972
+	echo 'FILESIZE=$(stat -c%s $TEMPFILE)' >> $backup_databases_script
1973
+	echo 'if [ "$FILESIZE" -eq "0" ]; then' >> $backup_databases_script
1974
+	echo '    if [ -f $DAILYFILE ]; then' >> $backup_databases_script
1975
+	echo '        cp $DAILYFILE $TEMPFILE' >> $backup_databases_script
1976
+	echo '' >> $backup_databases_script
1977
+	echo '        # try to restore yesterdays database' >> $backup_databases_script
1978
+	echo "        mysql -u root --password=\"\$MYSQL_PASSWORD\" ${database_name} -o < \$DAILYFILE" >> $backup_databases_script
1979
+	echo '' >> $backup_databases_script
1980
+	echo '        # Send a warning email' >> $backup_databases_script
1981
+	echo "        echo \"Unable to create a backup of the ${database_name} database. Attempted to restore from yesterdays backup\" | mail -s \"${database_name} backup\" \$EMAIL" >> $backup_databases_script
1982
+	echo '    else' >> $backup_databases_script
1983
+	echo '        # Send a warning email' >> $backup_databases_script
1984
+	echo "        echo \"Unable to create a backup of the ${database_name} database.\" | mail -s \"${database_name} backup\" \$EMAIL" >> $backup_databases_script
1985
+	echo '    fi' >> $backup_databases_script
1986
+	echo 'else' >> $backup_databases_script
1987
+	echo '    chmod 600 $TEMPFILE' >> $backup_databases_script
1988
+	echo '    mv $TEMPFILE $DAILYFILE' >> $backup_databases_script
1989
+	echo '' >> $backup_databases_script
1990
+	echo '    # Make the backup readable only by root' >> $backup_databases_script
1991
+	echo '    chmod 600 $DAILYFILE' >> $backup_databases_script
1983 1992
     echo 'fi' >> $backup_databases_script
1984 1993
 
1985 1994
     weekly_backup_script=/etc/cron.weekly/backupdatabasesweekly
@@ -9607,150 +9616,163 @@ function install_mediagoblin {
9607 9616
     cd $MEDIAGOBLIN_WORKING_DIRECTORY
9608 9617
     git checkout $MEDIAGOBLIN_COMMIT -b $MEDIAGOBLIN_COMMIT
9609 9618
 
9610
-    ./bootstrap.sh
9611
-    if [ ! "$?" = "0" ]; then
9612
-        exit 278826
9613
-    fi
9614
-
9615
-    ./configure --with-python3 --without-virtualenv
9616
-    if [ ! "$?" = "0" ]; then
9617
-        exit 462826
9618
-    fi
9619
-
9620
-    make
9621
-    if [ ! "$?" = "0" ]; then
9622
-        exit 738229
9623
-    fi
9624
-
9625
-    if [ ! -d $MEDIAGOBLIN_WORKING_DIRECTORY/user_dev ]; then
9626
-        mkdir $MEDIAGOBLIN_WORKING_DIRECTORY/user_dev
9627
-    fi
9628
-    chmod 750 $MEDIAGOBLIN_WORKING_DIRECTORY/user_dev
9629
-    easy_install flup
9630
-    if [ ! "$?" = "0" ]; then
9631
-        exit 83527
9632
-    fi
9633
-    if [ ! -f $MEDIAGOBLIN_WORKING_DIRECTORY/mediagoblin.ini ]; then
9634
-        echo $'mediagoblin.ini not found'
9635
-        exit 737529
9636
-    fi
9637
-    if [ ! -f $MEDIAGOBLIN_WORKING_DIRECTORY/paste.ini ]; then
9638
-        echo $'paste.ini not found'
9639
-        exit 52762
9640
-    fi
9641
-
9642
-    cp -av mediagoblin.ini mediagoblin_local.ini
9643
-    cp -av paste.ini paste_local.ini
9644
-
9645
-    # TODO configure ini files
9646
-
9647
-    chown -hR mediagoblin:www-data $MEDIAGOBLIN_WORKING_DIRECTORY
9648
-
9649
-    # init with systemd
9650
-    echo '[Unit]' > /etc/systemd/system/mediagoblin.service
9651
-    echo 'Description=Mediagoblin (Media Server)' >> /etc/systemd/system/mediagoblin.service
9652
-    echo 'After=syslog.target' >> /etc/systemd/system/mediagoblin.service
9653
-    echo 'After=network.target' >> /etc/systemd/system/mediagoblin.service
9654
-    #echo 'After=postgresql.service' >> /etc/systemd/system/mediagoblin.service
9655
-    echo '' >> /etc/systemd/system/mediagoblin.service
9656
-    echo '[Service]' >> /etc/systemd/system/mediagoblin.service
9657
-    echo 'Type=simple' >> /etc/systemd/system/mediagoblin.service
9658
-    echo 'User=mediagoblin' >> /etc/systemd/system/mediagoblin.service
9659
-    echo 'Group=mediagoblin' >> /etc/systemd/system/mediagoblin.service
9660
-    echo "WorkingDirectory=$MEDIAGOBLIN_WORKING_DIRECTORY" >> /etc/systemd/system/mediagoblin.service
9661
-    echo "ExecStart=$MEDIAGOBLIN_WORKING_DIRECTORY/lazyserver.sh  --server-name=fcgi fcgi_host=127.0.0.1 fcgi_port=26543" >> /etc/systemd/system/mediagoblin.service
9662
-    echo 'Restart=always' >> /etc/systemd/system/mediagoblin.service
9663
-    echo 'Environment="USER=mediagoblin","HOME=/var/lib/mediagoblin"' >> /etc/systemd/system/mediagoblin.service
9664
-    echo '' >> /etc/systemd/system/mediagoblin.service
9665
-    echo '[Install]' >> /etc/systemd/system/mediagoblin.service
9666
-    echo 'WantedBy=multi-user.target' >> /etc/systemd/system/mediagoblin.service
9667
-    systemctl daemon-reload
9668
-    systemctl enable mediagoblin
9669
-    systemctl start mediagoblin
9670
-
9671
-    # web config
9672
-    MEDIAGOBLIN_VIRTUAL_HOST=/etc/nginx/sites-available/$MEDIAGOBLIN_DOMAIN_NAME
9673
-    nginx_http_redirect $MEDIAGOBLIN_DOMAIN_NAME
9674
-    echo 'server {' >> $MEDIAGOBLIN_VIRTUAL_HOST
9675
-    echo '  listen 443 ssl;' >> $MEDIAGOBLIN_VIRTUAL_HOST
9676
-    echo '  #################################################' >> $MEDIAGOBLIN_VIRTUAL_HOST
9677
-    echo '  # Stock useful config options, but ignore them :)' >> $MEDIAGOBLIN_VIRTUAL_HOST
9678
-    echo '  #################################################' >> $MEDIAGOBLIN_VIRTUAL_HOST
9679
-    echo '  include /etc/nginx/mime.types;' >> $MEDIAGOBLIN_VIRTUAL_HOST
9680
-    echo '' >> $MEDIAGOBLIN_VIRTUAL_HOST
9681
-    echo '  autoindex off;' >> $MEDIAGOBLIN_VIRTUAL_HOST
9682
-    echo '  default_type  application/octet-stream;' >> $MEDIAGOBLIN_VIRTUAL_HOST
9683
-    echo '  sendfile on;' >> $MEDIAGOBLIN_VIRTUAL_HOST
9684
-    echo '' >> $MEDIAGOBLIN_VIRTUAL_HOST
9685
-    nginx_limits $MEDIAGOBLIN_DOMAIN_NAME '20m'
9686
-    nginx_ssl $MEDIAGOBLIN_DOMAIN_NAME
9687
-    nginx_disable_sniffing $MEDIAGOBLIN_DOMAIN_NAME
9688
-    echo '' >> $MEDIAGOBLIN_VIRTUAL_HOST
9689
-    echo '  # Gzip' >> $MEDIAGOBLIN_VIRTUAL_HOST
9690
-    echo '  gzip on;' >> $MEDIAGOBLIN_VIRTUAL_HOST
9691
-    echo '  gzip_min_length 1024;' >> $MEDIAGOBLIN_VIRTUAL_HOST
9692
-    echo '  gzip_buffers 4 32k;' >> $MEDIAGOBLIN_VIRTUAL_HOST
9693
-    echo '  gzip_types text/plain application/x-javascript text/javascript text/xml text/css;' >> $MEDIAGOBLIN_VIRTUAL_HOST
9694
-    echo '' >> $MEDIAGOBLIN_VIRTUAL_HOST
9695
-    echo '  #####################################' >> $MEDIAGOBLIN_VIRTUAL_HOST
9696
-    echo '  # Mounting MediaGoblin stuff' >> $MEDIAGOBLIN_VIRTUAL_HOST
9697
-    echo '  # This is the section you should read' >> $MEDIAGOBLIN_VIRTUAL_HOST
9698
-    echo '  #####################################' >> $MEDIAGOBLIN_VIRTUAL_HOST
9699
-    echo '' >> $MEDIAGOBLIN_VIRTUAL_HOST
9700
-    echo "  server_name $MEDIAGOBLIN_DOMAIN_NAME;" >> $MEDIAGOBLIN_VIRTUAL_HOST
9701
-    echo '  access_log /var/log/nginx/mediagoblin.log;' >> $MEDIAGOBLIN_VIRTUAL_HOST
9702
-    echo '  error_log /var/log/nginx/mediagoblin.error.log;' >> $MEDIAGOBLIN_VIRTUAL_HOST
9703
-    echo '' >> $MEDIAGOBLIN_VIRTUAL_HOST
9704
-    echo '  # MediaGoblins stock static files: CSS, JS, etc.' >> $MEDIAGOBLIN_VIRTUAL_HOST
9705
-    echo '  location /mgoblin_static/ {' >> $MEDIAGOBLIN_VIRTUAL_HOST
9706
-    echo "    alias $MEDIAGOBLIN_WORKING_DIRECTORY/mediagoblin/static/;" >> $MEDIAGOBLIN_VIRTUAL_HOST
9707
-    echo '  }' >> $MEDIAGOBLIN_VIRTUAL_HOST
9708
-    echo '' >> $MEDIAGOBLIN_VIRTUAL_HOST
9709
-    echo '  # Instance specific media:' >> $MEDIAGOBLIN_VIRTUAL_HOST
9710
-    echo '  location /mgoblin_media/ {' >> $MEDIAGOBLIN_VIRTUAL_HOST
9711
-    echo "    alias $MEDIAGOBLIN_WORKING_DIRECTORY/user_dev/media/public/;" >> $MEDIAGOBLIN_VIRTUAL_HOST
9712
-    echo '  }' >> $MEDIAGOBLIN_VIRTUAL_HOST
9713
-    echo '' >> $MEDIAGOBLIN_VIRTUAL_HOST
9714
-    echo '  # Theme static files (usually symlinked in)' >> $MEDIAGOBLIN_VIRTUAL_HOST
9715
-    echo '  location /theme_static/ {' >> $MEDIAGOBLIN_VIRTUAL_HOST
9716
-    echo "    alias $MEDIAGOBLIN_WORKING_DIRECTORY/user_dev/theme_static/;" >> $MEDIAGOBLIN_VIRTUAL_HOST
9717
-    echo '  }' >> $MEDIAGOBLIN_VIRTUAL_HOST
9718
-    echo '' >> $MEDIAGOBLIN_VIRTUAL_HOST
9719
-    echo '  # Plugin static files (usually symlinked in)' >> $MEDIAGOBLIN_VIRTUAL_HOST
9720
-    echo '  location /plugin_static/ {' >> $MEDIAGOBLIN_VIRTUAL_HOST
9721
-    echo "    alias $MEDIAGOBLIN_WORKING_DIRECTORY/user_dev/plugin_static/;" >> $MEDIAGOBLIN_VIRTUAL_HOST
9722
-    echo '  }' >> $MEDIAGOBLIN_VIRTUAL_HOST
9723
-    echo '' >> $MEDIAGOBLIN_VIRTUAL_HOST
9724
-    echo '  # Mounting MediaGoblin itself via FastCGI.' >> $MEDIAGOBLIN_VIRTUAL_HOST
9725
-    echo '  location / {' >> $MEDIAGOBLIN_VIRTUAL_HOST
9726
-    echo '    fastcgi_pass 127.0.0.1:26543;' >> $MEDIAGOBLIN_VIRTUAL_HOST
9727
-    echo '    include /etc/nginx/fastcgi_params;' >> $MEDIAGOBLIN_VIRTUAL_HOST
9728
-    echo '' >> $MEDIAGOBLIN_VIRTUAL_HOST
9729
-    echo '    # our understanding vs nginxs handling of script_name vs' >> $MEDIAGOBLIN_VIRTUAL_HOST
9730
-    echo '      # path_info dont match :)' >> $MEDIAGOBLIN_VIRTUAL_HOST
9731
-    echo '    fastcgi_param PATH_INFO $fastcgi_script_name;' >> $MEDIAGOBLIN_VIRTUAL_HOST
9732
-    echo '    fastcgi_param SCRIPT_NAME "";' >> $MEDIAGOBLIN_VIRTUAL_HOST
9733
-    echo '  }' >> $MEDIAGOBLIN_VIRTUAL_HOST
9734
-    echo '}' >> $MEDIAGOBLIN_VIRTUAL_HOST
9735
-
9736
-    if [ ! -f /etc/ssl/certs/$MEDIAGOBLIN_DOMAIN_NAME.dhparam ]; then
9737
-        if [[ $LETSENCRYPT_ENABLED != "yes" ]]; then
9738
-            ${PROJECT_NAME}-addcert -h $MEDIAGOBLIN_DOMAIN_NAME --dhkey $DH_KEYLENGTH
9739
-        else
9740
-            ${PROJECT_NAME}-addcert -e $MEDIAGOBLIN_DOMAIN_NAME -s $LETSENCRYPT_SERVER --dhkey $DH_KEYLENGTH --email $MY_EMAIL_ADDRESS
9741
-        fi
9742
-        check_certificates $MEDIAGOBLIN_DOMAIN_NAME
9743
-    fi
9744
-
9745
-    nginx_ensite $MEDIAGOBLIN_DOMAIN_NAME
9746
-    systemctl restart php5-fpm
9747
-    systemctl restart nginx
9748
-
9749
-    # update the dynamic DNS
9750
-    CURRENT_DDNS_DOMAIN=$MEDIAGOBLIN_DOMAIN_NAME
9751
-    add_ddns_domain
9752
-
9753
-    echo 'install_mediagoblin' >> $COMPLETION_FILE
9619
+    if ! grep -q "Mediagoblin commit" $COMPLETION_FILE; then
9620
+        echo "Mediagoblin commit:$MEDIAGOBLIN_COMMIT" >> $COMPLETION_FILE
9621
+    else
9622
+        sed -i "s/Mediagoblin commit.*/Mediagoblin commit:$MEDIAGOBLIN_COMMIT/g" $COMPLETION_FILE
9623
+    fi
9624
+
9625
+	./bootstrap.sh
9626
+	if [ ! "$?" = "0" ]; then
9627
+		exit 278826
9628
+	fi
9629
+
9630
+	./configure --with-python3 --without-virtualenv
9631
+	if [ ! "$?" = "0" ]; then
9632
+		exit 462826
9633
+	fi
9634
+
9635
+	make
9636
+	if [ ! "$?" = "0" ]; then
9637
+		exit 738229
9638
+	fi
9639
+
9640
+	if [ ! -d $MEDIAGOBLIN_WORKING_DIRECTORY/user_dev ]; then
9641
+		mkdir $MEDIAGOBLIN_WORKING_DIRECTORY/user_dev
9642
+	fi
9643
+	chmod 750 $MEDIAGOBLIN_WORKING_DIRECTORY/user_dev
9644
+	easy_install flup
9645
+	if [ ! "$?" = "0" ]; then
9646
+		exit 83527
9647
+	fi
9648
+	if [ ! -f $MEDIAGOBLIN_WORKING_DIRECTORY/mediagoblin.ini ]; then
9649
+		echo $'mediagoblin.ini not found'
9650
+		exit 737529
9651
+	fi
9652
+	if [ ! -f $MEDIAGOBLIN_WORKING_DIRECTORY/paste.ini ]; then
9653
+		echo $'paste.ini not found'
9654
+		exit 52762
9655
+	fi
9656
+
9657
+	cp -av mediagoblin.ini mediagoblin_local.ini
9658
+	cp -av paste.ini paste_local.ini
9659
+
9660
+	# TODO configure ini files
9661
+
9662
+	chown -hR mediagoblin:www-data $MEDIAGOBLIN_WORKING_DIRECTORY
9663
+
9664
+	# init with systemd
9665
+	echo '[Unit]' > /etc/systemd/system/mediagoblin.service
9666
+	echo 'Description=Mediagoblin (Media Server)' >> /etc/systemd/system/mediagoblin.service
9667
+	echo 'After=syslog.target' >> /etc/systemd/system/mediagoblin.service
9668
+	echo 'After=network.target' >> /etc/systemd/system/mediagoblin.service
9669
+	#echo 'After=postgresql.service' >> /etc/systemd/system/mediagoblin.service
9670
+	echo '' >> /etc/systemd/system/mediagoblin.service
9671
+	echo '[Service]' >> /etc/systemd/system/mediagoblin.service
9672
+	echo 'Type=simple' >> /etc/systemd/system/mediagoblin.service
9673
+	echo 'User=mediagoblin' >> /etc/systemd/system/mediagoblin.service
9674
+	echo 'Group=mediagoblin' >> /etc/systemd/system/mediagoblin.service
9675
+	echo "WorkingDirectory=$MEDIAGOBLIN_WORKING_DIRECTORY" >> /etc/systemd/system/mediagoblin.service
9676
+	echo "ExecStart=$MEDIAGOBLIN_WORKING_DIRECTORY/lazyserver.sh  --server-name=fcgi fcgi_host=127.0.0.1 fcgi_port=26543" >> /etc/systemd/system/mediagoblin.service
9677
+	echo 'Restart=always' >> /etc/systemd/system/mediagoblin.service
9678
+	echo 'Environment="USER=mediagoblin","HOME=/var/lib/mediagoblin"' >> /etc/systemd/system/mediagoblin.service
9679
+	echo '' >> /etc/systemd/system/mediagoblin.service
9680
+	echo '[Install]' >> /etc/systemd/system/mediagoblin.service
9681
+	echo 'WantedBy=multi-user.target' >> /etc/systemd/system/mediagoblin.service
9682
+	systemctl daemon-reload
9683
+	systemctl enable mediagoblin
9684
+	systemctl start mediagoblin
9685
+
9686
+    MEDIAGOBLIN_ONION_HOSTNAME=$(add_onion_service mediagoblin 80 ${MEDIAGOBLIN_ONION_PORT})
9687
+	if ! grep -q "Mediagoblin onion domain" $COMPLETION_FILE; then
9688
+		echo "Mediagoblin onion domain:${MEDIAGOBLIN_ONION_HOSTNAME}" >> $COMPLETION_FILE
9689
+	else
9690
+		sed -i "s|Mediagoblin onion domain.*|Mediagoblin onion domain:${MEDIAGOBLIN_ONION_HOSTNAME}|g" $COMPLETION_FILE
9691
+	fi
9692
+	
9693
+	# web config
9694
+	MEDIAGOBLIN_VIRTUAL_HOST=/etc/nginx/sites-available/$MEDIAGOBLIN_DOMAIN_NAME
9695
+	nginx_http_redirect $MEDIAGOBLIN_DOMAIN_NAME
9696
+	echo 'server {' >> $MEDIAGOBLIN_VIRTUAL_HOST
9697
+	echo '  listen 443 ssl;' >> $MEDIAGOBLIN_VIRTUAL_HOST
9698
+	echo '  #################################################' >> $MEDIAGOBLIN_VIRTUAL_HOST
9699
+	echo '  # Stock useful config options, but ignore them :)' >> $MEDIAGOBLIN_VIRTUAL_HOST
9700
+	echo '  #################################################' >> $MEDIAGOBLIN_VIRTUAL_HOST
9701
+	echo '  include /etc/nginx/mime.types;' >> $MEDIAGOBLIN_VIRTUAL_HOST
9702
+	echo '' >> $MEDIAGOBLIN_VIRTUAL_HOST
9703
+	echo '  autoindex off;' >> $MEDIAGOBLIN_VIRTUAL_HOST
9704
+	echo '  default_type  application/octet-stream;' >> $MEDIAGOBLIN_VIRTUAL_HOST
9705
+	echo '  sendfile on;' >> $MEDIAGOBLIN_VIRTUAL_HOST
9706
+	echo '' >> $MEDIAGOBLIN_VIRTUAL_HOST
9707
+	nginx_limits $MEDIAGOBLIN_DOMAIN_NAME '20m'
9708
+	nginx_ssl $MEDIAGOBLIN_DOMAIN_NAME
9709
+	nginx_disable_sniffing $MEDIAGOBLIN_DOMAIN_NAME
9710
+	echo '' >> $MEDIAGOBLIN_VIRTUAL_HOST
9711
+	echo '  # Gzip' >> $MEDIAGOBLIN_VIRTUAL_HOST
9712
+	echo '  gzip on;' >> $MEDIAGOBLIN_VIRTUAL_HOST
9713
+	echo '  gzip_min_length 1024;' >> $MEDIAGOBLIN_VIRTUAL_HOST
9714
+	echo '  gzip_buffers 4 32k;' >> $MEDIAGOBLIN_VIRTUAL_HOST
9715
+	echo '  gzip_types text/plain application/x-javascript text/javascript text/xml text/css;' >> $MEDIAGOBLIN_VIRTUAL_HOST
9716
+	echo '' >> $MEDIAGOBLIN_VIRTUAL_HOST
9717
+	echo '  #####################################' >> $MEDIAGOBLIN_VIRTUAL_HOST
9718
+	echo '  # Mounting MediaGoblin stuff' >> $MEDIAGOBLIN_VIRTUAL_HOST
9719
+	echo '  # This is the section you should read' >> $MEDIAGOBLIN_VIRTUAL_HOST
9720
+	echo '  #####################################' >> $MEDIAGOBLIN_VIRTUAL_HOST
9721
+	echo '' >> $MEDIAGOBLIN_VIRTUAL_HOST
9722
+	echo "  server_name $MEDIAGOBLIN_DOMAIN_NAME;" >> $MEDIAGOBLIN_VIRTUAL_HOST
9723
+	echo '  access_log /var/log/nginx/mediagoblin.log;' >> $MEDIAGOBLIN_VIRTUAL_HOST
9724
+	echo '  error_log /var/log/nginx/mediagoblin.error.log;' >> $MEDIAGOBLIN_VIRTUAL_HOST
9725
+	echo '' >> $MEDIAGOBLIN_VIRTUAL_HOST
9726
+	echo '  # MediaGoblins stock static files: CSS, JS, etc.' >> $MEDIAGOBLIN_VIRTUAL_HOST
9727
+	echo '  location /mgoblin_static/ {' >> $MEDIAGOBLIN_VIRTUAL_HOST
9728
+	echo "    alias $MEDIAGOBLIN_WORKING_DIRECTORY/mediagoblin/static/;" >> $MEDIAGOBLIN_VIRTUAL_HOST
9729
+	echo '  }' >> $MEDIAGOBLIN_VIRTUAL_HOST
9730
+	echo '' >> $MEDIAGOBLIN_VIRTUAL_HOST
9731
+	echo '  # Instance specific media:' >> $MEDIAGOBLIN_VIRTUAL_HOST
9732
+	echo '  location /mgoblin_media/ {' >> $MEDIAGOBLIN_VIRTUAL_HOST
9733
+	echo "    alias $MEDIAGOBLIN_WORKING_DIRECTORY/user_dev/media/public/;" >> $MEDIAGOBLIN_VIRTUAL_HOST
9734
+	echo '  }' >> $MEDIAGOBLIN_VIRTUAL_HOST
9735
+	echo '' >> $MEDIAGOBLIN_VIRTUAL_HOST
9736
+	echo '  # Theme static files (usually symlinked in)' >> $MEDIAGOBLIN_VIRTUAL_HOST
9737
+	echo '  location /theme_static/ {' >> $MEDIAGOBLIN_VIRTUAL_HOST
9738
+	echo "    alias $MEDIAGOBLIN_WORKING_DIRECTORY/user_dev/theme_static/;" >> $MEDIAGOBLIN_VIRTUAL_HOST
9739
+	echo '  }' >> $MEDIAGOBLIN_VIRTUAL_HOST
9740
+	echo '' >> $MEDIAGOBLIN_VIRTUAL_HOST
9741
+	echo '  # Plugin static files (usually symlinked in)' >> $MEDIAGOBLIN_VIRTUAL_HOST
9742
+	echo '  location /plugin_static/ {' >> $MEDIAGOBLIN_VIRTUAL_HOST
9743
+	echo "    alias $MEDIAGOBLIN_WORKING_DIRECTORY/user_dev/plugin_static/;" >> $MEDIAGOBLIN_VIRTUAL_HOST
9744
+	echo '  }' >> $MEDIAGOBLIN_VIRTUAL_HOST
9745
+	echo '' >> $MEDIAGOBLIN_VIRTUAL_HOST
9746
+	echo '  # Mounting MediaGoblin itself via FastCGI.' >> $MEDIAGOBLIN_VIRTUAL_HOST
9747
+	echo '  location / {' >> $MEDIAGOBLIN_VIRTUAL_HOST
9748
+	echo '    fastcgi_pass 127.0.0.1:26543;' >> $MEDIAGOBLIN_VIRTUAL_HOST
9749
+	echo '    include /etc/nginx/fastcgi_params;' >> $MEDIAGOBLIN_VIRTUAL_HOST
9750
+	echo '' >> $MEDIAGOBLIN_VIRTUAL_HOST
9751
+	echo '    # our understanding vs nginxs handling of script_name vs' >> $MEDIAGOBLIN_VIRTUAL_HOST
9752
+	echo '      # path_info dont match :)' >> $MEDIAGOBLIN_VIRTUAL_HOST
9753
+	echo '    fastcgi_param PATH_INFO $fastcgi_script_name;' >> $MEDIAGOBLIN_VIRTUAL_HOST
9754
+	echo '    fastcgi_param SCRIPT_NAME "";' >> $MEDIAGOBLIN_VIRTUAL_HOST
9755
+	echo '  }' >> $MEDIAGOBLIN_VIRTUAL_HOST
9756
+	echo '}' >> $MEDIAGOBLIN_VIRTUAL_HOST
9757
+
9758
+	if [ ! -f /etc/ssl/certs/$MEDIAGOBLIN_DOMAIN_NAME.dhparam ]; then
9759
+		if [[ $LETSENCRYPT_ENABLED != "yes" ]]; then
9760
+			${PROJECT_NAME}-addcert -h $MEDIAGOBLIN_DOMAIN_NAME --dhkey $DH_KEYLENGTH
9761
+		else
9762
+			${PROJECT_NAME}-addcert -e $MEDIAGOBLIN_DOMAIN_NAME -s $LETSENCRYPT_SERVER --dhkey $DH_KEYLENGTH --email $MY_EMAIL_ADDRESS
9763
+		fi
9764
+		check_certificates $MEDIAGOBLIN_DOMAIN_NAME
9765
+	fi
9766
+
9767
+	nginx_ensite $MEDIAGOBLIN_DOMAIN_NAME
9768
+	systemctl restart php5-fpm
9769
+	systemctl restart nginx
9770
+
9771
+	# update the dynamic DNS
9772
+	CURRENT_DDNS_DOMAIN=$MEDIAGOBLIN_DOMAIN_NAME
9773
+	add_ddns_domain
9774
+
9775
+	echo 'install_mediagoblin' >> $COMPLETION_FILE
9754 9776
 }
9755 9777
 
9756 9778
 function create_upgrade_script {

+ 6
- 0
src/freedombone-backup-local View File

@@ -104,6 +104,10 @@ function update_domains {
104 104
     if grep -q "Owncloud domain" $COMPLETION_FILE; then
105 105
         OWNCLOUD_DOMAIN_NAME=$(cat $COMPLETION_FILE | grep "Owncloud domain" | awk -F ':' '{print $2}')
106 106
     fi
107
+    MEDIAGOBLIN_DOMAIN_NAME='mediagoblin'
108
+    if grep -q "Mediagoblin domain" $COMPLETION_FILE; then
109
+        MEDIAGOBLIN_DOMAIN_NAME=$(cat $COMPLETION_FILE | grep "Mediagoblin domain" | awk -F ':' '{print $2}')
110
+    fi
107 111
 }
108 112
 
109 113
 function mount_drive {
@@ -377,6 +381,7 @@ function backup_directories {
377 381
         "none,                               none,       /var/www/${HUBZILLA_DOMAIN_NAME}/htdocs,         hubzilla"
378 382
         "none,                               none,       /var/www/${FULLBLOG_DOMAIN_NAME}/htdocs,         blog"
379 383
         "none,                               none,       /var/lib/tor,                                    tor"
384
+        "none,                               none,       /var/www/${MEDIAGOBLIN_DOMAIN_NAME}/htdocs,      mediagoblin"
380 385
     )
381 386
 
382 387
     for dr in "${backup_dirs[@]}"
@@ -533,6 +538,7 @@ function valid_backup_destination {
533 538
                 "$destination_dir" == "owncloudfiles" || \
534 539
                 "$destination_dir" == "owncloudconfig" || \
535 540
                 "$destination_dir" == "ownclouddata" || \
541
+                "$destination_dir" == "mediagoblin" || \
536 542
                 "$destination_dir" == "mailinglist" ]]; then
537 543
         is_valid="no"
538 544
     fi

+ 264
- 253
src/freedombone-backup-remote View File

@@ -335,327 +335,338 @@ function backup_owncloud {
335 335
         echo $"Backing up Owncloud data"
336 336
         if [ -d /var/www/owncloud/data ]; then
337 337
             backup_directory_to_friend /var/www/owncloud/data owncloudfiles
338
-		fi
339
-		backup_directory_to_friend /var/www/owncloud/config owncloudconfig
340
-		restart_site
341
-	fi
338
+        fi
339
+        backup_directory_to_friend /var/www/owncloud/config owncloudconfig
340
+        restart_site
341
+    fi
342
+}
343
+
344
+function backup_mediagoblin {
345
+    if grep -q "Mediagoblin domain" $COMPLETION_FILE; then
346
+        MEDIAGOBLIN_DOMAIN_NAME=$(cat $COMPLETION_FILE | grep "Mediagoblin domain" | awk -F ':' '{print $2}')
347
+        suspend_site ${MEDIAGOBLIN_DOMAIN_NAME}
348
+        echo $"Backing up Mediagoblin"
349
+        backup_directory_to_friend /var/www/$MEDIAGOBLIN_DOMAIN_NAME/htdocs mediagoblin
350
+        restart_site
351
+    fi
342 352
 }
343 353
 
344 354
 function backup_gogs {
345
-	if [ -d /home/git/go/src/github.com/gogits ]; then
346
-		GIT_DOMAIN_NAME=$(cat $COMPLETION_FILE | grep "Gogs domain" | awk -F ':' '{print $2}')
347
-		suspend_site ${GIT_DOMAIN_NAME}
348
-		backup_database_to_friend gogs
349
-		backup_directory_to_friend /root/tempgogsdata gogsdata
350
-		echo $"Obtaining Gogs settings backup"
351
-		backup_directory_to_friend /home/git/go/src/github.com/gogits/gogs/custom gogs
352
-		echo $"Obtaining Gogs repos backup"
353
-		mv /home/git/gogs-repositories/*.git /home/git/gogs-repositories/bob
354
-		backup_directory_to_friend /home/git/gogs-repositories gogsrepos
355
-		echo $"Obtaining Gogs authorized_keys backup"
356
-		backup_directory_to_friend /home/git/.ssh gogsssh
357
-		restart_site
358
-	fi
355
+    if [ -d /home/git/go/src/github.com/gogits ]; then
356
+        GIT_DOMAIN_NAME=$(cat $COMPLETION_FILE | grep "Gogs domain" | awk -F ':' '{print $2}')
357
+        suspend_site ${GIT_DOMAIN_NAME}
358
+        backup_database_to_friend gogs
359
+        backup_directory_to_friend /root/tempgogsdata gogsdata
360
+        echo $"Obtaining Gogs settings backup"
361
+        backup_directory_to_friend /home/git/go/src/github.com/gogits/gogs/custom gogs
362
+        echo $"Obtaining Gogs repos backup"
363
+        mv /home/git/gogs-repositories/*.git /home/git/gogs-repositories/bob
364
+        backup_directory_to_friend /home/git/gogs-repositories gogsrepos
365
+        echo $"Obtaining Gogs authorized_keys backup"
366
+        backup_directory_to_friend /home/git/.ssh gogsssh
367
+        restart_site
368
+    fi
359 369
 }
360 370
 
361 371
 function backup_wiki {
362
-	if [ -d /etc/dokuwiki ]; then
363
-		echo $"Backing up wiki"
364
-		backup_directory_to_friend /var/lib/dokuwiki wiki
365
-		backup_directory_to_friend /etc/dokuwiki wiki2
366
-	fi
372
+    if [ -d /etc/dokuwiki ]; then
373
+        echo $"Backing up wiki"
374
+        backup_directory_to_friend /var/lib/dokuwiki wiki
375
+        backup_directory_to_friend /etc/dokuwiki wiki2
376
+    fi
367 377
 }
368 378
 
369 379
 function backup_blog {
370
-	if grep -q "Blog domain" $COMPLETION_FILE; then
371
-		FULLBLOG_DOMAIN_NAME=$(cat $COMPLETION_FILE | grep "Blog domain" | awk -F ':' '{print $2}')
372
-		if [ -d /var/www/${FULLBLOG_DOMAIN_NAME} ]; then
373
-			echo $"Backing up blog"
374
-			backup_directory_to_friend /var/www/${FULLBLOG_DOMAIN_NAME}/htdocs blog
375
-		else
376
-			echo $"Blog domain specified but not found in /var/www/${FULLBLOG_DOMAIN_NAME}"
377
-			exit 2578
378
-		fi
379
-	fi
380
+    if grep -q "Blog domain" $COMPLETION_FILE; then
381
+        FULLBLOG_DOMAIN_NAME=$(cat $COMPLETION_FILE | grep "Blog domain" | awk -F ':' '{print $2}')
382
+        if [ -d /var/www/${FULLBLOG_DOMAIN_NAME} ]; then
383
+            echo $"Backing up blog"
384
+            backup_directory_to_friend /var/www/${FULLBLOG_DOMAIN_NAME}/htdocs blog
385
+        else
386
+            echo $"Blog domain specified but not found in /var/www/${FULLBLOG_DOMAIN_NAME}"
387
+            exit 2578
388
+        fi
389
+    fi
380 390
 }
381 391
 
382 392
 function backup_certs {
383
-	if [ -d /etc/ssl ]; then
384
-		echo $"Backing up certificates"
385
-		backup_directory_to_friend /etc/ssl ssl
386
-	fi
393
+    if [ -d /etc/ssl ]; then
394
+        echo $"Backing up certificates"
395
+        backup_directory_to_friend /etc/ssl ssl
396
+    fi
387 397
 }
388 398
 
389 399
 function backup_mailing_list {
390
-	if [ -d /var/spool/mlmmj ]; then
391
-		echo $"Backing up the public mailing list"
392
-		backup_directory_to_friend /var/spool/mlmmj mailinglist
393
-	fi
400
+    if [ -d /var/spool/mlmmj ]; then
401
+        echo $"Backing up the public mailing list"
402
+        backup_directory_to_friend /var/spool/mlmmj mailinglist
403
+    fi
394 404
 }
395 405
 
396 406
 function backup_xmpp {
397
-	if [ -d /var/lib/prosody ]; then
398
-		echo $"Backing up the XMPP settings"
399
-		backup_directory_to_friend /var/lib/prosody xmpp
400
-	fi
407
+    if [ -d /var/lib/prosody ]; then
408
+        echo $"Backing up the XMPP settings"
409
+        backup_directory_to_friend /var/lib/prosody xmpp
410
+    fi
401 411
 }
402 412
 
403 413
 function backup_web_server {
404
-	if [ -d /etc/nginx ]; then
405
-		echo $"Backing up web settings"
406
-		backup_directory_to_friend /etc/nginx/sites-available web
407
-	fi
414
+    if [ -d /etc/nginx ]; then
415
+        echo $"Backing up web settings"
416
+        backup_directory_to_friend /etc/nginx/sites-available web
417
+    fi
408 418
 }
409 419
 
410 420
 function backup_admin_readme {
411
-	if [ -f /home/$ADMIN_USERNAME/README ]; then
412
-		echo $"Backing up README"
413
-		if [ ! -d /home/$ADMIN_USERNAME/tempbackup ]; then
414
-			mkdir -p /home/$ADMIN_USERNAME/tempbackup
415
-		fi
416
-		cp -f /home/$ADMIN_USERNAME/README /home/$ADMIN_USERNAME/tempbackup
417
-		backup_directory_to_friend /home/$ADMIN_USERNAME/tempbackup readme
418
-	fi
421
+    if [ -f /home/$ADMIN_USERNAME/README ]; then
422
+        echo $"Backing up README"
423
+        if [ ! -d /home/$ADMIN_USERNAME/tempbackup ]; then
424
+            mkdir -p /home/$ADMIN_USERNAME/tempbackup
425
+        fi
426
+        cp -f /home/$ADMIN_USERNAME/README /home/$ADMIN_USERNAME/tempbackup
427
+        backup_directory_to_friend /home/$ADMIN_USERNAME/tempbackup readme
428
+    fi
419 429
 }
420 430
 
421 431
 function backup_ipfs {
422
-	if [ -d /home/$ADMIN_USERNAME/.ipfs ]; then
423
-		echo $"Backing up IPFS"
424
-		backup_directory_to_friend /home/$ADMIN_USERNAME/.ipfs ipfs
425
-	fi
432
+    if [ -d /home/$ADMIN_USERNAME/.ipfs ]; then
433
+        echo $"Backing up IPFS"
434
+        backup_directory_to_friend /home/$ADMIN_USERNAME/.ipfs ipfs
435
+    fi
426 436
 }
427 437
 
428 438
 function backup_dlna {
429
-	if [ -d /var/cache/minidlna ]; then
430
-		echo $"Backing up DLNA cache"
431
-		backup_directory_to_friend /var/cache/minidlna dlna
432
-	fi
439
+    if [ -d /var/cache/minidlna ]; then
440
+        echo $"Backing up DLNA cache"
441
+        backup_directory_to_friend /var/cache/minidlna dlna
442
+    fi
433 443
 }
434 444
 
435 445
 function backup_voip {
436
-	if [ -f /etc/mumble-server.ini ]; then
437
-		echo $"Backing up VoIP settings"
438
-		if [ ! -d /root/tempvoipbackup ]; then
439
-			mkdir -p /root/tempvoipbackup
440
-		fi
441
-		cp -f /etc/mumble-server.ini /root/tempvoipbackup
442
-		cp -f /var/lib/mumble-server/mumble-server.sqlite /root/tempvoipbackup
443
-		cp -f /etc/sipwitch.conf /root/tempvoipbackup
444
-		backup_directory_to_friend /root/tempvoipbackup voip
445
-	fi
446
+    if [ -f /etc/mumble-server.ini ]; then
447
+        echo $"Backing up VoIP settings"
448
+        if [ ! -d /root/tempvoipbackup ]; then
449
+            mkdir -p /root/tempvoipbackup
450
+        fi
451
+        cp -f /etc/mumble-server.ini /root/tempvoipbackup
452
+        cp -f /var/lib/mumble-server/mumble-server.sqlite /root/tempvoipbackup
453
+        cp -f /etc/sipwitch.conf /root/tempvoipbackup
454
+        backup_directory_to_friend /root/tempvoipbackup voip
455
+    fi
446 456
 }
447 457
 
448 458
 function backup_tox {
449
-	if [ -d /var/lib/tox-bootstrapd ]; then
450
-		echo "Backing up Tox node settings"
451
-		if [ -d /var/lib/tox-bootstrapd/Maildir ]; then
452
-			rm -rf /var/lib/tox-bootstrapd/Maildir
453
-		fi
454
-		cp /etc/tox-bootstrapd.conf /var/lib/tox-bootstrapd
455
-		backup_directory_to_friend /var/lib/tox-bootstrapd tox
456
-	fi
459
+    if [ -d /var/lib/tox-bootstrapd ]; then
460
+        echo "Backing up Tox node settings"
461
+        if [ -d /var/lib/tox-bootstrapd/Maildir ]; then
462
+            rm -rf /var/lib/tox-bootstrapd/Maildir
463
+        fi
464
+        cp /etc/tox-bootstrapd.conf /var/lib/tox-bootstrapd
465
+        backup_directory_to_friend /var/lib/tox-bootstrapd tox
466
+    fi
457 467
 }
458 468
 
459 469
 function backup_mariadb {
460
-	if [ ${#DATABASE_PASSWORD} -gt 1 ]; then
461
-		if [ ! -d /root/tempmariadb ]; then
462
-			mkdir /root/tempmariadb
463
-		fi
464
-		mysqldump --password=$DATABASE_PASSWORD mysql user > /root/tempmariadb/mysql.sql
465
-		if [ ! -s /root/tempmariadb/mysql.sql ]; then
466
-			echo $"Unable to backup MariaDB settings"
467
-			rm -rf /root/tempmariadb
468
-			# Send a warning email
469
-			echo $"Unable to export database settings" | mail -s "${PROJECT_NAME} backup to friends" $ADMIN_EMAIL_ADDRESS
470
-			exit 653
471
-		fi
472
-		echo "$DATABASE_PASSWORD" > /root/tempmariadb/db
473
-		chmod 400 /root/tempmariadb/db
474
-		backup_directory_to_friend /root/tempmariadb mariadb
475
-	fi
470
+    if [ ${#DATABASE_PASSWORD} -gt 1 ]; then
471
+        if [ ! -d /root/tempmariadb ]; then
472
+            mkdir /root/tempmariadb
473
+        fi
474
+        mysqldump --password=$DATABASE_PASSWORD mysql user > /root/tempmariadb/mysql.sql
475
+        if [ ! -s /root/tempmariadb/mysql.sql ]; then
476
+            echo $"Unable to backup MariaDB settings"
477
+            rm -rf /root/tempmariadb
478
+            # Send a warning email
479
+            echo $"Unable to export database settings" | mail -s "${PROJECT_NAME} backup to friends" $ADMIN_EMAIL_ADDRESS
480
+            exit 653
481
+        fi
482
+        echo "$DATABASE_PASSWORD" > /root/tempmariadb/db
483
+        chmod 400 /root/tempmariadb/db
484
+        backup_directory_to_friend /root/tempmariadb mariadb
485
+    fi
476 486
 }
477 487
 
478 488
 # Returns the filename of a key share
479 489
 function get_key_share {
480
-	no_of_shares=$1
481
-	USERNAME="$2"
482
-	REMOTE_DOMAIN="$3"
490
+    no_of_shares=$1
491
+    USERNAME="$2"
492
+    REMOTE_DOMAIN="$3"
483 493
 
484
-	# Get a share index based on the supplied domain name
485
-	# This ensures that the same share is always given to the same domain
486
-	sharenumstr=$(md5sum <<< "$REMOTE_DOMAIN")
487
-	share_index=$(echo $((0x${sharenumstr%% *} % ${no_of_shares})) | tr -d -)
494
+    # Get a share index based on the supplied domain name
495
+    # This ensures that the same share is always given to the same domain
496
+    sharenumstr=$(md5sum <<< "$REMOTE_DOMAIN")
497
+    share_index=$(echo $((0x${sharenumstr%% *} % ${no_of_shares})) | tr -d -)
488 498
 
489
-	# get the filename
490
-	share_files=(/home/$USERNAME/.gnupg_fragments/keyshare.asc.*)
491
-	share_filename=${share_files[share_index]}
499
+    # get the filename
500
+    share_files=(/home/$USERNAME/.gnupg_fragments/keyshare.asc.*)
501
+    share_filename=${share_files[share_index]}
492 502
 
493
-	echo "$share_filename"
503
+    echo "$share_filename"
494 504
 }
495 505
 
496 506
 function disperse_key_shares {
497
-	USERNAME=$1
498
-	REMOTE_DOMAIN=$2
499
-	REMOTE_SSH_PORT=$3
500
-	REMOTE_PASSWORD=$4
501
-	REMOTE_SERVER=$5
502
-
503
-	if [ -d /home/$USERNAME/.gnupg_fragments ]; then
504
-		if [ $REMOTE_DOMAIN ]; then
505
-			cd /home/$USERNAME/.gnupg_fragments
506
-			no_of_shares=$(ls -afq keyshare.asc.* | wc -l)
507
-			if (( no_of_shares > 1 )); then
508
-				share_filename=$(get_key_share $no_of_shares "$USERNAME" "$REMOTE_DOMAIN")
509
-
510
-				# create a temp directory containing the share
511
-				temp_key_share_dir=/home/$USERNAME/tempkey
512
-				temp_key_share_fragments=$temp_key_share_dir/.gnupg_fragments_${USERNAME}
513
-				mkdir -p $temp_key_share_fragments
514
-				cp $share_filename $temp_key_share_fragments/
515
-
516
-				# copy the fragments directory to the remote server
517
-				/usr/bin/sshpass -p "$REMOTE_PASSWORD" \
518
-								 scp -r -P $REMOTE_SSH_PORT $temp_key_share_fragments $REMOTE_SERVER
519
-				if [ ! "$?" = "0" ]; then
520
-					# Send a warning email
521
-					echo "Key share to $REMOTE_SERVER failed" | \
522
-						mail -s "${PROJECT_NAME} social key management" $MY_EMAIL_ADDRESS
523
-				else
524
-					# Send a confirmation email
525
-					echo "Key ${share_filename} shared to $REMOTE_SERVER" | \
526
-						mail -s "${PROJECT_NAME} social key management" $MY_EMAIL_ADDRESS
527
-				fi
528
-
529
-				# remove the temp file/directory
530
-				shred -zu $temp_key_share_fragments/*
531
-				rm -rf $temp_key_share_dir
532
-			fi
533
-		fi
534
-	fi
507
+    USERNAME=$1
508
+    REMOTE_DOMAIN=$2
509
+    REMOTE_SSH_PORT=$3
510
+    REMOTE_PASSWORD=$4
511
+    REMOTE_SERVER=$5
512
+
513
+    if [ -d /home/$USERNAME/.gnupg_fragments ]; then
514
+        if [ $REMOTE_DOMAIN ]; then
515
+            cd /home/$USERNAME/.gnupg_fragments
516
+            no_of_shares=$(ls -afq keyshare.asc.* | wc -l)
517
+            if (( no_of_shares > 1 )); then
518
+                share_filename=$(get_key_share $no_of_shares "$USERNAME" "$REMOTE_DOMAIN")
519
+
520
+                # create a temp directory containing the share
521
+                temp_key_share_dir=/home/$USERNAME/tempkey
522
+                temp_key_share_fragments=$temp_key_share_dir/.gnupg_fragments_${USERNAME}
523
+                mkdir -p $temp_key_share_fragments
524
+                cp $share_filename $temp_key_share_fragments/
525
+
526
+                # copy the fragments directory to the remote server
527
+                /usr/bin/sshpass -p "$REMOTE_PASSWORD" \
528
+                                 scp -r -P $REMOTE_SSH_PORT $temp_key_share_fragments $REMOTE_SERVER
529
+                if [ ! "$?" = "0" ]; then
530
+                    # Send a warning email
531
+                    echo "Key share to $REMOTE_SERVER failed" | \
532
+                        mail -s "${PROJECT_NAME} social key management" $MY_EMAIL_ADDRESS
533
+                else
534
+                    # Send a confirmation email
535
+                    echo "Key ${share_filename} shared to $REMOTE_SERVER" | \
536
+                        mail -s "${PROJECT_NAME} social key management" $MY_EMAIL_ADDRESS
537
+                fi
538
+
539
+                # remove the temp file/directory
540
+                shred -zu $temp_key_share_fragments/*
541
+                rm -rf $temp_key_share_dir
542
+            fi
543
+        fi
544
+    fi
535 545
 }
536 546
 
537 547
 function valid_backup_destination {
538
-	destination_dir="$1"
539
-	is_valid="yes"
540
-
541
-	if [[ "$destination_dir" == "hubzilla" || \
542
-				"$destination_dir" == "hubzilladata" || \
543
-				"$destination_dir" == "gogs" || \
544
-				"$destination_dir" == "gogsrepos" || \
545
-				"$destination_dir" == "gogsssh" || \
546
-				"$destination_dir" == "gnusocial" || \
547
-				"$destination_dir" == "gnusocialdata" || \
548
-				"$destination_dir" == "mariadb" || \
549
-				"$destination_dir" == "config" || \
550
-				"$destination_dir" == "letsencrypt" || \
551
-				"$destination_dir" == "wiki" || \
552
-				"$destination_dir" == "wiki2" || \
553
-				"$destination_dir" == "xmpp" || \
554
-				"$destination_dir" == "ipfs" || \
555
-				"$destination_dir" == "dlna" || \
556
-				"$destination_dir" == "tox" || \
557
-				"$destination_dir" == "ssl" || \
558
-				"$destination_dir" == "blog" || \
559
-				"$destination_dir" == "owncloudfiles" || \
560
-				"$destination_dir" == "owncloudconfig" || \
561
-				"$destination_dir" == "ownclouddata" || \
562
-				"$destination_dir" == "mailinglist" ]]; then
563
-		is_valid="no"
564
-	fi
565
-
566
-	echo $is_valid
548
+    destination_dir="$1"
549
+    is_valid="yes"
550
+
551
+    if [[ "$destination_dir" == "hubzilla" || \
552
+                "$destination_dir" == "hubzilladata" || \
553
+                "$destination_dir" == "gogs" || \
554
+                "$destination_dir" == "gogsrepos" || \
555
+                "$destination_dir" == "gogsssh" || \
556
+                "$destination_dir" == "gnusocial" || \
557
+                "$destination_dir" == "gnusocialdata" || \
558
+                "$destination_dir" == "mariadb" || \
559
+                "$destination_dir" == "config" || \
560
+                "$destination_dir" == "letsencrypt" || \
561
+                "$destination_dir" == "wiki" || \
562
+                "$destination_dir" == "wiki2" || \
563
+                "$destination_dir" == "xmpp" || \
564
+                "$destination_dir" == "ipfs" || \
565
+                "$destination_dir" == "dlna" || \
566
+                "$destination_dir" == "tox" || \
567
+                "$destination_dir" == "ssl" || \
568
+                "$destination_dir" == "blog" || \
569
+                "$destination_dir" == "owncloudfiles" || \
570
+                "$destination_dir" == "owncloudconfig" || \
571
+                "$destination_dir" == "ownclouddata" || \
572
+                "$destination_dir" == "mailinglist" ]]; then
573
+        is_valid="no"
574
+    fi
575
+
576
+    echo $is_valid
567 577
 }
568 578
 
569 579
 function backup_extra_directories {
570
-	if [ ! -f $BACKUP_EXTRA_DIRECTORIES ]; then
571
-		return
572
-	fi
573
-
574
-	echo $"Backing up some additional directories"
575
-	while read backup_line
576
-	do
577
-		backup_dir=$(echo "$backup_line" | awk -F ',' '{print $1}' | sed -e 's/^[[:space:]]*//' -e 's/[[:space:]]*$//')
578
-		if [ -d "$backup_dir" ]; then
579
-			destination_dir=$(echo "$backup_line" | awk -F ',' '{print $2}' | sed -e 's/^[[:space:]]*//' -e 's/[[:space:]]*$//')
580
-			if [[ $(valid_backup_destination "$destination_dir") == "yes" ]]; then
581
-				backup_directory_to_friend "$backup_dir" "$destination_dir"
582
-			else
583
-				echo $"WARNING: The backup directory $destination_dir is already used."
584
-				echo $"Choose a different destination name for backing up $backup_dir"
585
-			fi
586
-		else
587
-			echo $"WARNING: Directory $backup_dir does not exist"
588
-		fi
589
-	done <$BACKUP_EXTRA_DIRECTORIES
580
+    if [ ! -f $BACKUP_EXTRA_DIRECTORIES ]; then
581
+        return
582
+    fi
583
+
584
+    echo $"Backing up some additional directories"
585
+    while read backup_line
586
+    do
587
+        backup_dir=$(echo "$backup_line" | awk -F ',' '{print $1}' | sed -e 's/^[[:space:]]*//' -e 's/[[:space:]]*$//')
588
+        if [ -d "$backup_dir" ]; then
589
+            destination_dir=$(echo "$backup_line" | awk -F ',' '{print $2}' | sed -e 's/^[[:space:]]*//' -e 's/[[:space:]]*$//')
590
+            if [[ $(valid_backup_destination "$destination_dir") == "yes" ]]; then
591
+                backup_directory_to_friend "$backup_dir" "$destination_dir"
592
+            else
593
+                echo $"WARNING: The backup directory $destination_dir is already used."
594
+                echo $"Choose a different destination name for backing up $backup_dir"
595
+            fi
596
+        else
597
+            echo $"WARNING: Directory $backup_dir does not exist"
598
+        fi
599
+    done <$BACKUP_EXTRA_DIRECTORIES
590 600
 }
591 601
 
592 602
 TEST_MODE="no"
593 603
 if [[ "$1" == "test" ]]; then
594
-	TEST_MODE="yes"
604
+    TEST_MODE="yes"
595 605
 fi
596 606
 
597 607
 backup_configuration
598 608
 if [[ $TEST_MODE == "no" ]]; then
599
-	backup_users
600
-	backup_letsencrypt
601
-	backup_tor
602
-	backup_gnusocial
603
-	backup_rss_reader
604
-	backup_hubzilla
605
-	backup_owncloud
606
-	backup_gogs
607
-	backup_wiki
608
-	backup_blog
609
-	backup_certs
610
-	backup_mailing_list
611
-	backup_xmpp
612
-	backup_web_server
613
-	backup_admin_readme
614
-	backup_ipfs
615
-	backup_dlna
616
-	backup_voip
617
-	backup_tox
618
-	backup_mariadb
619
-	backup_extra_directories
609
+    backup_users
610
+    backup_letsencrypt
611
+    backup_tor
612
+    backup_gnusocial
613
+    backup_rss_reader
614
+    backup_hubzilla
615
+    backup_owncloud
616
+    backup_mediagoblin
617
+    backup_gogs
618
+    backup_wiki
619
+    backup_blog
620
+    backup_certs
621
+    backup_mailing_list
622
+    backup_xmpp
623
+    backup_web_server
624
+    backup_admin_readme
625
+    backup_ipfs
626
+    backup_dlna
627
+    backup_voip
628
+    backup_tox
629
+    backup_mariadb
630
+    backup_extra_directories
620 631
 fi
621 632
 
622 633
 # For each remote server
623 634
 while read remote_server
624 635
 do
625
-	# Get the server and its password
626
-	# Format is:
627
-	#   username@domain <port number> /home/username <ssh password>
628
-	REMOTE_SERVER=$(echo "${remote_server}" | awk -F ' ' '{print $1}')
629
-	if [ $REMOTE_SERVER ]; then
630
-		REMOTE_DOMAIN=$(echo "${remote_server}" | awk -F ' ' '{print $1}' | awk -F '@' '{print $2}')
631
-		REMOTE_SSH_PORT=$(echo "${remote_server}" | awk -F ' ' '{print $2}')
632
-		REMOTE_DIRECTORY=$(echo "${remote_server}" | awk -F ' ' '{print $3}')
633
-		REMOTE_PASSWORD=$(echo "${remote_server}" | awk -F ' ' '{print $4}')
634
-		NOW=$(date +"%Y-%m-%d %H:%M:%S")
635
-		REMOTE_SERVER=$REMOTE_SERVER:$REMOTE_DIRECTORY
636
-
637
-		echo "$NOW Starting backup to $REMOTE_SERVER" >> /var/log/remotebackups.log
638
-
639
-		# Social key management
640
-		for d in /home/*/ ; do
641
-			USERNAME=$(echo "$d" | awk -F '/' '{print $3}')
642
-			if [[ $USERNAME != "git" && $USERNAME != "mirrors" ]]; then
643
-				disperse_key_shares $USERNAME $REMOTE_DOMAIN $REMOTE_SSH_PORT "$REMOTE_PASSWORD" $REMOTE_SERVER
644
-			fi
645
-		done
646
-
647
-		if [[ $TEST_MODE == "yes" ]]; then
648
-			echo "rsync -ratlzv --rsh=\"/usr/bin/sshpass -p '$REMOTE_PASSWORD' ssh -p $REMOTE_SSH_PORT -o StrictHostKeyChecking=no\" $SERVER_DIRECTORY/backup $REMOTE_SERVER"
649
-		fi
650
-		rsync -ratlzv --rsh="/usr/bin/sshpass -p \"$REMOTE_PASSWORD\" ssh -p $REMOTE_SSH_PORT -o StrictHostKeyChecking=no" $SERVER_DIRECTORY/backup $REMOTE_SERVER
651
-		if [ ! "$?" = "0" ]; then
652
-			echo "$NOW Backup to $REMOTE_SERVER failed" >> /var/log/remotebackups.log
653
-			# Send a warning email
654
-			echo "Backup to $REMOTE_SERVER failed" | mail -s "${PROJECT_NAME} backup to friends" $ADMIN_EMAIL_ADDRESS
655
-		else
656
-			echo "$NOW Backed up to $REMOTE_SERVER" >> /var/log/remotebackups.log
657
-		fi
658
-	fi
636
+    # Get the server and its password
637
+    # Format is:
638
+    #   username@domain <port number> /home/username <ssh password>
639
+    REMOTE_SERVER=$(echo "${remote_server}" | awk -F ' ' '{print $1}')
640
+    if [ $REMOTE_SERVER ]; then
641
+        REMOTE_DOMAIN=$(echo "${remote_server}" | awk -F ' ' '{print $1}' | awk -F '@' '{print $2}')
642
+        REMOTE_SSH_PORT=$(echo "${remote_server}" | awk -F ' ' '{print $2}')
643
+        REMOTE_DIRECTORY=$(echo "${remote_server}" | awk -F ' ' '{print $3}')
644
+        REMOTE_PASSWORD=$(echo "${remote_server}" | awk -F ' ' '{print $4}')
645
+        NOW=$(date +"%Y-%m-%d %H:%M:%S")
646
+        REMOTE_SERVER=$REMOTE_SERVER:$REMOTE_DIRECTORY
647
+
648
+        echo "$NOW Starting backup to $REMOTE_SERVER" >> /var/log/remotebackups.log
649
+
650
+        # Social key management
651
+        for d in /home/*/ ; do
652
+            USERNAME=$(echo "$d" | awk -F '/' '{print $3}')
653
+            if [[ $USERNAME != "git" && $USERNAME != "mirrors" ]]; then
654
+                disperse_key_shares $USERNAME $REMOTE_DOMAIN $REMOTE_SSH_PORT "$REMOTE_PASSWORD" $REMOTE_SERVER
655
+            fi
656
+        done
657
+
658
+        if [[ $TEST_MODE == "yes" ]]; then
659
+            echo "rsync -ratlzv --rsh=\"/usr/bin/sshpass -p '$REMOTE_PASSWORD' ssh -p $REMOTE_SSH_PORT -o StrictHostKeyChecking=no\" $SERVER_DIRECTORY/backup $REMOTE_SERVER"
660
+        fi
661
+        rsync -ratlzv --rsh="/usr/bin/sshpass -p \"$REMOTE_PASSWORD\" ssh -p $REMOTE_SSH_PORT -o StrictHostKeyChecking=no" $SERVER_DIRECTORY/backup $REMOTE_SERVER
662
+        if [ ! "$?" = "0" ]; then
663
+            echo "$NOW Backup to $REMOTE_SERVER failed" >> /var/log/remotebackups.log
664
+            # Send a warning email
665
+            echo "Backup to $REMOTE_SERVER failed" | mail -s "${PROJECT_NAME} backup to friends" $ADMIN_EMAIL_ADDRESS
666
+        else
667
+            echo "$NOW Backed up to $REMOTE_SERVER" >> /var/log/remotebackups.log
668
+        fi
669
+    fi
659 670
 
660 671
 done < /home/${ADMIN_USERNAME}/backup.list
661 672
 

+ 13
- 2
src/freedombone-controlpanel View File

@@ -393,6 +393,15 @@ function show_domains {
393 393
         fi
394 394
         echo ''
395 395
     fi
396
+    if grep -q "Mediagoblin domain" $COMPLETION_FILE; then
397
+        echo -n -e "$(pad_string 'Mediagoblin')"
398
+        MEDIADOM=$(cat ${COMPLETION_FILE} | grep 'Mediagoblin domain' | awk -F ':' '{print $2}')
399
+        echo -n -e "$(pad_string ${MEDIADOM})"
400
+        if [ -d /var/lib/tor/hidden_service_mediagoblin ]; then
401
+            echo -n "$(cat /var/lib/tor/hidden_service_mediagoblin/hostname)"
402
+        fi
403
+        echo ''
404
+    fi
396 405
 
397 406
     echo ''
398 407
 }
@@ -1074,7 +1083,7 @@ function restore_from_usb {
1074 1083
         trap "rm -f $data" 0 1 2 5 15
1075 1084
         dialog --backtitle $"Freedombone Control Panel" \
1076 1085
                --title $"Restore from USB backup" \
1077
-               --radiolist $"Choose an application to restore:" 31 70 28 \
1086
+               --radiolist $"Choose an application to restore:" 32 70 28 \
1078 1087
                1 $"Everything" off \
1079 1088
                2 $"Return to the backup and restore menu" on \
1080 1089
                3 $"Configuration files" off \
@@ -1105,7 +1114,8 @@ function restore_from_usb {
1105 1114
                28 $"DLNA" off \
1106 1115
                29 $"VoIP" off \
1107 1116
                30 $"RSS reader" off \
1108
-               31 $"Tox" off 2> $data
1117
+               31 $"Tox" off \
1118
+               32 $"Mediagoblin" off 2> $data
1109 1119
         sel=$?
1110 1120
         case $sel in
1111 1121
             1) break;;
@@ -1148,6 +1158,7 @@ function restore_from_usb {
1148 1158
             29) ${PROJECT_NAME}-restore-local $USB_DRIVE voip;;
1149 1159
             30) ${PROJECT_NAME}-restore-local $USB_DRIVE ttrss;;
1150 1160
             31) ${PROJECT_NAME}-restore-local $USB_DRIVE tox;;
1161
+            32) ${PROJECT_NAME}-restore-local $USB_DRIVE mediagoblin;;
1151 1162
         esac
1152 1163
     done
1153 1164
     any_key

+ 27
- 0
src/freedombone-restore-local View File

@@ -58,6 +58,7 @@ DATABASE_PASSWORD=$(cat /root/dbpass)
58 58
 MICROBLOG_DOMAIN_NAME=
59 59
 HUBZILLA_DOMAIN_NAME=
60 60
 OWNCLOUD_DOMAIN_NAME=
61
+MEDIAGOBLIN_DOMAIN_NAME=
61 62
 GIT_DOMAIN_NAME=
62 63
 WIKI_DOMAIN_NAME=
63 64
 FULLBLOG_DOMAIN_NAME=
@@ -249,6 +250,9 @@ function update_domains {
249 250
 	if grep -q "Owncloud domain" $COMPLETION_FILE; then
250 251
 		OWNCLOUD_DOMAIN_NAME=$(cat $COMPLETION_FILE | grep "Owncloud domain" | awk -F ':' '{print $2}')
251 252
 	fi
253
+	if grep -q "Mediagoblin domain" $COMPLETION_FILE; then
254
+		MEDIAGOBLIN_DOMAIN_NAME=$(cat $COMPLETION_FILE | grep "Mediagoblin domain" | awk -F ':' '{print $2}')
255
+	fi
252 256
 	if grep -q "Gogs domain" $COMPLETION_FILE; then
253 257
 		GIT_DOMAIN_NAME=$(cat $COMPLETION_FILE | grep "Gogs domain" | awk -F ':' '{print $2}')
254 258
 	fi
@@ -865,6 +869,28 @@ function restore_owncloud {
865 869
 	fi
866 870
 }
867 871
 
872
+function restore_mediagoblin {
873
+	if [[ $RESTORE_APP != 'all' ]]; then
874
+		if [[ $RESTORE_APP != 'mediagoblin' ]]; then
875
+			return
876
+		fi
877
+	fi
878
+	if [ ! $MEDIAGOBLIN_DOMAIN_NAME ]; then
879
+		return
880
+	fi
881
+	
882
+	if [ -d $USB_MOUNT/backup/mediagoblin ]; then
883
+		restore_directory_from_usb /root/tempmediagoblin mediagoblin
884
+		cp -r /root/tempmediagoblin/* /
885
+		if [ ! "$?" = "0" ]; then
886
+			unmount_drive
887
+			exit 67843
888
+		fi
889
+		rm -rf /root/tempmediagoblin
890
+		chown -hR mediagoblin:www-data /var/www/$MEDIAGOBLIN_DOMAIN_NAME/htdocs
891
+	fi
892
+}
893
+
868 894
 function restore_gogs {
869 895
 	if [[ $RESTORE_APP != 'all' ]]; then
870 896
 		if [[ $RESTORE_APP != 'gogs' ]]; then
@@ -1149,6 +1175,7 @@ restore_gnu_social
1149 1175
 restore_hubzilla
1150 1176
 restore_rss_reader
1151 1177
 restore_owncloud
1178
+restore_mediagoblin
1152 1179
 restore_gogs
1153 1180
 restore_wiki
1154 1181
 restore_blog

+ 22
- 0
src/freedombone-restore-remote View File

@@ -735,6 +735,27 @@ function restore_owncloud {
735 735
 	fi
736 736
 }
737 737
 
738
+function restore_mediagoblin {
739
+    if [[ $RESTORE_APP != 'all' ]]; then
740
+        if [[ $RESTORE_APP != 'mediagoblin' ]]; then
741
+            return
742
+        fi
743
+    fi
744
+    if grep -q "Mediagoblin domain" $COMPLETION_FILE; then
745
+        MEDIAGOBLIN_DOMAIN_NAME=$(cat $COMPLETION_FILE | grep "Mediagoblin domain" | awk -F ':' '{print $2}')
746
+        if [ -d $SERVER_DIRECTORY/backup/mediagoblin ]; then
747
+            echo $"Restoring Mediagoblin installation"
748
+			restore_directory_from_friend /root/tempmediagoblin mediagoblin
749
+			cp -r /root/tempmediagoblin/* /
750
+			if [ ! "$?" = "0" ]; then
751
+				exit 5626
752
+			fi
753
+			rm -rf /root/tempmediagoblin
754
+        fi
755
+		chown -hR mediagoblin:www-data /var/www/$MEDIAGOBLIN_DOMAIN_NAME/htdocs
756
+	fi
757
+}
758
+
738 759
 function restore_gogs {
739 760
 	if [[ $RESTORE_APP != 'all' ]]; then
740 761
 		if [[ $RESTORE_APP != 'gogs' ]]; then
@@ -992,6 +1013,7 @@ restore_gnu_social
992 1013
 restore_hubzilla
993 1014
 restore_rss_reader
994 1015
 restore_owncloud
1016
+restore_mediagoblin
995 1017
 restore_gogs
996 1018
 restore_wiki
997 1019
 restore_blog