Quellcode durchsuchen

More mediadrop configuration

Bob Mottram vor 8 Jahren
Ursprung
Commit
ad05d58df9
3 geänderte Dateien mit 2195 neuen und 1952 gelöschten Zeilen
  1. 169
    11
      src/freedombone
  2. 2017
    1941
      src/freedombone-config
  3. 9
    0
      src/freedombone-controlpanel

+ 169
- 11
src/freedombone Datei anzeigen

@@ -3289,8 +3289,8 @@ function get_mariadb_password {
3289 3289
 
3290 3290
 function get_mariadb_media_server_admin_password {
3291 3291
 	if [ -f /home/$MY_USERNAME/README ]; then
3292
-		if grep -q "MariaDB media server admin password" /home/$MY_USERNAME/README; then
3293
-			MEDIA_SERVER_ADMIN_PASSWORD=$(cat /home/$MY_USERNAME/README | grep "MariaDB media server admin password" | awk -F ':' '{print $2}' | sed 's/^ *//')
3292
+		if grep -q "Media server administrator password" /home/$MY_USERNAME/README; then
3293
+			MEDIA_SERVER_ADMIN_PASSWORD=$(cat /home/$MY_USERNAME/README | grep "Media server administrator password" | awk -F ':' '{print $2}' | sed 's/^ *//')
3294 3294
 		fi
3295 3295
 	fi
3296 3296
 }
@@ -5914,7 +5914,6 @@ function create_public_mailing_list {
5914 5914
 	if ! grep -q "! +mlmmj_domains" /etc/exim4/conf.d/router/200_exim4-config_primary; then
5915 5915
 		sed -i 's/domains = ! +local_domains/domains = ! +mlmmj_domains : ! +local_domains/g' /etc/exim4/conf.d/router/200_exim4-config_primary
5916 5916
 	fi
5917
-	newaliases
5918 5917
 	update-exim4.conf.template -r
5919 5918
 	update-exim4.conf
5920 5919
 	systemctl restart exim4
@@ -8626,7 +8625,6 @@ function install_gnu_social {
8626 8625
 	if ! grep -q "/var/www/$MICROBLOG_DOMAIN_NAME/htdocs/scripts/maildaemon.php" /etc/aliases; then
8627 8626
 		echo "*: /var/www/$MICROBLOG_DOMAIN_NAME/htdocs/scripts/maildaemon.php" >> /etc/aliases
8628 8627
 	fi
8629
-	newaliases
8630 8628
 
8631 8629
 	add_ddns_domain $MICROBLOG_DOMAIN_NAME
8632 8630
 
@@ -9913,9 +9911,10 @@ function install_media_server {
9913 9911
 
9914 9912
 	apt-get -y install git-core python python-dev python-lxml python-pil
9915 9913
 	apt-get -y install python-virtualenv npm nodejs-legacy automake
9916
-	apt-get -y install fcgiwrap
9917
-	apt-get -y install libjpeg-dev zlib1g-dev libfreetype6-dev libmysqlclient-dev
9914
+	apt-get -y install fcgiwrap libmysqlclient-dev
9915
+	apt-get -y install libjpeg-dev zlib1g-dev libfreetype6-dev
9918 9916
 	apt-get -y install python-setuptools python-virtualenv
9917
+	apt-get -y install uwsgi uwsgi-plugin-python
9919 9918
 
9920 9919
 	# create directory
9921 9920
 	if [ ! -d $MEDIA_SERVER_BASE_DIRECTORY ]; then
@@ -9935,7 +9934,7 @@ function install_media_server {
9935 9934
 		fi
9936 9935
 	fi
9937 9936
 
9938
-	create_database mediadrop "$MEDIA_SERVER_ADMIN_PASSWORD" $MY_USERNAME
9937
+	create_database mediadrop "$MEDIA_SERVER_ADMIN_PASSWORD" mediadropadmin
9939 9938
 
9940 9939
 	# create python environment
9941 9940
 	cd $MEDIA_SERVER_BASE_DIRECTORY
@@ -9952,6 +9951,7 @@ function install_media_server {
9952 9951
 	git checkout $MEDIA_SERVER_COMMIT -b $MEDIA_SERVER_COMMIT
9953 9952
 	python setup.py develop
9954 9953
 
9954
+	# create a configuration
9955 9955
 	cd $MEDIA_SERVER_BASE_DIRECTORY
9956 9956
 	paster make-config MediaDrop deployment.ini
9957 9957
 	if [ ! -f deployment.ini ]; then
@@ -9960,17 +9960,175 @@ function install_media_server {
9960 9960
 	fi
9961 9961
 
9962 9962
 	# database authentication
9963
-	sed -i "sqlalchemy.url = mysql://mediadrop_user:mysecretpassword@localhost/mediadrop?charset=utf8&use_unicode=0" deployment.ini
9963
+	sed -i "sqlalchemy.url = mysql://mediadrop:${MEDIA_SERVER_ADMIN_PASSWORD}@localhost/mediadrop?charset=utf8&use_unicode=0" deployment.ini
9964
+
9965
+	# faster file serve
9966
+	sed -i 's|files_serve_method.*|files_serve_method = nginx_redirect|g' deployment.ini
9964 9967
 
9965 9968
 	# initial data
9966 9969
 	cp -a mediadrop/data .
9967 9970
 	paster setup-app deployment.ini
9968 9971
 
9972
+	# add uwsgi to deployment.ini
9973
+	echo '' >> deployment.ini
9974
+	echo '[uwsgi]' >> deployment.ini
9975
+	echo 'socket = /tmp/uwsgi-mediadrop.soc' >> deployment.ini
9976
+	echo 'master = true' >> deployment.ini
9977
+	echo 'processes = 5' >> deployment.ini
9978
+	echo "home = $MEDIA_SERVER_BASE_DIRECTORY" >> deployment.ini
9979
+	echo 'daemonize = /var/log/uwsgi.log' >> deployment.ini
9980
+
9969 9981
 	# enable full test search
9970
-	mysql -u root mediadrop < mediadrop/setup_triggers.sql
9982
+	mysql -u mediadrop --password="$MEDIA_SERVER_ADMIN_PASSWORD" mediadrop < mediadrop/setup_triggers.sql
9983
+
9984
+	chown -R mediadrop:mediadrop $MEDIA_SERVER_BASE_DIRECTORY
9985
+
9986
+	# script to be called by the daemon
9987
+	echo '#!/bin/bash' > /usr/bin/start-mediadrop
9988
+	echo "cd ${MEDIA_SERVER_WORKING_DIRECTORY}" >> /usr/bin/start-mediadrop
9989
+	echo "uwsgi --ini-paste deployment.ini &" >> /usr/bin/start-mediadrop
9990
+	echo "paster serve --reload deployment.ini" >> /usr/bin/start-mediadrop
9991
+
9992
+	# create daemon
9993
+	echo '[Unit]' > /etc/systemd/system/mediadrop.service
9994
+	echo 'Description=Mediadrop - media playing on the web' >> /etc/systemd/system/mediadrop.service
9995
+	echo 'After=network.target' >> /etc/systemd/system/mediadrop.service
9996
+	echo '' >> /etc/systemd/system/mediadrop.service
9997
+	echo '[Service]' >> /etc/systemd/system/mediadrop.service
9998
+	echo 'User=mediadrop' >> /etc/systemd/system/mediadrop.service
9999
+	echo "Environment='USER=mediadrop'" >> /etc/systemd/system/mediadrop.service
10000
+	echo "WorkingDirectory=${MEDIA_SERVER_WORKING_DIRECTORY}" >> /etc/systemd/system/searx.service
10001
+	echo 'ExecStart=/usr/bin/start-mediadrop' >> /etc/systemd/system/mediadrop.service
10002
+	echo 'Restart=on-failure' >> /etc/systemd/system/mediadrop.service
10003
+	echo 'SuccessExitStatus=3 4' >> /etc/systemd/system/mediadrop.service
10004
+	echo 'RestartForceExitStatus=3 4' >> /etc/systemd/system/mediadrop.service
10005
+	echo '' >> /etc/systemd/system/mediadrop.service
10006
+	echo '[Install]' >> /etc/systemd/system/mediadrop.service
10007
+	echo 'WantedBy=multi-user.target' >> /etc/systemd/system/mediadrop.service
10008
+	systemctl enable mediadrop
10009
+	systemctl daemon-reload
10010
+	systemctl start mediadrop
9971 10011
 
9972
-	# launch
9973
-	paster serve --reload deployment.ini
10012
+	# onion address
10013
+	MEDIA_SERVER_ONION_HOSTNAME=$(add_onion_service mediadrop 80 ${MEDIA_SERVER_ONION_PORT})
10014
+	if ! grep -q "Media server onion domain" $COMPLETION_FILE; then
10015
+		echo "Media server onion domain:${MEDIA_SERVER_ONION_HOSTNAME}" >> $COMPLETION_FILE
10016
+	else
10017
+		sed -i "s|Media server onion domain.*|Media server onion domain:${MEDIA_SERVER_ONION_HOSTNAME}|g" $COMPLETION_FILE
10018
+	fi
10019
+	if [[ $MEDIA_SERVER_ONION_HOSTNAME == *"not found"* ]]; then
10020
+		echo $'Problem creating onion address for mediadrop'
10021
+		exit 72963
10022
+	fi
10023
+
10024
+	if [[ $ONION_ONLY == 'no' ]]; then
10025
+		nginx_http_redirect $MEDIA_SERVER_DOMAIN_NAME
10026
+		echo 'server {' >> /etc/nginx/sites-available/$MEDIA_SERVER_DOMAIN_NAME
10027
+		echo '  listen 443;' >> /etc/nginx/sites-available/$MEDIA_SERVER_DOMAIN_NAME
10028
+		echo "  server_name  $MEDIA_SERVER_DOMAIN_NAME;" >> /etc/nginx/sites-available/$MEDIA_SERVER_DOMAIN_NAME
10029
+		echo '  access_log /var/log/nginx/${MEDIA_SERVER_DOMAIN_NAME}.log;' >> /etc/nginx/nginx.conf
10030
+		echo '  error_log /var/log/nginx/${MEDIA_SERVER_DOMAIN_NAME}.log;' >> /etc/nginx/nginx.conf
10031
+		echo '' >> /etc/nginx/sites-available/$MEDIA_SERVER_DOMAIN_NAME
10032
+		nginx_ssl $MEDIA_SERVER_DOMAIN_NAME
10033
+		nginx_disable_sniffing $MEDIA_SERVER_DOMAIN_NAME
10034
+		nginx_limits $MEDIA_SERVER_DOMAIN_NAME '15m'
10035
+		echo '' >> /etc/nginx/sites-available/$MEDIA_SERVER_DOMAIN_NAME
10036
+		echo '  client_max_body_size 1500M;' >> /etc/nginx/sites-available/$MEDIA_SERVER_DOMAIN_NAME
10037
+		echo '' >> /etc/nginx/sites-available/$MEDIA_SERVER_DOMAIN_NAME
10038
+		echo "  root ${$MEDIA_SERVER_WORKING_DIRECTORY}/public;" >> /etc/nginx/sites-available/$MEDIA_SERVER_DOMAIN_NAME
10039
+		echo '' >> /etc/nginx/sites-available/$MEDIA_SERVER_DOMAIN_NAME
10040
+		echo '  location ~* ^/(appearance)/ {' >> /etc/nginx/sites-available/$MEDIA_SERVER_DOMAIN_NAME
10041
+		echo "      root ${$MEDIA_SERVER_WORKING_DIRECTORY}/data ;" >> /etc/nginx/sites-available/$MEDIA_SERVER_DOMAIN_NAME
10042
+		echo '      break;' >> /etc/nginx/sites-available/$MEDIA_SERVER_DOMAIN_NAME
10043
+		echo '  }' >> /etc/nginx/sites-available/$MEDIA_SERVER_DOMAIN_NAME
10044
+		echo '' >> /etc/nginx/sites-available/$MEDIA_SERVER_DOMAIN_NAME
10045
+		echo '  location ~* ^(/images\/media|images\/podcasts) {' >> /etc/nginx/sites-available/$MEDIA_SERVER_DOMAIN_NAME
10046
+		echo "      root ${$MEDIA_SERVER_WORKING_DIRECTORY}/data ;" >> /etc/nginx/sites-available/$MEDIA_SERVER_DOMAIN_NAME
10047
+		echo '      break;' >> /etc/nginx/sites-available/$MEDIA_SERVER_DOMAIN_NAME
10048
+		echo '  }' >> /etc/nginx/sites-available/$MEDIA_SERVER_DOMAIN_NAME
10049
+		echo '' >> /etc/nginx/sites-available/$MEDIA_SERVER_DOMAIN_NAME
10050
+		echo '  location ~* ^/(styles|scripts|images)/ {' >> /etc/nginx/sites-available/$MEDIA_SERVER_DOMAIN_NAME
10051
+		echo '      expires max;' >> /etc/nginx/sites-available/$MEDIA_SERVER_DOMAIN_NAME
10052
+		echo '      add_header Cache-Control "public";' >> /etc/nginx/sites-available/$MEDIA_SERVER_DOMAIN_NAME
10053
+		echo '      break;' >> /etc/nginx/sites-available/$MEDIA_SERVER_DOMAIN_NAME
10054
+		echo '  }' >> /etc/nginx/sites-available/$MEDIA_SERVER_DOMAIN_NAME
10055
+		echo '' >> /etc/nginx/sites-available/$MEDIA_SERVER_DOMAIN_NAME
10056
+		echo '  location /__mediacore_serve__ {' >> /etc/nginx/sites-available/$MEDIA_SERVER_DOMAIN_NAME
10057
+		echo "      alias ${$MEDIA_SERVER_WORKING_DIRECTORY}/data/media;" >> /etc/nginx/sites-available/$MEDIA_SERVER_DOMAIN_NAME
10058
+		echo '      internal;' >> /etc/nginx/sites-available/$MEDIA_SERVER_DOMAIN_NAME
10059
+		echo '  }' >> /etc/nginx/sites-available/$MEDIA_SERVER_DOMAIN_NAME
10060
+		echo '' >> /etc/nginx/sites-available/$MEDIA_SERVER_DOMAIN_NAME
10061
+		echo '  location / {' >> /etc/nginx/sites-available/$MEDIA_SERVER_DOMAIN_NAME
10062
+		echo '      uwsgi_pass      unix:///tmp/uwsgi-mediadrop.soc;' >> /etc/nginx/sites-available/$MEDIA_SERVER_DOMAIN_NAME
10063
+		echo '      include         uwsgi_params;' >> /etc/nginx/sites-available/$MEDIA_SERVER_DOMAIN_NAME
10064
+		echo '      uwsgi_param     SCRIPT_NAME '';' >> /etc/nginx/sites-available/$MEDIA_SERVER_DOMAIN_NAME
10065
+		echo '  }' >> /etc/nginx/sites-available/$MEDIA_SERVER_DOMAIN_NAME
10066
+		echo '}' >> /etc/nginx/sites-available/$MEDIA_SERVER_DOMAIN_NAME
10067
+
10068
+		create_site_certificate $MEDIA_SERVER_DOMAIN_NAME
10069
+		add_ddns_domain $MEDIA_SERVER_DOMAIN_NAME
10070
+	else
10071
+		echo -n '' > /etc/nginx/sites-available/$MEDIA_SERVER_DOMAIN_NAME
10072
+	fi
10073
+
10074
+	echo 'server {' >> /etc/nginx/sites-available/$MEDIA_SERVER_DOMAIN_NAME
10075
+	echo "  listen 127.0.0.1:${MEDIA_SERVER_ONION_PORT} default_server;" >> /etc/nginx/sites-available/$MEDIA_SERVER_DOMAIN_NAME
10076
+	echo "  server_name  $MEDIA_SERVER_ONION_HOSTNAME;" >> /etc/nginx/sites-available/$MEDIA_SERVER_DOMAIN_NAME
10077
+	echo '  access_log /var/log/nginx/${MEDIA_SERVER_DOMAIN_NAME}.log;' >> /etc/nginx/nginx.conf
10078
+	echo '  error_log /var/log/nginx/${MEDIA_SERVER_DOMAIN_NAME}.log;' >> /etc/nginx/nginx.conf
10079
+	echo '' >> /etc/nginx/sites-available/$MEDIA_SERVER_DOMAIN_NAME
10080
+	echo '  client_max_body_size 1500M;' >> /etc/nginx/sites-available/$MEDIA_SERVER_DOMAIN_NAME
10081
+	echo '' >> /etc/nginx/sites-available/$MEDIA_SERVER_DOMAIN_NAME
10082
+	echo "  root ${$MEDIA_SERVER_WORKING_DIRECTORY}/public;" >> /etc/nginx/sites-available/$MEDIA_SERVER_DOMAIN_NAME
10083
+	echo '' >> /etc/nginx/sites-available/$MEDIA_SERVER_DOMAIN_NAME
10084
+	echo '  location ~* ^/(appearance)/ {' >> /etc/nginx/sites-available/$MEDIA_SERVER_DOMAIN_NAME
10085
+	echo "      root ${$MEDIA_SERVER_WORKING_DIRECTORY}/data ;" >> /etc/nginx/sites-available/$MEDIA_SERVER_DOMAIN_NAME
10086
+	echo '      break;' >> /etc/nginx/sites-available/$MEDIA_SERVER_DOMAIN_NAME
10087
+	echo '  }' >> /etc/nginx/sites-available/$MEDIA_SERVER_DOMAIN_NAME
10088
+	echo '' >> /etc/nginx/sites-available/$MEDIA_SERVER_DOMAIN_NAME
10089
+	echo '  location ~* ^(/images\/media|images\/podcasts) {' >> /etc/nginx/sites-available/$MEDIA_SERVER_DOMAIN_NAME
10090
+	echo "      root ${$MEDIA_SERVER_WORKING_DIRECTORY}/data ;" >> /etc/nginx/sites-available/$MEDIA_SERVER_DOMAIN_NAME
10091
+	echo '      break;' >> /etc/nginx/sites-available/$MEDIA_SERVER_DOMAIN_NAME
10092
+	echo '  }' >> /etc/nginx/sites-available/$MEDIA_SERVER_DOMAIN_NAME
10093
+	echo '' >> /etc/nginx/sites-available/$MEDIA_SERVER_DOMAIN_NAME
10094
+	echo '  location ~* ^/(styles|scripts|images)/ {' >> /etc/nginx/sites-available/$MEDIA_SERVER_DOMAIN_NAME
10095
+	echo '      expires max;' >> /etc/nginx/sites-available/$MEDIA_SERVER_DOMAIN_NAME
10096
+	echo '      add_header Cache-Control "public";' >> /etc/nginx/sites-available/$MEDIA_SERVER_DOMAIN_NAME
10097
+	echo '      break;' >> /etc/nginx/sites-available/$MEDIA_SERVER_DOMAIN_NAME
10098
+	echo '  }' >> /etc/nginx/sites-available/$MEDIA_SERVER_DOMAIN_NAME
10099
+	echo '' >> /etc/nginx/sites-available/$MEDIA_SERVER_DOMAIN_NAME
10100
+	echo '  location /__mediacore_serve__ {' >> /etc/nginx/sites-available/$MEDIA_SERVER_DOMAIN_NAME
10101
+	echo "      alias ${$MEDIA_SERVER_WORKING_DIRECTORY}/data/media;" >> /etc/nginx/sites-available/$MEDIA_SERVER_DOMAIN_NAME
10102
+	echo '      internal;' >> /etc/nginx/sites-available/$MEDIA_SERVER_DOMAIN_NAME
10103
+	echo '  }' >> /etc/nginx/sites-available/$MEDIA_SERVER_DOMAIN_NAME
10104
+	echo '' >> /etc/nginx/sites-available/$MEDIA_SERVER_DOMAIN_NAME
10105
+	echo '  location / {' >> /etc/nginx/sites-available/$MEDIA_SERVER_DOMAIN_NAME
10106
+	echo '      uwsgi_pass      unix:///tmp/uwsgi-mediadrop.soc;' >> /etc/nginx/sites-available/$MEDIA_SERVER_DOMAIN_NAME
10107
+	echo '      include         uwsgi_params;' >> /etc/nginx/sites-available/$MEDIA_SERVER_DOMAIN_NAME
10108
+	echo '      uwsgi_param     SCRIPT_NAME '';' >> /etc/nginx/sites-available/$MEDIA_SERVER_DOMAIN_NAME
10109
+	echo '  }' >> /etc/nginx/sites-available/$MEDIA_SERVER_DOMAIN_NAME
10110
+	echo '}' >> /etc/nginx/sites-available/$MEDIA_SERVER_DOMAIN_NAME
10111
+
10112
+	nginx_ensite $MEDIA_SERVER_DOMAIN_NAME
10113
+	systemctl restart php5-fpm
10114
+	systemctl restart nginx
10115
+
10116
+	if ! grep -q "Media server domain" $COMPLETION_FILE; then
10117
+		echo "Media server domain:$MEDIA_SERVER_DOMAIN_NAME" >> $COMPLETION_FILE
10118
+	else
10119
+		sed -i "s/Media server domain.*/Media server domain:$MEDIA_SERVER_DOMAIN_NAME/g" $COMPLETION_FILE
10120
+	fi
10121
+
10122
+	if ! grep -q $"Media Server" /home/$MY_USERNAME/README; then
10123
+		echo '' >> /home/$MY_USERNAME/README
10124
+		echo '' >> /home/$MY_USERNAME/README
10125
+		echo $'Media Server' >> /home/$MY_USERNAME/README
10126
+		echo '============' >> /home/$MY_USERNAME/README
10127
+		echo $"Media server administrator nickname: mediadropadmin" >> /home/$MY_USERNAME/README
10128
+		echo $"Media server administrator password: $MEDIA_SERVER_ADMIN_PASSWORD" >> /home/$MY_USERNAME/README
10129
+		chown $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/README
10130
+		chmod 600 /home/$MY_USERNAME/README
10131
+	fi
9974 10132
 
9975 10133
 	echo 'install_media_server' >> $COMPLETION_FILE
9976 10134
 }

+ 2017
- 1941
src/freedombone-config
Datei-Diff unterdrückt, da er zu groß ist
Datei anzeigen


+ 9
- 0
src/freedombone-controlpanel Datei anzeigen

@@ -430,6 +430,15 @@ function show_domains {
430 430
         fi
431 431
         echo ''
432 432
     fi
433
+    if grep -q "Media server domain" $COMPLETION_FILE; then
434
+        echo -n -e "$(pad_string 'Media server')"
435
+        MEDIADOM=$(cat ${COMPLETION_FILE} | grep 'Media server domain' | awk -F ':' '{print $2}')
436
+        echo -n -e "$(pad_string ${MEDIADOM})"
437
+        if [ -d /var/lib/tor/hidden_service_mediadrop ]; then
438
+            echo -n "$(cat /var/lib/tor/hidden_service_mediadrop/hostname)"
439
+        fi
440
+        echo ''
441
+    fi
433 442
 
434 443
     echo ''
435 444
 }